diff --git a/common/flake.lock b/common/flake.lock index 3516b6e..2ba0955 100644 --- a/common/flake.lock +++ b/common/flake.lock @@ -44,11 +44,11 @@ ] }, "locked": { - "lastModified": 1755946532, - "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", + "lastModified": 1759499898, + "narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", + "rev": "655e067f96fd44b3f5685e17f566b0e4d535d798", "type": "github" }, "original": { @@ -237,11 +237,11 @@ ] }, "locked": { - "lastModified": 1758192433, - "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=", + "lastModified": 1759490292, + "narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7", + "rev": "9431db625cd9bb66ac55525479dce694101d6d7a", "type": "github" }, "original": { @@ -266,11 +266,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1759094452, - "narHash": "sha256-j7IOTFnQRDjX4PzYb2p6CPviAc8cDrcorzGpM8J89uM=", + "lastModified": 1759837778, + "narHash": "sha256-12GZqSrRYyhKl7NpNMUQECDi/Zyx17QZhhQ7+mBJMns=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "f854b5bffbdd13cfe7edad0ee157d6947ff99619", + "rev": "5ba2d2217b649c4ca2db7e3f383b3f6af6e70d65", "type": "github" }, "original": { @@ -359,11 +359,11 @@ ] }, "locked": { - "lastModified": 1757694755, - "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=", + "lastModified": 1759080228, + "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c", + "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", "type": "github" }, "original": { @@ -388,11 +388,11 @@ ] }, "locked": { - "lastModified": 1756810301, - "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "type": "github" }, "original": { @@ -413,11 +413,11 @@ ] }, "locked": { - "lastModified": 1756117388, - "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", + "lastModified": 1759490926, + "narHash": "sha256-7IbZGJ5qAAfZsGhBHIsP8MBsfuFYS0hsxYHVkkeDG5Q=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", + "rev": "94cce794344538c4d865e38682684ec2bbdb2ef3", "type": "github" }, "original": { @@ -485,11 +485,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1758198701, - "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=", + "lastModified": 1759381078, + "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d", + "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", "type": "github" }, "original": { diff --git a/hosts/h001/flake.lock b/hosts/h001/flake.lock index 6f707b8..95d159e 100644 --- a/hosts/h001/flake.lock +++ b/hosts/h001/flake.lock @@ -49,11 +49,11 @@ ] }, "locked": { - "lastModified": 1755946532, - "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", + "lastModified": 1759499898, + "narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", + "rev": "655e067f96fd44b3f5685e17f566b0e4d535d798", "type": "github" }, "original": { @@ -268,11 +268,11 @@ ] }, "locked": { - "lastModified": 1758192433, - "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=", + "lastModified": 1759490292, + "narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7", + "rev": "9431db625cd9bb66ac55525479dce694101d6d7a", "type": "github" }, "original": { @@ -297,11 +297,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1759094452, - "narHash": "sha256-j7IOTFnQRDjX4PzYb2p6CPviAc8cDrcorzGpM8J89uM=", + "lastModified": 1759837778, + "narHash": "sha256-12GZqSrRYyhKl7NpNMUQECDi/Zyx17QZhhQ7+mBJMns=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "f854b5bffbdd13cfe7edad0ee157d6947ff99619", + "rev": "5ba2d2217b649c4ca2db7e3f383b3f6af6e70d65", "type": "github" }, "original": { @@ -399,11 +399,11 @@ ] }, "locked": { - "lastModified": 1757694755, - "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=", + "lastModified": 1759080228, + "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c", + "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", "type": "github" }, "original": { @@ -431,11 +431,11 @@ ] }, "locked": { - "lastModified": 1756810301, - "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "type": "github" }, "original": { @@ -458,11 +458,11 @@ ] }, "locked": { - "lastModified": 1756117388, - "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", + "lastModified": 1759490926, + "narHash": "sha256-7IbZGJ5qAAfZsGhBHIsP8MBsfuFYS0hsxYHVkkeDG5Q=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", + "rev": "94cce794344538c4d865e38682684ec2bbdb2ef3", "type": "github" }, "original": { @@ -498,6 +498,22 @@ "type": "github" } }, + "litellm-nixpkgs": { + "locked": { + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nix-flatpak": { "locked": { "lastModified": 1739444422, @@ -550,29 +566,13 @@ "type": "github" } }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1759036355, - "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { - "lastModified": 1758198701, - "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=", + "lastModified": 1759381078, + "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d", + "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", "type": "github" }, "original": { @@ -616,11 +616,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1759143472, - "narHash": "sha256-TvODmeR2W7yX/JmOCmP+lAFNkTT7hAxYcF3Kz8SZV3w=", + "lastModified": 1759735786, + "narHash": "sha256-a0+h02lyP2KwSNrZz4wLJTu9ikujNsTWIC874Bv7IJ0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5ed4e25ab58fd4c028b59d5611e14ea64de51d23", + "rev": "20c4598c84a671783f741e02bf05cbfaf4907cff", "type": "github" }, "original": { @@ -632,11 +632,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1757952092, - "narHash": "sha256-BcfTLFCU7elUJ2dwyt0iTjxsz/XLh+8ZygDcFwy6xPE=", + "lastModified": 1759772810, + "narHash": "sha256-8/sO67+Q6yNfFD39W5SXQHDbf/tQUHWFhCdxgRRGVCQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fd76dc9e7c68ac7c3941ba2af2bedcd79c5cf4ed", + "rev": "2b78ecc45e163d655c08c9a4cffb4a91c66d0493", "type": "github" }, "original": { @@ -664,11 +664,11 @@ "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": { "flake": false, "locked": { - "lastModified": 1757950300, - "narHash": "sha256-IQTP3jOmFNc2nphV9jdFbJXkmAN5Wj+/PIGmaZ8gP24=", + "lastModified": 1759715887, + "narHash": "sha256-9wXyswKnUenlZyO/aIy0gr1hF0IhuEJ0UOwvqjDSGjA=", "owner": "CopilotC-Nvim", "repo": "CopilotChat.nvim", - "rev": "87615648ff4dc852d1cf7ec099f0a7c37b1b2c87", + "rev": "92f269971c33a6e2f405da8b14f01cd109b9a3a3", "type": "github" }, "original": { @@ -696,11 +696,11 @@ "nvim_plugin-L3MON4D3/LuaSnip": { "flake": false, "locked": { - "lastModified": 1756990415, - "narHash": "sha256-5FsUVPy8pAiwBh3c+bPDMtypFEHj6qIwGQIo3hjqV4M=", + "lastModified": 1759157591, + "narHash": "sha256-sicE0/Vgc03X+Qxqlu5CM7NGd+6FE9RGx6OjZUa6Umw=", "owner": "L3MON4D3", "repo": "LuaSnip", - "rev": "21f74f7ba8c49f95f9d7c8293b147c2901dd2d3a", + "rev": "73813308abc2eaeff2bc0d3f2f79270c491be9d7", "type": "github" }, "original": { @@ -712,11 +712,11 @@ "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { "flake": false, "locked": { - "lastModified": 1757910669, - "narHash": "sha256-PWbFcGRbTMRhDJrj+kx73HLduMLOSrAhZTLL2YgrAjQ=", + "lastModified": 1759424904, + "narHash": "sha256-Smt9v6/XyHUdUiIPyCPQSRvWCeMMhYITSZWd9M7Jlvs=", "owner": "MeanderingProgrammer", "repo": "render-markdown.nvim", - "rev": "2c6cf127c577712bd29d38f6391b3045c5f0180a", + "rev": "7e6af36c846017122e07e68803bbf95f3c729ca3", "type": "github" }, "original": { @@ -776,11 +776,11 @@ "nvim_plugin-aznhe21/actions-preview.nvim": { "flake": false, "locked": { - "lastModified": 1745779150, - "narHash": "sha256-rQjwlu5gQcOvxF72lr9ugPRl0W78wCWGWPhpN1oOMbs=", + "lastModified": 1759462626, + "narHash": "sha256-YUeWBXxxeurfWBi0PjUi6izqYAvUw9DHmvsuPXm7ohw=", "owner": "aznhe21", "repo": "actions-preview.nvim", - "rev": "36513ad213855d497b7dd3391a24d1d75d58e36f", + "rev": "cb938c25edaac38d362555f19244a9cb85d561e8", "type": "github" }, "original": { @@ -792,11 +792,11 @@ "nvim_plugin-b0o/schemastore.nvim": { "flake": false, "locked": { - "lastModified": 1757653237, - "narHash": "sha256-94NKAVWPV2sLkGWWL9G07QxA90Ise6tNWaYyKBcS/vI=", + "lastModified": 1759454886, + "narHash": "sha256-T6mWvScsU0IsB3wFre5+TrNIbpQCA0flf7BNrGQIb+M=", "owner": "b0o", "repo": "schemastore.nvim", - "rev": "3146720ee3a0c6e2446eedd492fb519d16f2e467", + "rev": "8e17e50b519ba360bcfd5dfb5843ccac9be500ba", "type": "github" }, "original": { @@ -808,11 +808,11 @@ "nvim_plugin-catppuccin/nvim": { "flake": false, "locked": { - "lastModified": 1755621274, - "narHash": "sha256-o8VLMPriOh4+Ay5Ff0cWQYXjmihdr3x9131bKHHTsQE=", + "lastModified": 1759668198, + "narHash": "sha256-WmWGygttH78KajAaIvlwRW47G7UGJuPV0YIfEZkse6I=", "owner": "catppuccin", "repo": "nvim", - "rev": "30fa4d122d9b22ad8b2e0ab1b533c8c26c4dde86", + "rev": "e79d09fa347b367e0e7f693bfe87dba932a8cbd1", "type": "github" }, "original": { @@ -856,11 +856,11 @@ "nvim_plugin-folke/lazy.nvim": { "flake": false, "locked": { - "lastModified": 1740511197, - "narHash": "sha256-nQ8PR9DTdzg6Z2rViuVD6Pswc2VvDQwS3uMNgyDh5ls=", + "lastModified": 1759439283, + "narHash": "sha256-FjQ2rj3BvC8fh60IT0ExrBOmdDLdXFexffef6iKcPFQ=", "owner": "folke", "repo": "lazy.nvim", - "rev": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a", + "rev": "59334064f8604ca073791c25dcc5c9698865406e", "type": "github" }, "original": { @@ -888,11 +888,11 @@ "nvim_plugin-folke/which-key.nvim": { "flake": false, "locked": { - "lastModified": 1740233407, - "narHash": "sha256-uvMcSduMr7Kd2oUmIOYzvWF4FIl6bZxIYm9FSw/3pCo=", + "lastModified": 1758639622, + "narHash": "sha256-JNkjlv6QpnuaYCAFcBPjV7IavVLzj8QEX/Zi3sbdyrU=", "owner": "folke", "repo": "which-key.nvim", - "rev": "370ec46f710e058c9c1646273e6b225acf47cbed", + "rev": "904308e6885bbb7b60714c80ab3daf0c071c1492", "type": "github" }, "original": { @@ -968,11 +968,11 @@ "nvim_plugin-j-hui/fidget.nvim": { "flake": false, "locked": { - "lastModified": 1755700851, - "narHash": "sha256-KRlUqUdcliKpLnEJqyA2OAWto73F6iGTbMrsiAdc24M=", + "lastModified": 1758578970, + "narHash": "sha256-ieY3zaQAydzadpPiW1/IYakVHhp+wyEOpCQntgDOObs=", "owner": "j-hui", "repo": "fidget.nvim", - "rev": "4d5858bd4c471c895060e1b9f3575f1551184dc5", + "rev": "3f5475949679953af6d78654db29b944fa826e6a", "type": "github" }, "original": { @@ -1000,11 +1000,11 @@ "nvim_plugin-lewis6991/gitsigns.nvim": { "flake": false, "locked": { - "lastModified": 1757668552, - "narHash": "sha256-L5WbNiFUn014hThvGfb5r858O6iLOBhOQHfVUdIlFI4=", + "lastModified": 1759324477, + "narHash": "sha256-GDK9I3SNRyZe59+GsnDC0L2KjGr150dWo4S3DUwhT7U=", "owner": "lewis6991", "repo": "gitsigns.nvim", - "rev": "f780609807eca1f783a36a8a31c30a48fbe150c5", + "rev": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197", "type": "github" }, "original": { @@ -1064,11 +1064,11 @@ "nvim_plugin-mbbill/undotree": { "flake": false, "locked": { - "lastModified": 1756538456, - "narHash": "sha256-tudR+46nd63jY1VTCNEfZ2CofxCODXaHos0+NdFI6wU=", + "lastModified": 1759186837, + "narHash": "sha256-EWOH08KAWyoT9m45/B1d5aKQQJtd3k4orJbagVsxe08=", "owner": "mbbill", "repo": "undotree", - "rev": "fe9a9d0645f0f5532360b5e5f5c550d7bb4f1869", + "rev": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f", "type": "github" }, "original": { @@ -1080,11 +1080,11 @@ "nvim_plugin-mfussenegger/nvim-lint": { "flake": false, "locked": { - "lastModified": 1757878177, - "narHash": "sha256-8X9z0pRWx9xg9nQhhQtuOu3TunObg2CIgnlPXZtx86A=", + "lastModified": 1758714671, + "narHash": "sha256-POnQfsZAv93+0uCbKFcNgyQxn3u8nNqgnx0uTqCkCq8=", "owner": "mfussenegger", "repo": "nvim-lint", - "rev": "0864f81c681e15d9bdc1156fe3a17bd07db5a3ed", + "rev": "335a6044be16d7701001059cba9baa36fbeef422", "type": "github" }, "original": { @@ -1096,11 +1096,11 @@ "nvim_plugin-mrcjkb/rustaceanvim": { "flake": false, "locked": { - "lastModified": 1757809469, - "narHash": "sha256-bijgDZozBNmHW3cASmOrQlaSE80d8V3XRxi1BNmfzRI=", + "lastModified": 1759623626, + "narHash": "sha256-Cz4LDzz7v3kBS1mbxZjprogqHFghYr5xMfSN3us2Ltk=", "owner": "mrcjkb", "repo": "rustaceanvim", - "rev": "370b85298e5afdfd8b5d3da0c60c04e3873499a4", + "rev": "96a4f5efc7705f613ddd47fb5d1445c172acb213", "type": "github" }, "original": { @@ -1112,11 +1112,11 @@ "nvim_plugin-neovim/nvim-lspconfig": { "flake": false, "locked": { - "lastModified": 1757886255, - "narHash": "sha256-lIlFgHkesAK7fRcoEEQO84/0BpE29dBgNzBnCv/0Tf0=", + "lastModified": 1759548517, + "narHash": "sha256-K56vjTUkQ/NdA6vq5942zUknPiCUbMByiEW540dR8R0=", "owner": "neovim", "repo": "nvim-lspconfig", - "rev": "d9879110d0422a566fa01d732556f4d5515e1738", + "rev": "e688b486fe9291f151eae7e5c0b5a5c4ef980847", "type": "github" }, "original": { @@ -1128,11 +1128,11 @@ "nvim_plugin-nosduco/remote-sshfs.nvim": { "flake": false, "locked": { - "lastModified": 1755703322, - "narHash": "sha256-xy+50CsRd0LfRyDtNNMI8KhzvjH2nt8ogwiXf7H3fYY=", + "lastModified": 1759193354, + "narHash": "sha256-FfUxpRfqrf0r56/gi76N2ZooWnXWO0aRtaQBS7m+SvY=", "owner": "nosduco", "repo": "remote-sshfs.nvim", - "rev": "8b0974c0e23ef086f5598ebbb1980257171dc370", + "rev": "45502b3892774811153aeab5f7f9b0033c82005c", "type": "github" }, "original": { @@ -1256,11 +1256,11 @@ "nvim_plugin-nvim-tree/nvim-tree.lua": { "flake": false, "locked": { - "lastModified": 1757312802, - "narHash": "sha256-Km+PWXJJLl8zsBjwIGL//qT/eUEZna4yYRPsWXMXG1E=", + "lastModified": 1759222332, + "narHash": "sha256-TmQd8Xx9xw3G9PfPH+DZeSECfiUoO7XKCUSyQ4O0hMk=", "owner": "nvim-tree", "repo": "nvim-tree.lua", - "rev": "e179ad2f83b5955ab0af653069a493a1828c2697", + "rev": "87d096a39cb2d5d43e6771563575ff042a79f48b", "type": "github" }, "original": { @@ -1272,11 +1272,11 @@ "nvim_plugin-nvim-tree/nvim-web-devicons": { "flake": false, "locked": { - "lastModified": 1756936794, - "narHash": "sha256-2Q6ZZQj5HFXTw1YwX3ibdGOTwfbfPUBbcPOsuBUpSjc=", + "lastModified": 1759188261, + "narHash": "sha256-lVrakFrpIP9lp7sMfMb33KeMPIkcn1qBFVytJzKCfuE=", "owner": "nvim-tree", "repo": "nvim-web-devicons", - "rev": "6e51ca170563330e063720449c21f43e27ca0bc1", + "rev": "b8221e42cf7287c4dcde81f232f58d7b947c210d", "type": "github" }, "original": { @@ -1336,11 +1336,11 @@ "nvim_plugin-rmagatti/auto-session": { "flake": false, "locked": { - "lastModified": 1757864222, - "narHash": "sha256-FbN36vVLX3DUXwefTbi6511R6KTHqLiNHeAR0kXiarg=", + "lastModified": 1759618137, + "narHash": "sha256-+RYQi685tyV73WNXpgr/Q5p3o21dSUkQmSoif+EPBVM=", "owner": "rmagatti", "repo": "auto-session", - "rev": "5a269bb5bec50b8b60564aa00f6454d9e82fbe8d", + "rev": "0385a9ad378d70608c2e6e4c14b3b126ce30fc51", "type": "github" }, "original": { @@ -1400,11 +1400,11 @@ "nvim_plugin-stevearc/conform.nvim": { "flake": false, "locked": { - "lastModified": 1756334700, - "narHash": "sha256-j9TOSx2L19AHABdg9pLtmEUtPOCIUSo0qe2YUPBlZ5g=", + "lastModified": 1759554032, + "narHash": "sha256-JX+vFs+8n4PS7Xwq68MW2mjlDaLlUx6CxMqhf9ArfXQ=", "owner": "stevearc", "repo": "conform.nvim", - "rev": "b4aab989db276993ea5dcb78872be494ce546521", + "rev": "9d859cbfbde7a1bd1770e7c97aef30ec5a237a71", "type": "github" }, "original": { @@ -1512,11 +1512,11 @@ "nvim_plugin-zbirenbaum/copilot.lua": { "flake": false, "locked": { - "lastModified": 1757884406, - "narHash": "sha256-sXobILIsV4nnk9//PbFT4L1BsHP1xSJiuibVbGwYXJ8=", + "lastModified": 1759697885, + "narHash": "sha256-PwqJ7/FCfK4AqFgguZ2Tac5RWhehSEfI1N6ySSuTbZc=", "owner": "zbirenbaum", "repo": "copilot.lua", - "rev": "8aebaa3a102125fedf08c98773a0a8def92fff37", + "rev": "30b98a4c25d6152c14084020f703b6d56e1f1122", "type": "github" }, "original": { @@ -1525,6 +1525,38 @@ "type": "github" } }, + "oauth2-proxy-nixpkgs": { + "locked": { + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "open-webui-nixpkgs": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -1574,10 +1606,13 @@ "root": { "inputs": { "common": "common", + "litellm-nixpkgs": "litellm-nixpkgs", "nixarr": "nixarr", "nixpkgs": "nixpkgs_5", - "nixpkgs-unstable": "nixpkgs-unstable", - "ros_neovim": "ros_neovim" + "oauth2-proxy-nixpkgs": "oauth2-proxy-nixpkgs", + "open-webui-nixpkgs": "open-webui-nixpkgs", + "ros_neovim": "ros_neovim", + "trilium-nixpkgs": "trilium-nixpkgs" } }, "ros_neovim": { @@ -1641,11 +1676,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1758041510, - "narHash": "sha256-vcK6ZwAWNfjdDFYKLVrWk+azva58AiDpm8nMfIniFWA=", + "lastModified": 1759881611, + "narHash": "sha256-OrWyZDLEafAP90pCun/6mE1F88znpJYi3rRIHQo8Wrs=", "ref": "refs/heads/master", - "rev": "b3dbdf3f7360747987bf38bcdd9baf01b4906929", - "revCount": 304, + "rev": "31a6fc294d8db6fc3c89e60321e052bae8b9e96b", + "revCount": 308, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/nvim" }, @@ -1684,11 +1719,11 @@ ] }, "locked": { - "lastModified": 1757930296, - "narHash": "sha256-Z9u5VszKs8rfEvg2AsFucWEjl7wMtAln9l1b78cfBh4=", + "lastModified": 1759718104, + "narHash": "sha256-TbkLsgdnXHUXR4gOQBmhxkEE9ne+eHmX1chZHWRogy0=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "09442765a05c2ca617c20ed68d9613da92a2d96b", + "rev": "edea9f33f9a03f615ad3609a40fbcefe0ec835ca", "type": "github" }, "original": { @@ -1742,6 +1777,22 @@ "type": "github" } }, + "trilium-nixpkgs": { + "locked": { + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "vpnconfinement": { "locked": { "lastModified": 1743810720, diff --git a/hosts/h001/flake.nix b/hosts/h001/flake.nix index a0e5624..9a7b684 100644 --- a/hosts/h001/flake.nix +++ b/hosts/h001/flake.nix @@ -2,7 +2,10 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; # nixpkgs-unstable.url = "github:wrvsrx/nixpkgs/fix-open-webui"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + open-webui-nixpkgs.url = "github:nixos/nixpkgs/e9f00bd893984bc8ce46c895c3bf7cac95331127"; + litellm-nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + trilium-nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + oauth2-proxy-nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # Use relative to get current version for testing common.url = "path:../../common"; @@ -31,10 +34,6 @@ lib.nixosSystem { specialArgs = { inherit inputs; - upkgs = import inputs.nixpkgs-unstable { - system = "x86_64-linux"; - config.allowUnfree = true; - }; }; modules = [ common.nixosModules.default diff --git a/hosts/h001/mods/default.nix b/hosts/h001/mods/default.nix index 2332292..89dfef1 100644 --- a/hosts/h001/mods/default.nix +++ b/hosts/h001/mods/default.nix @@ -3,6 +3,7 @@ }: { imports = [ + ./litellm.nix ./nixarr.nix ./monitoring.nix ./pinchflat.nix diff --git a/hosts/h001/mods/litellm.nix b/hosts/h001/mods/litellm.nix new file mode 100644 index 0000000..b04b31b --- /dev/null +++ b/hosts/h001/mods/litellm.nix @@ -0,0 +1,169 @@ +{ + inputs, + ... +}: +let + declaration = "services/misc/litellm.nix"; + nixpkgs = inputs.open-webui-nixpkgs; + pkgs = import nixpkgs { + system = "x86_64-linux"; + config.allowUnfree = true; + }; + port = 8094; +in +{ + disabledModules = [ declaration ]; + imports = [ "${nixpkgs}/nixos/modules/${declaration}" ]; + options = { }; + config = { + networking.firewall.enable = true; + # Expose litellm to my overlay network as well + networking.firewall.interfaces."tailscale0".allowedTCPPorts = [ port ]; + + services.litellm = { + enable = true; + inherit port; + host = "0.0.0.0"; + openFirewall = false; + package = pkgs.litellm; + environment = { + SCARF_NO_ANALYTICS = "True"; + DO_NOT_TRACK = "True"; + ANONYMIZED_TELEMETRY = "False"; + GITHUB_COPILOT_TOKEN_DIR = "/var/lib/litellm/github_copilot"; + XDG_CONFIG_HOME = "/var/lib/litellm/.config"; + }; + settings = { + environment_variables = { + LITELLM_PROXY_API_KEY = "na"; + }; + litellm_settings = { + check_provider_endpoints = true; + }; + model_list = [ + # existing + { + model_name = "GPT-5"; + litellm_params = { + model = "azure/gpt-5-2025-08-07"; + api_base = "http://100.64.0.8:9010/azure"; + api_version = "2025-04-01-preview"; + api_key = "na"; + }; + } + { + model_name = "GPT-5-mini"; + litellm_params = { + model = "azure/gpt-5-mini-2025-08-07"; + api_base = "http://100.64.0.8:9010/azure"; + api_version = "2025-04-01-preview"; + api_key = "na"; + }; + } + { + model_name = "GPT-5-nano"; + litellm_params = { + model = "azure/gpt-5-nano-2025-08-07"; + api_base = "http://100.64.0.8:9010/azure"; + api_version = "2025-04-01-preview"; + api_key = "na"; + }; + } + # { + # model_name = "GPT-5-codex"; + # litellm_params = { + # model = "azure/gpt-5-codex-2025-09-15"; + # api_base = "http://100.64.0.8:9010/azure"; + # api_version = "2025-04-01-preview"; + # api_key = "na"; + # }; + # } + { + model_name = "GPT-4.1"; + litellm_params = { + model = "azure/gpt-4.1-2025-04-14"; + api_base = "http://100.64.0.8:9010/azure"; + api_version = "2025-04-01-preview"; + api_key = "na"; + }; + } + { + model_name = "GPT-4.1-mini"; + litellm_params = { + model = "azure/gpt-4.1-mini-2025-04-14"; + api_base = "http://100.64.0.8:9010/azure"; + api_version = "2025-04-01-preview"; + api_key = "na"; + }; + } + { + model_name = "GPT-4o"; + litellm_params = { + model = "azure/gpt-4o-2024-05-13"; + api_base = "http://100.64.0.8:9010/azure"; + api_version = "2025-04-01-preview"; + api_key = "na"; + }; + } + # { + # model_name = "dall-e-3-3.0"; + # litellm_params = { + # model = "azure/dall-e-3-3.0"; + # api_base = "http://100.64.0.8:9010/azure"; + # api_version = "2025-04-01-preview"; + # api_key = "na"; + # }; + # } + + # Copilot + { + model_name = "copilot-claude-sonnet-4"; + litellm_params = { + model = "github_copilot/claude-sonnet-4"; + extra_headers = { + "editor-version" = "vscode/1.85.1"; + "Copilot-Integration-Id" = "vscode-chat"; + "user-agent" = "GithubCopilot/1.155.0"; + "editor-plugin-version" = "copilot/1.155.0"; + }; + }; + } + { + model_name = "copilot-google-gemini-2.5-pro"; + litellm_params = { + model = "github_copilot/gemini-2.5-pro"; + extra_headers = { + "editor-version" = "vscode/1.85.1"; + "Copilot-Integration-Id" = "vscode-chat"; + "user-agent" = "GithubCopilot/1.155.0"; + "editor-plugin-version" = "copilot/1.155.0"; + }; + }; + } + # { + # model_name = "copilot-google-gemini-2.0-flash"; + # litellm_params = { + # model = "github_copilot/gemini-2.0-flash"; + # extra_headers = { + # "editor-version" = "vscode/1.85.1"; + # "Copilot-Integration-Id" = "vscode-chat"; + # "user-agent" = "GithubCopilot/1.155.0"; + # "editor-plugin-version" = "copilot/1.155.0"; + # }; + # }; + # } + + # 宙 Proxy + # { + # model_name = "litellm_proxy/*"; + # litellm_params = { + # model = "litellm_proxy/*"; + # api_base = "http://100.64.0.8:9010/air_key"; + # api_key = "os.environ/LITELLM_PROXY_API_KEY"; + # }; + # } + ]; + }; + }; + }; +} diff --git a/hosts/h001/mods/oauth2-proxy.nix b/hosts/h001/mods/oauth2-proxy.nix index f39e837..ca06729 100644 --- a/hosts/h001/mods/oauth2-proxy.nix +++ b/hosts/h001/mods/oauth2-proxy.nix @@ -1,40 +1,56 @@ -{ upkgs, config, ... }: { - services.oauth2-proxy = { - enable = true; - httpAddress = "http://127.0.0.1:4180"; - package = upkgs.oauth2-proxy; - provider = "oidc"; - reverseProxy = true; - redirectURL = "https://sso-proxy.joshuabell.xyz/oauth2/callback"; - validateURL = "https://sso.joshuabell.xyz/oauth2/"; - oidcIssuerUrl = "https://sso.joshuabell.xyz"; - keyFile = config.age.secrets.oauth2_proxy_key_file.path; - nginx.domain = "sso-proxy.joshuabell.xyz"; - email.domains = [ "*" ]; - extraConfig = { - whitelist-domain = "*.joshuabell.xyz"; - cookie-domain = ".joshuabell.xyz"; - oidc-groups-claim = "flatRolesClaim"; - # scope = "openid email profiles"; - - # pass-access-token = "true"; - # set-authorization-header = "true"; - # pass-user-headers = "true"; - - # show-debug-on-error = "true"; - # errors-to-info-log = "true"; - }; - cookie.refresh = "30m"; - # setXauthrequest = true; + inputs, + config, + ... +}: +let + declaration = "services/security/oauth2-proxy.nix"; + nixpkgs = inputs.open-webui-nixpkgs; + pkgs = import nixpkgs { + system = "x86_64-linux"; + config.allowUnfree = true; }; +in +{ + disabledModules = [ declaration ]; + imports = [ "${nixpkgs}/nixos/modules/${declaration}" ]; + config = { + services.oauth2-proxy = { + enable = true; + httpAddress = "http://127.0.0.1:4180"; + package = pkgs.oauth2-proxy; + provider = "oidc"; + reverseProxy = true; + redirectURL = "https://sso-proxy.joshuabell.xyz/oauth2/callback"; + validateURL = "https://sso.joshuabell.xyz/oauth2/"; + oidcIssuerUrl = "https://sso.joshuabell.xyz"; + keyFile = config.age.secrets.oauth2_proxy_key_file.path; + nginx.domain = "sso-proxy.joshuabell.xyz"; + email.domains = [ "*" ]; + extraConfig = { + whitelist-domain = "*.joshuabell.xyz"; + cookie-domain = ".joshuabell.xyz"; + oidc-groups-claim = "flatRolesClaim"; + # scope = "openid email profiles"; - services.nginx.virtualHosts."sso-proxy.joshuabell.xyz" = { - locations = { - "/" = { - proxyWebsockets = true; - recommendedProxySettings = true; - proxyPass = "http://127.0.0.1:4180"; + # pass-access-token = "true"; + # set-authorization-header = "true"; + # pass-user-headers = "true"; + + # show-debug-on-error = "true"; + # errors-to-info-log = "true"; + }; + cookie.refresh = "30m"; + # setXauthrequest = true; + }; + + services.nginx.virtualHosts."sso-proxy.joshuabell.xyz" = { + locations = { + "/" = { + proxyWebsockets = true; + recommendedProxySettings = true; + proxyPass = "http://127.0.0.1:4180"; + }; }; }; }; diff --git a/hosts/h001/mods/openwebui.nix b/hosts/h001/mods/openwebui.nix index 2c847b6..6b9c994 100644 --- a/hosts/h001/mods/openwebui.nix +++ b/hosts/h001/mods/openwebui.nix @@ -1,20 +1,19 @@ { - upkgs, inputs, config, ... }: +let + declaration = "services/misc/open-webui.nix"; + nixpkgs = inputs.open-webui-nixpkgs; + pkgs = import nixpkgs { + system = "x86_64-linux"; + config.allowUnfree = true; + }; +in { - # Use unstable services - disabledModules = [ - "services/misc/open-webui.nix" - "services/misc/litellm.nix" - ]; - imports = [ - "${inputs.nixpkgs-unstable}/nixos/modules/services/misc/open-webui.nix" - "${inputs.nixpkgs-unstable}/nixos/modules/services/misc/litellm.nix" - ]; - + disabledModules = [ declaration ]; + imports = [ "${nixpkgs}/nixos/modules/${declaration}" ]; options = { }; config = { services.nginx.virtualHosts."chat.joshuabell.xyz" = { @@ -35,7 +34,7 @@ port = 8084; host = "127.0.0.1"; openFirewall = false; - package = upkgs.open-webui; + package = pkgs.open-webui; environmentFile = config.age.secrets.openwebui_env.path; environment = { # Declarative config, we don't use admin panel for anything @@ -68,134 +67,5 @@ # OAUTH_UPDATE_PICTURE_ON_LOGIN = "True"; }; }; - - services.litellm = { - enable = true; - port = 8094; - openFirewall = false; - package = upkgs.litellm; - environment = { - SCARF_NO_ANALYTICS = "True"; - DO_NOT_TRACK = "True"; - ANONYMIZED_TELEMETRY = "False"; - GITHUB_COPILOT_TOKEN_DIR = "/var/lib/litellm/github_copilot"; - XDG_CONFIG_HOME = "/var/lib/litellm/.config"; - }; - settings = { - model_list = [ - # existing - { - model_name = "GPT-5"; - litellm_params = { - model = "azure/gpt-5-2025-08-07"; - api_base = "http://100.64.0.8:9010/azure"; - api_version = "2025-04-01-preview"; - api_key = "na"; - }; - } - { - model_name = "GPT-5-mini"; - litellm_params = { - model = "azure/gpt-5-mini-2025-08-07"; - api_base = "http://100.64.0.8:9010/azure"; - api_version = "2025-04-01-preview"; - api_key = "na"; - }; - } - { - model_name = "GPT-5-nano"; - litellm_params = { - model = "azure/gpt-5-nano-2025-08-07"; - api_base = "http://100.64.0.8:9010/azure"; - api_version = "2025-04-01-preview"; - api_key = "na"; - }; - } - # { - # model_name = "GPT-5-codex"; - # litellm_params = { - # model = "azure/gpt-5-codex-2025-09-15"; - # api_base = "http://100.64.0.8:9010/azure"; - # api_version = "2025-04-01-preview"; - # api_key = "na"; - # }; - # } - { - model_name = "GPT-4.1"; - litellm_params = { - model = "azure/gpt-4.1-2025-04-14"; - api_base = "http://100.64.0.8:9010/azure"; - api_version = "2025-04-01-preview"; - api_key = "na"; - }; - } - { - model_name = "GPT-4.1-mini"; - litellm_params = { - model = "azure/gpt-4.1-mini-2025-04-14"; - api_base = "http://100.64.0.8:9010/azure"; - api_version = "2025-04-01-preview"; - api_key = "na"; - }; - } - { - model_name = "GPT-4o"; - litellm_params = { - model = "azure/gpt-4o-2024-05-13"; - api_base = "http://100.64.0.8:9010/azure"; - api_version = "2025-04-01-preview"; - api_key = "na"; - }; - } - # { - # model_name = "dall-e-3-3.0"; - # litellm_params = { - # model = "azure/dall-e-3-3.0"; - # api_base = "http://100.64.0.8:9010/azure"; - # api_version = "2025-04-01-preview"; - # api_key = "na"; - # }; - # } - - # Copilot - { - model_name = "copilot-claude-sonnet-4"; - litellm_params = { - model = "github_copilot/claude-sonnet-4"; - extra_headers = { - "editor-version" = "vscode/1.85.1"; - "Copilot-Integration-Id" = "vscode-chat"; - "user-agent" = "GithubCopilot/1.155.0"; - "editor-plugin-version" = "copilot/1.155.0"; - }; - }; - } - { - model_name = "copilot-google-gemini-2.5-pro"; - litellm_params = { - model = "github_copilot/gemini-2.5-pro"; - extra_headers = { - "editor-version" = "vscode/1.85.1"; - "Copilot-Integration-Id" = "vscode-chat"; - "user-agent" = "GithubCopilot/1.155.0"; - "editor-plugin-version" = "copilot/1.155.0"; - }; - }; - } - # { - # model_name = "copilot-google-gemini-2.0-flash"; - # litellm_params = { - # model = "github_copilot/gemini-2.0-flash"; - # extra_headers = { - # "editor-version" = "vscode/1.85.1"; - # "Copilot-Integration-Id" = "vscode-chat"; - # "user-agent" = "GithubCopilot/1.155.0"; - # "editor-plugin-version" = "copilot/1.155.0"; - # }; - # }; - # } - ]; - }; - }; }; } diff --git a/hosts/h001/mods/trilium.nix b/hosts/h001/mods/trilium.nix index 94f600c..63db1f4 100644 --- a/hosts/h001/mods/trilium.nix +++ b/hosts/h001/mods/trilium.nix @@ -1,12 +1,22 @@ { - upkgs, + inputs, ... }: +let + declaration = "services/web-apps/trilium.nix"; + nixpkgs = inputs.open-webui-nixpkgs; + pkgs = import nixpkgs { + system = "x86_64-linux"; + config.allowUnfree = true; + }; +in { + disabledModules = [ declaration ]; + imports = [ "${nixpkgs}/nixos/modules/${declaration}" ]; config = { services.trilium-server = { enable = true; - package = upkgs.trilium-server; + package = pkgs.trilium-server; port = 9111; host = "127.0.0.1"; dataDir = "/var/lib/trilium";