diff --git a/.gitattributes b/.gitattributes index f774630..b083a60 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,4 @@ flake.lock linguist-generated=true *.age linguist-generated=true +npins/default.nix linguist-generated=true +npins/sources.json linguist-generated=true diff --git a/flake.lock b/flake.lock index f90cb85..0ef3627 100644 --- a/flake.lock +++ b/flake.lock @@ -1,21 +1,5 @@ { "nodes": { - "aeson-typescript": { - "flake": false, - "locked": { - "lastModified": 1754073453, - "narHash": "sha256-uQEAxVXbF3KIJ9IPc9aywjIWTsUkyjIVsRd+xCbePuo=", - "owner": "codedownio", - "repo": "aeson-typescript", - "rev": "846f4de8d54278c49456a29803da6f01ab9b87f6", - "type": "github" - }, - "original": { - "owner": "codedownio", - "repo": "aeson-typescript", - "type": "github" - } - }, "agenix": { "inputs": { "darwin": [ @@ -43,332 +27,7 @@ "type": "github" } }, - "blueprint": { - "inputs": { - "nixpkgs": [ - "oc", - "llm-agents", - "nixpkgs" - ], - "systems": [ - "oc", - "llm-agents", - "systems" - ] - }, - "locked": { - "lastModified": 1771437256, - "narHash": "sha256-bLqwib+rtyBRRVBWhMuBXPCL/OThfokA+j6+uH7jDGU=", - "owner": "numtide", - "repo": "blueprint", - "rev": "06ee7190dc2620ea98af9eb225aa9627b68b0e33", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "blueprint", - "type": "github" - } - }, - "bun2nix": { - "inputs": { - "flake-parts": [ - "oc", - "llm-agents", - "flake-parts" - ], - "import-tree": "import-tree", - "nixpkgs": [ - "oc", - "llm-agents", - "nixpkgs" - ], - "systems": [ - "oc", - "llm-agents", - "systems" - ], - "treefmt-nix": [ - "oc", - "llm-agents", - "treefmt-nix" - ] - }, - "locked": { - "lastModified": 1770895533, - "narHash": "sha256-v3QaK9ugy9bN9RXDnjw0i2OifKmz2NnKM82agtqm/UY=", - "owner": "nix-community", - "repo": "bun2nix", - "rev": "c843f477b15f51151f8c6bcc886954699440a6e1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "bun2nix", - "type": "github" - } - }, - "co-log-effectful": { - "flake": false, - "locked": { - "lastModified": 1761077736, - "narHash": "sha256-GCwltDhEhteUxs0RLhcEGPKjvtEKr4nNm9w8QTTNfiA=", - "owner": "eldritch-cookie", - "repo": "co-log-effectful", - "rev": "a62ffdad80d11cc513f4e1124b0e07a086fed5fe", - "type": "github" - }, - "original": { - "owner": "eldritch-cookie", - "repo": "co-log-effectful", - "type": "github" - } - }, - "commonmark-simple": { - "flake": false, - "locked": { - "lastModified": 1755566927, - "narHash": "sha256-2WE5SjwgwjKdsHxDRfQIb2WRrVYoNPiCIyG4HZd8Znk=", - "owner": "srid", - "repo": "commonmark-simple", - "rev": "81dc7a66b2490a701bfc87e6e892307665e6336e", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.2.0.0", - "repo": "commonmark-simple", - "type": "github" - } - }, - "commonmark-simple_2": { - "flake": false, - "locked": { - "lastModified": 1755566927, - "narHash": "sha256-2WE5SjwgwjKdsHxDRfQIb2WRrVYoNPiCIyG4HZd8Znk=", - "owner": "srid", - "repo": "commonmark-simple", - "rev": "81dc7a66b2490a701bfc87e6e892307665e6336e", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "commonmark-simple", - "type": "github" - } - }, - "commonmark-wikilink": { - "flake": false, - "locked": { - "lastModified": 1755567049, - "narHash": "sha256-MWOb0Ojc4EQd9fOnQEveRDdbH5Cr6kjUt04uWzBPLGQ=", - "owner": "srid", - "repo": "commonmark-wikilink", - "rev": "5ab01515939047b58943cc1234e7ee0cb82d1c22", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.2.0.0", - "repo": "commonmark-wikilink", - "type": "github" - } - }, - "commonmark-wikilink_2": { - "flake": false, - "locked": { - "lastModified": 1755567049, - "narHash": "sha256-MWOb0Ojc4EQd9fOnQEveRDdbH5Cr6kjUt04uWzBPLGQ=", - "owner": "srid", - "repo": "commonmark-wikilink", - "rev": "5ab01515939047b58943cc1234e7ee0cb82d1c22", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "commonmark-wikilink", - "type": "github" - } - }, - "crane": { - "locked": { - "lastModified": 1771438068, - "narHash": "sha256-nGBbXvEZVe/egCPVPFcu89RFtd8Rf6J+4RFoVCFec0A=", - "owner": "ipetkov", - "repo": "crane", - "rev": "b5090e53e9d68c523a4bb9ad42b4737ee6747597", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "devour-flake": { - "flake": false, - "locked": { - "lastModified": 1770055559, - "narHash": "sha256-peb6VlxIDoqaHkGPanQ35p8SXy9t54NIJ8XJHgMSuFg=", - "owner": "srid", - "repo": "devour-flake", - "rev": "e65d15fd4ef46dbde90ac59be581b2a286c35d0f", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "devour-flake", - "type": "github" - } - }, - "disc-scrape": { - "inputs": { - "flake-parts": "flake-parts", - "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs", - "rust-flake": "rust-flake", - "systems": "systems_2" - }, - "locked": { - "lastModified": 1772235986, - "narHash": "sha256-Kwx5duhBTRAAqY6UdYYGRSacT5o8//YlmwSJlzAg5d0=", - "owner": "srid", - "repo": "disc-scrape", - "rev": "382c7e59cba9408b3098d7f0b8d10da01721b265", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "disc-scrape", - "type": "github" - } - }, - "disko": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773025010, - "narHash": "sha256-khlHllTsovXgT2GZ0WxT4+RvuMjNeR5OW0UYeEHPYQo=", - "owner": "nix-community", - "repo": "disko", - "rev": "7b9f7f88ab3b339f8142dc246445abb3c370d3d3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "disko", - "type": "github" - } - }, - "ema": { - "flake": false, - "locked": { - "lastModified": 1753226458, - "narHash": "sha256-vDhjw+Cm7HniaiIHirwM0B2yzzLYLO3HHMaZsQRL3uw=", - "owner": "srid", - "repo": "ema", - "rev": "7ff434cf8f494c62de7fe6c1a36d8681929beb93", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.12.0.0", - "repo": "ema", - "type": "github" - } - }, - "emanote": { - "inputs": { - "commonmark-simple": "commonmark-simple", - "commonmark-wikilink": "commonmark-wikilink", - "ema": "ema", - "emanote-template": "emanote-template", - "flake-parts": "flake-parts_2", - "fourmolu-nix": "fourmolu-nix", - "git-hooks": "git-hooks_2", - "haskell-flake": "haskell-flake", - "heist-extra": "heist-extra", - "lvar": "lvar", - "nixos-unified": "nixos-unified", - "nixpkgs": "nixpkgs_2", - "unionmount": "unionmount" - }, - "locked": { - "lastModified": 1766432517, - "narHash": "sha256-2y58CyRlcPIQgVvPxsxKOp6aFO6S16CyYOJxFfBaKE8=", - "owner": "srid", - "repo": "emanote", - "rev": "6deb47e5db07221709d5214820ff4456e2bda92d", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "emanote", - "type": "github" - } - }, - "emanote-template": { - "flake": false, - "locked": { - "lastModified": 1745726040, - "narHash": "sha256-cLL9ylGe1OoN/KSX7+FRW3j8rm5iPTCleOJGSdOfdE0=", - "owner": "srid", - "repo": "emanote-template", - "rev": "1475b182fc136fc5da3a3b3e2b9be90795af19bb", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "emanote-template", - "type": "github" - } - }, "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "disc-scrape", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "emanote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -386,326 +45,6 @@ "type": "github" } }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "imako", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1756770412, - "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4524271976b625a4a605beefd893f270620fd751", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_6": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" - }, - "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_7": { - "inputs": { - "nixpkgs-lib": [ - "oc", - "llm-agents", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_8": { - "inputs": { - "nixpkgs-lib": [ - "vira", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765835352, - "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "a34fae9c08a15ad73f295041fec82323541400a9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "fourmolu-nix": { - "locked": { - "lastModified": 1707266073, - "narHash": "sha256-tCFzZQJicDdYjnuJiNK4hiiRAH7c2wQzMhOCdUMbVKE=", - "owner": "jedimahdi", - "repo": "fourmolu-nix", - "rev": "717f5a91b0d7b97b1be7ecc3a0fd42d37ffe1c9b", - "type": "github" - }, - "original": { - "owner": "jedimahdi", - "repo": "fourmolu-nix", - "type": "github" - } - }, - "fourmolu-nix_2": { - "locked": { - "lastModified": 1707266073, - "narHash": "sha256-tCFzZQJicDdYjnuJiNK4hiiRAH7c2wQzMhOCdUMbVKE=", - "owner": "jedimahdi", - "repo": "fourmolu-nix", - "rev": "717f5a91b0d7b97b1be7ecc3a0fd42d37ffe1c9b", - "type": "github" - }, - "original": { - "owner": "jedimahdi", - "repo": "fourmolu-nix", - "type": "github" - } - }, - "fourmolu-nix_3": { - "locked": { - "lastModified": 1707266073, - "narHash": "sha256-tCFzZQJicDdYjnuJiNK4hiiRAH7c2wQzMhOCdUMbVKE=", - "owner": "jedimahdi", - "repo": "fourmolu-nix", - "rev": "717f5a91b0d7b97b1be7ecc3a0fd42d37ffe1c9b", - "type": "github" - }, - "original": { - "owner": "jedimahdi", - "repo": "fourmolu-nix", - "type": "github" - } - }, - "git-hooks": { - "flake": false, - "locked": { - "lastModified": 1772024342, - "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { - "flake": false, - "locked": { - "lastModified": 1748731907, - "narHash": "sha256-KVgK2PB1h5RNhHJzGn090XcW1i9Mq0FVh6qTVKsg2RU=", - "owner": "bmrips", - "repo": "git-hooks.nix", - "rev": "2749fc9197fd12231746ef685225eaf85fe087fd", - "type": "github" - }, - "original": { - "owner": "bmrips", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_3": { - "flake": false, - "locked": { - "lastModified": 1772893680, - "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_4": { - "flake": false, - "locked": { - "lastModified": 1758108966, - "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_5": { - "flake": false, - "locked": { - "lastModified": 1748731907, - "narHash": "sha256-KVgK2PB1h5RNhHJzGn090XcW1i9Mq0FVh6qTVKsg2RU=", - "owner": "bmrips", - "repo": "git-hooks.nix", - "rev": "2749fc9197fd12231746ef685225eaf85fe087fd", - "type": "github" - }, - "original": { - "owner": "bmrips", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "github-nix-ci": { - "locked": { - "lastModified": 1754092430, - "narHash": "sha256-S4Oe9aZK/UnWuj6zUlVeSDmC/QjEPHJm2gaSk/VMir4=", - "owner": "juspay", - "repo": "github-nix-ci", - "rev": "edd0486a9208524eff40712a8ce835260c5b412a", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "github-nix-ci", - "type": "github" - } - }, - "haskell-flake": { - "locked": { - "lastModified": 1752499668, - "narHash": "sha256-Yif99ho8GNgXP0l9vxPHCKi7X16Cf7rwVd+HW1cMVeQ=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "39065472d2587af93a502423276bfb98c2c6fb09", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "haskell-flake", - "type": "github" - } - }, - "haskell-flake_2": { - "locked": { - "lastModified": 1757958175, - "narHash": "sha256-5JZMbyhI5qUTYDTpbJ1Tb7mmIcjXKd2gSTs75dMOWMk=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "6df12c6bbf5af89edea64184a62d08db9c92d43d", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "haskell-flake", - "type": "github" - } - }, - "haskell-flake_3": { - "locked": { - "lastModified": 1765673601, - "narHash": "sha256-dzkd+XBE34fYGh17OuJWJ8+tjNV8t2tTsq8zRM05OtQ=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "a4782ecf6aa442c5480ae925c4e5a48f5ea8fed7", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "haskell-flake", - "type": "github" - } - }, - "heist-extra": { - "flake": false, - "locked": { - "lastModified": 1766109391, - "narHash": "sha256-ytHgIoRlkI5K0SDq33znlY0wjlqcwoQCe1z9JfHT/Fw=", - "owner": "srid", - "repo": "heist-extra", - "rev": "81f1ea0cf1226215430171dbe613a2988c6cc46a", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "heist-extra", - "type": "github" - } - }, - "hint-nix": { - "flake": false, - "locked": { - "lastModified": 1758238675, - "narHash": "sha256-e2xVnN7EfMrqeweksT5nsr3mv++G81fMh3vt7YUY/2Q=", - "owner": "srid", - "repo": "hint-nix", - "rev": "41efbe502d81871290ab88a780e560287741a5ac", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "hint-nix", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -727,215 +66,6 @@ "type": "github" } }, - "htmx": { - "flake": false, - "locked": { - "lastModified": 1730661957, - "narHash": "sha256-ce3CVJVmY5240qyEt2W0Q3HUeMAKP6IQwxtIO+zDzAs=", - "owner": "JonathanLorimer", - "repo": "htmx", - "rev": "a9592b2627a75f522cd710d6bcfb7670a4a587dd", - "type": "github" - }, - "original": { - "owner": "JonathanLorimer", - "repo": "htmx", - "type": "github" - } - }, - "htmx-extensions": { - "flake": false, - "locked": { - "lastModified": 1740062719, - "narHash": "sha256-KW8ahQdu1pevghnKNL+Idie2o6TtKlUqwES2kpmqOVs=", - "owner": "juspay", - "repo": "htmx-extensions", - "rev": "0f7b0b569651c259af0fa81d78530f0f540d709b", - "type": "github" - }, - "original": { - "owner": "juspay", - "ref": "sse-unload", - "repo": "htmx-extensions", - "type": "github" - } - }, - "imako": { - "inputs": { - "aeson-typescript": "aeson-typescript", - "commonmark-simple": "commonmark-simple_2", - "commonmark-wikilink": "commonmark-wikilink_2", - "flake-parts": "flake-parts_4", - "fourmolu-nix": "fourmolu-nix_2", - "git-hooks": "git-hooks_4", - "haskell-flake": "haskell-flake_2", - "lvar": "lvar_2", - "nixpkgs": "nixpkgs_3", - "process-compose-flake": "process-compose-flake", - "unionmount": "unionmount_2" - }, - "locked": { - "lastModified": 1772207248, - "narHash": "sha256-rZgwvE39JAOD9iod9i/7v66Il7egKoSl1zDW3EGMHoo=", - "owner": "srid", - "repo": "imako", - "rev": "5ac0382b0795f0897eea866fe335586a3083bc9c", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "imako", - "type": "github" - } - }, - "import-tree": { - "locked": { - "lastModified": 1763762820, - "narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=", - "owner": "vic", - "repo": "import-tree", - "rev": "3c23749d8013ec6daa1d7255057590e9ca726646", - "type": "github" - }, - "original": { - "owner": "vic", - "repo": "import-tree", - "type": "github" - } - }, - "jumphost-nix": { - "flake": false, - "locked": { - "lastModified": 1763752552, - "narHash": "sha256-6oHN28aCD0jsBxliKfwdjUoHuhAMZgTRZJmllyDgDKA=", - "owner": "srid", - "repo": "jumphost-nix", - "rev": "77fc2b85b3c7a830f2ae7ab0b6716b10e0b480f1", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "jumphost-nix", - "type": "github" - } - }, - "kolu": { - "locked": { - "lastModified": 1774651180, - "narHash": "sha256-YmAU9cLTccojhqkGFZdm0L/dbZkPw7sPJxo6uirlsto=", - "owner": "juspay", - "repo": "kolu", - "rev": "575b3c18672e6a31784046d5e1c777242ab5f886", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "kolu", - "type": "github" - } - }, - "landrun-nix": { - "locked": { - "lastModified": 1772789454, - "narHash": "sha256-rKYiBL0KOtMfkgJCGxsICCvXLsqj/dzsF5seimW3edA=", - "owner": "adrian-gierakowski", - "repo": "landrun-nix", - "rev": "664d588939df5f6d7be80c99175decf7ee5de498", - "type": "github" - }, - "original": { - "owner": "adrian-gierakowski", - "ref": "darwin-implementation-via-sandbox-exec", - "repo": "landrun-nix", - "type": "github" - } - }, - "llm-agents": { - "inputs": { - "blueprint": "blueprint", - "bun2nix": "bun2nix", - "flake-parts": "flake-parts_7", - "nixpkgs": "nixpkgs_5", - "systems": "systems_4", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1774551325, - "narHash": "sha256-Q2dh3zBu3oixlEWAbtXGL44O6jtEP/Tog0P44qu0RJY=", - "owner": "numtide", - "repo": "llm-agents.nix", - "rev": "8348bf988abbbafa5f105f819a6153f1dbe22a2e", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "llm-agents.nix", - "type": "github" - } - }, - "lvar": { - "flake": false, - "locked": { - "lastModified": 1753226155, - "narHash": "sha256-Uwg5s0SlxLp83bXHA+6TIQV+L+lu8lwMpBdNuiuk7hg=", - "owner": "srid", - "repo": "lvar", - "rev": "cd110d4823ee7b8bbbf115a47c79bc304c3309cd", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.2.0.0", - "repo": "lvar", - "type": "github" - } - }, - "lvar_2": { - "flake": false, - "locked": { - "lastModified": 1756579735, - "narHash": "sha256-ApkFfqFFOL5NlqrIJQXYHQp7oNL9jl+bOKLBVotTW2I=", - "owner": "srid", - "repo": "lvar", - "rev": "c35ed20233b169187e0543406e4a372444ee0db4", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "lvar", - "type": "github" - } - }, - "nix-agent-wire": { - "locked": { - "lastModified": 1773881002, - "narHash": "sha256-YiOXMLnjkmUcubkxPWx5vRl+OaQwaJvrjiAVw8pp+u8=", - "owner": "srid", - "repo": "nix-agent-wire", - "rev": "dff0e61fa1bc8457815c8cd61808ea07b514502b", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "nix-agent-wire", - "type": "github" - } - }, - "nix-agent-wire_2": { - "locked": { - "lastModified": 1773881002, - "narHash": "sha256-YiOXMLnjkmUcubkxPWx5vRl+OaQwaJvrjiAVw8pp+u8=", - "owner": "srid", - "repo": "nix-agent-wire", - "rev": "dff0e61fa1bc8457815c8cd61808ea07b514502b", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "nix-agent-wire", - "type": "github" - } - }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -957,88 +87,7 @@ "type": "github" } }, - "nix-index-database": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1774156144, - "narHash": "sha256-gdYe9wTPl4ignDyXUl1LlICWj41+S0GB5lG1fKP17+A=", - "owner": "nix-community", - "repo": "nix-index-database", - "rev": "55b588747fa3d7fc351a11831c4b874dab992862", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-index-database", - "type": "github" - } - }, - "nix-serve-ng": { - "flake": false, - "locked": { - "lastModified": 1763069480, - "narHash": "sha256-dbjGP/uD2WeGYf6A5CmLb6z5owleoYXybFbkTcWSvxA=", - "owner": "aristanetworks", - "repo": "nix-serve-ng", - "rev": "3b9c80f78501813b1a29c5b33a3ccc50a7506f0e", - "type": "github" - }, - "original": { - "owner": "aristanetworks", - "repo": "nix-serve-ng", - "type": "github" - } - }, - "nix-systems": { - "locked": { - "lastModified": 1761010671, - "narHash": "sha256-oJp5ez8SpqTcIwA7KyyipZ6JVN4PxyuVVvyoAZHVWCo=", - "owner": "srid", - "repo": "nix-systems", - "rev": "0d542c63e499d939ed1f2a5a6dba271f148c7083", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "nix-systems", - "type": "github" - } - }, - "nixos-hardware": { - "locked": { - "lastModified": 1772972630, - "narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixos-hardware", - "type": "github" - } - }, "nixos-unified": { - "locked": { - "lastModified": 1751174231, - "narHash": "sha256-OLPo3ZI/gKH0C6P6l2W9RYm1ow/Jl4qBrasQ3rjAA0E=", - "owner": "srid", - "repo": "nixos-unified", - "rev": "05eb3d59d3b48460ea01c419702d4fc0c3210805", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "nixos-unified", - "type": "github" - } - }, - "nixos-unified_2": { "locked": { "lastModified": 1764076447, "narHash": "sha256-dpkdOPPCWaFtDoxVAtVaprtPX6jGl8o30EBc1gWBOnQ=", @@ -1053,49 +102,18 @@ "type": "github" } }, - "nixos-unified_3": { - "locked": { - "lastModified": 1764076447, - "narHash": "sha256-dpkdOPPCWaFtDoxVAtVaprtPX6jGl8o30EBc1gWBOnQ=", - "owner": "srid", - "repo": "nixos-unified", - "rev": "90171c6936a8332ede17e09e337a0e71f4e659b1", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "nixos-unified", - "type": "github" - } - }, - "nixos-vscode-server": { - "flake": false, - "locked": { - "lastModified": 1770124655, - "narHash": "sha256-yHmd2B13EtBUPLJ+x0EaBwNkQr9LTne1arLVxT6hSnY=", - "owner": "nix-community", - "repo": "nixos-vscode-server", - "rev": "92ce71c3ba5a94f854e02d57b14af4997ab54ef0", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixos-vscode-server", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1772082373, - "narHash": "sha256-wySf8a6hvuqgFdwvvzPPTARBCMLDz7WFAufGkllD1M4=", + "lastModified": 1774386573, + "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "26eaeac4e409d7b5a6bf6f90a2a2dc223c78d915", + "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -1115,296 +133,14 @@ "type": "github" } }, - "nixpkgs-lib_2": { - "locked": { - "lastModified": 1772328832, - "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1752900028, - "narHash": "sha256-dPALCtmik9Wr14MGqVXm+OQcv7vhPBXcWNIOThGnB/Q=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "6b4955211758ba47fac850c040a27f23b9b4008f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1770169770, - "narHash": "sha256-awR8qIwJxJJiOmcEGgP2KUqYmHG4v/z8XpL9z8FnT1A=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "aa290c9891fa4ebe88f8889e59633d20cc06a5f2", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1774386573, - "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1774273680, - "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1765803225, - "narHash": "sha256-xwaZV/UgJ04+ixbZZfoDE8IsOWjtvQZICh9aamzPnrg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ac9a217389ee622d4e1e727c4efcc9c4bc9089ba", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixvim": { - "inputs": { - "flake-parts": "flake-parts_5", - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems_3" - }, - "locked": { - "lastModified": 1772402258, - "narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=", - "owner": "nix-community", - "repo": "nixvim", - "rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixvim", - "type": "github" - } - }, - "oc": { - "inputs": { - "flake-parts": "flake-parts_6", - "llm-agents": "llm-agents", - "nix-agent-wire": "nix-agent-wire_2", - "nixpkgs": [ - "oc", - "llm-agents", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1774572452, - "narHash": "sha256-aI9fiMRUsvKx3P3PibOp+Ony9N/mY2OllT8NOYXJjTU=", - "owner": "juspay", - "repo": "AI", - "rev": "510c5a622a060adb18689b4edf5c71023780ed11", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "AI", - "type": "github" - } - }, - "process-compose-flake": { - "locked": { - "lastModified": 1767863885, - "narHash": "sha256-XXekPAxzbv1DmHFo3Elmj/vDnvWc1V0jdDUvM0/Wf7k=", - "owner": "Platonic-Systems", - "repo": "process-compose-flake", - "rev": "99bea96cf269cfd235833ebdf645b567069fd398", - "type": "github" - }, - "original": { - "owner": "Platonic-Systems", - "repo": "process-compose-flake", - "type": "github" - } - }, - "process-compose-flake_2": { - "locked": { - "lastModified": 1764915241, - "narHash": "sha256-vTqn6IAkZhuuctvkxjhzI1EEybyzwaNd7HJvhF662O8=", - "owner": "Platonic-Systems", - "repo": "process-compose-flake", - "rev": "36678818ecbd0e06a60740a291c55b683fec79dd", - "type": "github" - }, - "original": { - "owner": "Platonic-Systems", - "repo": "process-compose-flake", - "type": "github" - } - }, - "record-hasfield": { - "flake": false, - "locked": { - "lastModified": 1705829538, - "narHash": "sha256-GmPVs+M8LIL3h8QO57yV9e6okczJdpEtzinD8gxCvjQ=", - "owner": "ndmitchell", - "repo": "record-hasfield", - "rev": "093fb013d3e8951a215e0508cda2c24977ef117c", - "type": "github" - }, - "original": { - "owner": "ndmitchell", - "repo": "record-hasfield", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", - "disc-scrape": "disc-scrape", - "disko": "disko", - "emanote": "emanote", - "flake-parts": "flake-parts_3", - "git-hooks": "git-hooks_3", - "github-nix-ci": "github-nix-ci", + "flake-parts": "flake-parts", "home-manager": "home-manager", - "imako": "imako", - "jumphost-nix": "jumphost-nix", - "kolu": "kolu", - "landrun-nix": "landrun-nix", - "nix-agent-wire": "nix-agent-wire", "nix-darwin": "nix-darwin", - "nix-index-database": "nix-index-database", - "nixos-hardware": "nixos-hardware", - "nixos-unified": "nixos-unified_2", - "nixos-vscode-server": "nixos-vscode-server", - "nixpkgs": "nixpkgs_4", - "nixvim": "nixvim", - "oc": "oc", - "skills": "skills", - "vira": "vira" - } - }, - "rust-flake": { - "inputs": { - "crane": "crane", - "nixpkgs": [ - "disc-scrape", - "nixpkgs" - ], - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1772147705, - "narHash": "sha256-eGVfRh2DtQBTxD0kLpK2v6C9wmJpFYRRlmiPkxv6cCo=", - "owner": "juspay", - "repo": "rust-flake", - "rev": "c0b64ed4d7f916b11544c3d63d546a8bce6dff92", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "rust-flake", - "type": "github" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "disc-scrape", - "rust-flake", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1771642886, - "narHash": "sha256-4zOvSi0WkS2WAaoJtM28wECtS9S+L38CPYbhF+wINDA=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "85078369717bdbe1f266c9eaad5e66956fb6feea", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "servant-event-stream": { - "flake": false, - "locked": { - "lastModified": 1755782458, - "narHash": "sha256-odwdQHMQjwo3np2BH9rNoKLpkdkkInocSbzv/naTH/U=", - "owner": "bflyblue", - "repo": "servant-event-stream", - "rev": "4bd039405c864076407a2b4f1ffe99e29496e942", - "type": "github" - }, - "original": { - "owner": "bflyblue", - "repo": "servant-event-stream", - "type": "github" - } - }, - "skills": { - "flake": false, - "locked": { - "lastModified": 1773786483, - "narHash": "sha256-nT9po9XMjJ2nazyGrz8jkj75KIS8VUbnNfAYL2YqjWY=", - "owner": "juspay", - "repo": "skills", - "rev": "c727a563bcd073303681aff53947e56159e6d548", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "skills", - "type": "github" + "nixos-unified": "nixos-unified", + "nixpkgs": "nixpkgs" } }, "systems": { @@ -1421,173 +157,6 @@ "repo": "default", "type": "github" } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "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" - } - }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "tabler-icons-hs": { - "flake": false, - "locked": { - "lastModified": 1756335210, - "narHash": "sha256-NVOfzoJ792fE6NOlmkbOVRBaEInyujA3dl8sEiydUbg=", - "owner": "juspay", - "repo": "tabler-icons-hs", - "rev": "405c85321d4a9de87f0cea218aa75c5fe5969116", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "tabler-icons-hs", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "oc", - "llm-agents", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773297127, - "narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "71b125cd05fbfd78cab3e070b73544abe24c5016", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "unionmount": { - "flake": false, - "locked": { - "lastModified": 1755566785, - "narHash": "sha256-1TBIhcgbQxBF48ET7Dy+PM3U2lCROBDVg5PhOtm2Q/M=", - "owner": "srid", - "repo": "unionmount", - "rev": "4387cdeca64d22ff02da318b1527ff8817123ced", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.3.0.0", - "repo": "unionmount", - "type": "github" - } - }, - "unionmount_2": { - "flake": false, - "locked": { - "lastModified": 1755566785, - "narHash": "sha256-1TBIhcgbQxBF48ET7Dy+PM3U2lCROBDVg5PhOtm2Q/M=", - "owner": "srid", - "repo": "unionmount", - "rev": "4387cdeca64d22ff02da318b1527ff8817123ced", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "unionmount", - "type": "github" - } - }, - "vira": { - "inputs": { - "co-log-effectful": "co-log-effectful", - "devour-flake": "devour-flake", - "flake-parts": "flake-parts_8", - "fourmolu-nix": "fourmolu-nix_3", - "git-hooks": "git-hooks_5", - "haskell-flake": "haskell-flake_3", - "hint-nix": "hint-nix", - "htmx": "htmx", - "htmx-extensions": "htmx-extensions", - "nix-serve-ng": "nix-serve-ng", - "nix-systems": "nix-systems", - "nixos-unified": "nixos-unified_3", - "nixpkgs": "nixpkgs_6", - "process-compose-flake": "process-compose-flake_2", - "record-hasfield": "record-hasfield", - "servant-event-stream": "servant-event-stream", - "tabler-icons-hs": "tabler-icons-hs", - "warp-tls-simple": "warp-tls-simple" - }, - "locked": { - "lastModified": 1772585334, - "narHash": "sha256-PQMgtlst98me4JSJarU1R+HMQDqxIf/AzJg/mm0eSa8=", - "owner": "juspay", - "repo": "vira", - "rev": "858ab06405097224f6841450c323f6bff21e62be", - "type": "github" - }, - "original": { - "owner": "juspay", - "repo": "vira", - "type": "github" - } - }, - "warp-tls-simple": { - "flake": false, - "locked": { - "lastModified": 1758321703, - "narHash": "sha256-7/U6UwXuJqWKi2CpNkTjDPO/13Mtof4LwmHbWnf/unU=", - "owner": "srid", - "repo": "warp-tls-simple", - "rev": "bbe9069048f38a04bb45b7adeda9ce84d87f2015", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "warp-tls-simple", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 0b3861d..87b5dca 100644 --- a/flake.nix +++ b/flake.nix @@ -1,63 +1,67 @@ { description = "Srid's NixOS / nix-darwin configuration"; - inputs = { flake-parts.url = "github:hercules-ci/flake-parts"; - # Principle inputs + # Principle inputs (kept minimal to speed up nix develop/run/shell) nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nix-darwin.url = "github:LnL7/nix-darwin/master"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; - nixos-hardware.url = "github:NixOS/nixos-hardware"; nixos-unified.url = "github:srid/nixos-unified"; - disko.url = "github:nix-community/disko"; - disko.inputs.nixpkgs.follows = "nixpkgs"; agenix.url = "github:ryantm/agenix"; agenix.inputs = { darwin.follows = "nix-darwin"; home-manager.follows = "home-manager"; nixpkgs.follows = "nixpkgs"; }; - # Software inputs - github-nix-ci.url = "github:juspay/github-nix-ci"; - nixos-vscode-server.flake = false; - nixos-vscode-server.url = "github:nix-community/nixos-vscode-server"; - nix-index-database.url = "github:nix-community/nix-index-database"; - nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - # vira.url = "github:juspay/vira/github"; - vira.url = "github:juspay/vira"; - oc.url = "github:juspay/AI"; - # landrun-nix.url = "github:srid/landrun-nix"; - landrun-nix.url = "github:adrian-gierakowski/landrun-nix/darwin-implementation-via-sandbox-exec"; - nix-agent-wire.url = "github:srid/nix-agent-wire"; - jumphost-nix.url = "github:srid/jumphost-nix"; - jumphost-nix.flake = false; - # KOLU - kolu.url = "github:juspay/kolu"; - - skills.url = "github:juspay/skills"; - skills.flake = false; - - # Neovim - nixvim.url = "github:nix-community/nixvim"; - nixvim.inputs.nixpkgs.follows = "nixpkgs"; - - # Emanote & Imako - emanote.url = "github:srid/emanote"; - imako.url = "github:srid/imako"; - disc-scrape.url = "github:srid/disc-scrape"; - - # Devshell - git-hooks.url = "github:cachix/git-hooks.nix"; - git-hooks.flake = false; + # Everything else is managed by npins (see ./npins/) }; - outputs = inputs@{ self, ... }: - inputs.flake-parts.lib.mkFlake { inherit inputs; } { + outputs = flakeInputs@{ self, ... }: + let + sources = import ./npins; + + # Lazily evaluate a flake from npins source using flake-compat. + # The flake is only fetched/evaluated when its outputs are actually used, + # so `nix develop` and `nix run` stay fast. + callFlake = src: (import sources.flake-compat { inherit src; }).defaultNix; + + # Wrap a source path to behave like a `flake = false` input + # (supports both string interpolation and .outPath access) + wrapSource = src: { outPath = src; }; + + # Build an inputs-like attrset from npins sources. + # Modules continue to use `inputs.foo` / `flake.inputs.foo` unchanged. + npinsInputs = { + # Source-only inputs (formerly flake = false) + nixos-vscode-server = wrapSource sources.nixos-vscode-server; + skills = wrapSource sources.skills; + git-hooks = wrapSource sources.git-hooks; + jumphost-nix = wrapSource sources.jumphost-nix; + + # Flake inputs (lazily evaluated via flake-compat) + disko = callFlake sources.disko; + disc-scrape = callFlake sources.disc-scrape; + emanote = callFlake sources.emanote; + github-nix-ci = callFlake sources.github-nix-ci; + imako = callFlake sources.imako; + kolu = callFlake sources.kolu; + landrun-nix = callFlake sources.landrun-nix; + nix-agent-wire = callFlake sources.nix-agent-wire; + nix-index-database = callFlake sources.nix-index-database; + nixos-hardware = callFlake sources.nixos-hardware; + nixvim = callFlake sources.nixvim; + oc = callFlake sources.oc; + vira = callFlake sources.vira; + }; + + inputs = flakeInputs // npinsInputs; + in + flakeInputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ]; imports = (with builtins; map diff --git a/modules/flake-parts/nixos-flake.nix b/modules/flake-parts/nixos-flake.nix index fc852e3..fc7edcc 100644 --- a/modules/flake-parts/nixos-flake.nix +++ b/modules/flake-parts/nixos-flake.nix @@ -14,12 +14,8 @@ "nixpkgs" "home-manager" "nix-darwin" - # "nixos-hardware" - "nix-index-database" - # "nixvim" - "oc" - "nix-agent-wire" - "skills" + # Other inputs are managed by npins (see ./npins/) + # Update them with: npins update ]; }; }; diff --git a/npins/default.nix b/npins/default.nix new file mode 100644 index 0000000..884fc8c --- /dev/null +++ b/npins/default.nix @@ -0,0 +1,249 @@ +/* + This file is provided under the MIT licence: + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +# Generated by npins. Do not modify; will be overwritten regularly +let + # Backwards-compatibly make something that previously didn't take any arguments take some + # The function must return an attrset, and will unfortunately be eagerly evaluated + # Same thing, but it catches eval errors on the default argument so that one may still call it with other arguments + mkFunctor = + fn: + let + e = builtins.tryEval (fn { }); + in + (if e.success then e.value else { error = fn { }; }) // { __functor = _self: fn; }; + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = + first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatStrings = builtins.concatStringsSep ""; + + # If the environment variable NPINS_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + # (Taken from Niv for compatibility) + mayOverride = + name: path: + let + envVarName = "NPINS_OVERRIDE_${saneName}"; + saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name; + ersatz = builtins.getEnv envVarName; + in + if ersatz == "" then + path + else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + builtins.trace "Overriding path of \"${name}\" with \"${ersatz}\" due to set \"${envVarName}\"" ( + if builtins.substring 0 1 ersatz == "/" then + /. + ersatz + else + /. + builtins.getEnv "PWD" + "/${ersatz}" + ); + + mkSource = + name: spec: + { + pkgs ? null, + }: + assert spec ? type; + let + # Unify across builtin and pkgs fetchers. + # `fetchGit` requires a wrapper because of slight API differences. + fetchers = + if pkgs == null then + { + inherit (builtins) fetchTarball fetchurl; + # For some fucking reason, fetchGit has a different signature than the other builtin fetchers … + fetchGit = args: (builtins.fetchGit args).outPath; + } + else + { + fetchTarball = + { + url, + sha256, + }: + pkgs.fetchzip { + inherit url sha256; + extension = "tar"; + }; + inherit (pkgs) fetchurl; + fetchGit = + { + url, + submodules, + rev, + name, + narHash, + }: + pkgs.fetchgit { + inherit url rev name; + fetchSubmodules = submodules; + hash = narHash; + }; + }; + + # Dispatch to the correct code path based on the type + path = + if spec.type == "Git" then + mkGitSource fetchers spec + else if spec.type == "GitRelease" then + mkGitSource fetchers spec + else if spec.type == "PyPi" then + mkPyPiSource fetchers spec + else if spec.type == "Channel" then + mkChannelSource fetchers spec + else if spec.type == "Tarball" then + mkTarballSource fetchers spec + else if spec.type == "Container" then + mkContainerSource pkgs spec + else + builtins.throw "Unknown source type ${spec.type}"; + in + spec // { outPath = mayOverride name path; }; + + mkGitSource = + { + fetchTarball, + fetchGit, + ... + }: + { + repository, + revision, + url ? null, + submodules, + hash, + ... + }: + assert repository ? type; + # At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository + # In the latter case, there we will always be an url to the tarball + if url != null && !submodules then + fetchTarball { + inherit url; + sha256 = hash; + } + else + let + url = + if repository.type == "Git" then + repository.url + else if repository.type == "GitHub" then + "https://github.com/${repository.owner}/${repository.repo}.git" + else if repository.type == "GitLab" then + "${repository.server}/${repository.repo_path}.git" + else if repository.type == "Forgejo" then + "${repository.server}/${repository.owner}/${repository.repo}.git" + else + throw "Unrecognized repository type ${repository.type}"; + urlToName = + url: rev: + let + matched = builtins.match "^.*/([^/]*)(\\.git)?$" url; + + short = builtins.substring 0 7 rev; + + appendShort = if (builtins.match "[a-f0-9]*" rev) != null then "-${short}" else ""; + in + "${if matched == null then "source" else builtins.head matched}${appendShort}"; + name = urlToName url revision; + in + fetchGit { + rev = revision; + narHash = hash; + + inherit name submodules url; + }; + + mkPyPiSource = + { fetchurl, ... }: + { + url, + hash, + ... + }: + fetchurl { + inherit url; + sha256 = hash; + }; + + mkChannelSource = + { fetchTarball, ... }: + { + url, + hash, + ... + }: + fetchTarball { + inherit url; + sha256 = hash; + }; + + mkTarballSource = + { fetchTarball, ... }: + { + url, + locked_url ? url, + hash, + ... + }: + fetchTarball { + url = locked_url; + sha256 = hash; + }; + + mkContainerSource = + pkgs: + { + image_name, + image_tag, + image_digest, + ... + }: + if pkgs == null then + builtins.throw "container sources require passing in a Nixpkgs value: https://github.com/andir/npins/blob/master/README.md#using-the-nixpkgs-fetchers" + else + pkgs.dockerTools.pullImage { + imageName = image_name; + imageDigest = image_digest; + finalImageTag = image_tag; + }; +in +mkFunctor ( + { + input ? ./sources.json, + }: + let + data = + if builtins.isPath input then + # while `readFile` will throw an error anyways if the path doesn't exist, + # we still need to check beforehand because *our* error can be caught but not the one from the builtin + # *piegames sighs* + if builtins.pathExists input then + builtins.fromJSON (builtins.readFile input) + else + throw "Input path ${toString input} does not exist" + else if builtins.isAttrs input then + input + else + throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset"; + version = data.version; + in + if version == 7 then + builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins + else + throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`" +) diff --git a/npins/sources.json b/npins/sources.json new file mode 100644 index 0000000..b68150c --- /dev/null +++ b/npins/sources.json @@ -0,0 +1,242 @@ +{ + "pins": { + "disc-scrape": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "srid", + "repo": "disc-scrape" + }, + "branch": "main", + "submodules": false, + "revision": "382c7e59cba9408b3098d7f0b8d10da01721b265", + "url": "https://github.com/srid/disc-scrape/archive/382c7e59cba9408b3098d7f0b8d10da01721b265.tar.gz", + "hash": "sha256-Kwx5duhBTRAAqY6UdYYGRSacT5o8//YlmwSJlzAg5d0=" + }, + "disko": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "nix-community", + "repo": "disko" + }, + "branch": "master", + "submodules": false, + "revision": "7b9f7f88ab3b339f8142dc246445abb3c370d3d3", + "url": "https://github.com/nix-community/disko/archive/7b9f7f88ab3b339f8142dc246445abb3c370d3d3.tar.gz", + "hash": "sha256-khlHllTsovXgT2GZ0WxT4+RvuMjNeR5OW0UYeEHPYQo=" + }, + "emanote": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "srid", + "repo": "emanote" + }, + "branch": "master", + "submodules": false, + "revision": "6deb47e5db07221709d5214820ff4456e2bda92d", + "url": "https://github.com/srid/emanote/archive/6deb47e5db07221709d5214820ff4456e2bda92d.tar.gz", + "hash": "sha256-2y58CyRlcPIQgVvPxsxKOp6aFO6S16CyYOJxFfBaKE8=" + }, + "flake-compat": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "edolstra", + "repo": "flake-compat" + }, + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, + "submodules": false, + "version": "v1.1.0", + "revision": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "url": "https://api.github.com/repos/edolstra/flake-compat/tarball/refs/tags/v1.1.0", + "hash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=" + }, + "git-hooks": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "cachix", + "repo": "git-hooks.nix" + }, + "branch": "master", + "submodules": false, + "revision": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", + "url": "https://github.com/cachix/git-hooks.nix/archive/6e34e97ed9788b17796ee43ccdbaf871a5c2b476.tar.gz", + "hash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=" + }, + "github-nix-ci": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "juspay", + "repo": "github-nix-ci" + }, + "branch": "main", + "submodules": false, + "revision": "edd0486a9208524eff40712a8ce835260c5b412a", + "url": "https://github.com/juspay/github-nix-ci/archive/edd0486a9208524eff40712a8ce835260c5b412a.tar.gz", + "hash": "sha256-S4Oe9aZK/UnWuj6zUlVeSDmC/QjEPHJm2gaSk/VMir4=" + }, + "imako": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "srid", + "repo": "imako" + }, + "branch": "master", + "submodules": false, + "revision": "5ac0382b0795f0897eea866fe335586a3083bc9c", + "url": "https://github.com/srid/imako/archive/5ac0382b0795f0897eea866fe335586a3083bc9c.tar.gz", + "hash": "sha256-rZgwvE39JAOD9iod9i/7v66Il7egKoSl1zDW3EGMHoo=" + }, + "jumphost-nix": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "srid", + "repo": "jumphost-nix" + }, + "branch": "main", + "submodules": false, + "revision": "77fc2b85b3c7a830f2ae7ab0b6716b10e0b480f1", + "url": "https://github.com/srid/jumphost-nix/archive/77fc2b85b3c7a830f2ae7ab0b6716b10e0b480f1.tar.gz", + "hash": "sha256-6oHN28aCD0jsBxliKfwdjUoHuhAMZgTRZJmllyDgDKA=" + }, + "kolu": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "juspay", + "repo": "kolu" + }, + "branch": "main", + "submodules": false, + "revision": "575b3c18672e6a31784046d5e1c777242ab5f886", + "url": "https://github.com/juspay/kolu/archive/575b3c18672e6a31784046d5e1c777242ab5f886.tar.gz", + "hash": "sha256-YmAU9cLTccojhqkGFZdm0L/dbZkPw7sPJxo6uirlsto=" + }, + "landrun-nix": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "adrian-gierakowski", + "repo": "landrun-nix" + }, + "branch": "darwin-implementation-via-sandbox-exec", + "submodules": false, + "revision": "664d588939df5f6d7be80c99175decf7ee5de498", + "url": "https://github.com/adrian-gierakowski/landrun-nix/archive/664d588939df5f6d7be80c99175decf7ee5de498.tar.gz", + "hash": "sha256-rKYiBL0KOtMfkgJCGxsICCvXLsqj/dzsF5seimW3edA=" + }, + "nix-agent-wire": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "srid", + "repo": "nix-agent-wire" + }, + "branch": "main", + "submodules": false, + "revision": "dff0e61fa1bc8457815c8cd61808ea07b514502b", + "url": "https://github.com/srid/nix-agent-wire/archive/dff0e61fa1bc8457815c8cd61808ea07b514502b.tar.gz", + "hash": "sha256-YiOXMLnjkmUcubkxPWx5vRl+OaQwaJvrjiAVw8pp+u8=" + }, + "nix-index-database": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "nix-community", + "repo": "nix-index-database" + }, + "branch": "main", + "submodules": false, + "revision": "55b588747fa3d7fc351a11831c4b874dab992862", + "url": "https://github.com/nix-community/nix-index-database/archive/55b588747fa3d7fc351a11831c4b874dab992862.tar.gz", + "hash": "sha256-gdYe9wTPl4ignDyXUl1LlICWj41+S0GB5lG1fKP17+A=" + }, + "nixos-hardware": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "NixOS", + "repo": "nixos-hardware" + }, + "branch": "master", + "submodules": false, + "revision": "3966ce987e1a9a164205ac8259a5fe8a64528f72", + "url": "https://github.com/NixOS/nixos-hardware/archive/3966ce987e1a9a164205ac8259a5fe8a64528f72.tar.gz", + "hash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=" + }, + "nixos-vscode-server": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "nix-community", + "repo": "nixos-vscode-server" + }, + "branch": "master", + "submodules": false, + "revision": "92ce71c3ba5a94f854e02d57b14af4997ab54ef0", + "url": "https://github.com/nix-community/nixos-vscode-server/archive/92ce71c3ba5a94f854e02d57b14af4997ab54ef0.tar.gz", + "hash": "sha256-yHmd2B13EtBUPLJ+x0EaBwNkQr9LTne1arLVxT6hSnY=" + }, + "nixvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "nix-community", + "repo": "nixvim" + }, + "branch": "main", + "submodules": false, + "revision": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", + "url": "https://github.com/nix-community/nixvim/archive/21ae25e13b01d3b4cdc750b5f9e7bad68b150c10.tar.gz", + "hash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=" + }, + "oc": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "juspay", + "repo": "AI" + }, + "branch": "main", + "submodules": false, + "revision": "510c5a622a060adb18689b4edf5c71023780ed11", + "url": "https://github.com/juspay/AI/archive/510c5a622a060adb18689b4edf5c71023780ed11.tar.gz", + "hash": "sha256-aI9fiMRUsvKx3P3PibOp+Ony9N/mY2OllT8NOYXJjTU=" + }, + "skills": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "juspay", + "repo": "skills" + }, + "branch": "main", + "submodules": false, + "revision": "c727a563bcd073303681aff53947e56159e6d548", + "url": "https://github.com/juspay/skills/archive/c727a563bcd073303681aff53947e56159e6d548.tar.gz", + "hash": "sha256-nT9po9XMjJ2nazyGrz8jkj75KIS8VUbnNfAYL2YqjWY=" + }, + "vira": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "juspay", + "repo": "vira" + }, + "branch": "main", + "submodules": false, + "revision": "858ab06405097224f6841450c323f6bff21e62be", + "url": "https://github.com/juspay/vira/archive/858ab06405097224f6841450c323f6bff21e62be.tar.gz", + "hash": "sha256-PQMgtlst98me4JSJarU1R+HMQDqxIf/AzJg/mm0eSa8=" + } + }, + "version": 7 +}