From f9371908d6e73735e48e9f709ae9d06f420198f5 Mon Sep 17 00:00:00 2001 From: atagen Date: Tue, 17 Sep 2024 10:19:33 +1000 Subject: [PATCH] local ollama for vscode --- flake.lock | 70 ++++++++++++++++----------------- home/icons/anythingllm.png | Bin 0 -> 16920 bytes home/modules/theming.nix | 10 ++--- home/programs/anything-llm.nix | 21 ++++++++-- home/programs/ollama.nix | 47 ++++++++++++++++++++++ home/util/local-webapp.nix | 5 ++- 6 files changed, 107 insertions(+), 46 deletions(-) create mode 100644 home/icons/anythingllm.png diff --git a/flake.lock b/flake.lock index 9674651..11d2d70 100644 --- a/flake.lock +++ b/flake.lock @@ -238,11 +238,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1725976743, - "narHash": "sha256-pLQQbiC9uO4lF58fAnlcDxlbsBB1XFWswsU1oZOIVqU=", + "lastModified": 1726394915, + "narHash": "sha256-guDSphIBbkUGI9LQDAls4PUDDJFl9URC0EAUKb+sjks=", "owner": "helix-editor", "repo": "helix", - "rev": "237cbe4bca46eed52efed39ed75eb44aaccbdde3", + "rev": "5ce77de0dc7106c6f1460d80a3c5a51eaea3108c", "type": "github" }, "original": { @@ -291,11 +291,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1725927421, - "narHash": "sha256-tiQ9OxiuTb/02xEU2ceo9MIxWBS5Rm/IAhv6QshH8K0=", - "rev": "cc183fdbc14ce105a5661d646983f791978b9d5c", + "lastModified": 1726411950, + "narHash": "sha256-OnPGWKN3mJCsbdt4zOCVSTWg8N9QX+VTCXDcYviStTk=", + "rev": "80202e3ca314c21547c48f3a23d3f629cd9ddb87", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/cc183fdbc14ce105a5661d646983f791978b9d5c.tar.gz?rev=cc183fdbc14ce105a5661d646983f791978b9d5c" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/80202e3ca314c21547c48f3a23d3f629cd9ddb87.tar.gz?rev=80202e3ca314c21547c48f3a23d3f629cd9ddb87" }, "original": { "type": "tarball", @@ -360,8 +360,8 @@ "utils": "utils" }, "locked": { - "lastModified": 1726012053, - "narHash": "sha256-wGfFI8ZD3+TisEW2cFUABbtWYpn0N71CpkiXuITOk88=", + "lastModified": 1726458116, + "narHash": "sha256-KKLTbh0abZXV9OzH5vV4xLiTDsj9cS35YKiIzBIQ3Hw=", "path": "/home/bolt/code/meat", "type": "path" }, @@ -393,11 +393,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1725765290, - "narHash": "sha256-hwX53i24KyWzp2nWpQsn8lfGQNCP0JoW/bvQmcR1DPY=", + "lastModified": 1726449931, + "narHash": "sha256-1AX7MyYzP7sNgZiGF8jwehCCI75y2kBGwACeryJs+yE=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "642275444c5a9defce57219c944b3179bf2adaa9", + "rev": "c1b0fa0bec5478185eae2fd3f39b9e906fc83995", "type": "github" }, "original": { @@ -438,15 +438,15 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1725635983, - "narHash": "sha256-haSfwdurfltqQ/7YEmDcmWLnWwvAgelIHnXsHG34P1k=", - "owner": "lilyinstarlight", + "lastModified": 1726334963, + "narHash": "sha256-L8ICz9iELkvQl/ufdSWy9lRm8DLNpKDFxoeHQfPu4E8=", + "owner": "Mic92", "repo": "nix-update", - "rev": "ed54a7546affb3f8c9c3e10a6fa6fdb21756ec8f", + "rev": "84d7535d076c5e06fba272738448c80698eb3d40", "type": "github" }, "original": { - "owner": "lilyinstarlight", + "owner": "Mic92", "repo": "nix-update", "type": "github" } @@ -481,11 +481,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1726010864, - "narHash": "sha256-bOn5vl87FYeTqR0ymYJxYHFrIdjTSeN3GtqlPlK+2os=", + "lastModified": 1726453173, + "narHash": "sha256-GnFxniWjQYqg9cAqHj7E+EEip1nZdvcUOH/StIod++c=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "f6c0035d0ab8a689d32128bb10e5c6b9fca78e9d", + "rev": "9907e5b7f5cbe92c97fd922b562dba691d3d8585", "type": "github" }, "original": { @@ -561,11 +561,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1725826545, - "narHash": "sha256-L64N1rpLlXdc94H+F6scnrbuEu+utC03cDDVvvJGOME=", + "lastModified": 1726320982, + "narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f4c846aee8e1e29062aa8514d5e0ab270f4ec2f9", + "rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49", "type": "github" }, "original": { @@ -593,11 +593,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1726062873, + "narHash": "sha256-IiA3jfbR7K/B5+9byVi9BZGWTD4VSbWe8VLpp9B/iYk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "4f807e8940284ad7925ebd0a0993d2a1791acb2f", "type": "github" }, "original": { @@ -641,11 +641,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1725634671, - "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "lastModified": 1726243404, + "narHash": "sha256-sjiGsMh+1cWXb53Tecsm4skyFNag33GPbVgCdfj3n9I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", + "rev": "345c263f2f53a3710abe117f28a5cb86d0ba4059", "type": "github" }, "original": { @@ -657,11 +657,11 @@ }, "nur": { "locked": { - "lastModified": 1726004797, - "narHash": "sha256-EjbaRc4eu8cnR4rF5y6EMWZG8mtJa9BQq4z0hsQMIZg=", + "lastModified": 1726524519, + "narHash": "sha256-dQ4uRthSynzI8nNYISYmoKMH2cKW/RgiePykb87jBXU=", "owner": "nix-community", "repo": "NUR", - "rev": "7992767e0d354cfedc418887d4c10aed4515c962", + "rev": "023b6b20cf5250d9ee0fd4713775dac9f696e407", "type": "github" }, "original": { @@ -753,11 +753,11 @@ ] }, "locked": { - "lastModified": 1725848835, - "narHash": "sha256-u4lCr+tOEWhsFiww5G04U5jUNzaQJi0/ZMIDGiLeT14=", + "lastModified": 1726382494, + "narHash": "sha256-T7W+ohiXe1IY0yf/PpS4wQItZ0SyRO+/v8kqNpMXlI4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "2ef910a6276a2f34513d18f2f826a8dea72c3b3f", + "rev": "ff13821613ffe5dbfeb4fe353b1f4bf291d831db", "type": "github" }, "original": { diff --git a/home/icons/anythingllm.png b/home/icons/anythingllm.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad2533d0190420e75f7846bdd4cdc97c1c042cc GIT binary patch literal 16920 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