diff --git a/modules/capabilities/ai.nix b/modules/capabilities/ai.nix index e42a611..0f83440 100644 --- a/modules/capabilities/ai.nix +++ b/modules/capabilities/ai.nix @@ -3,22 +3,54 @@ let hmModules = config.flake.modules.homeManager; in { - flake.modules.nixos.ai = { - home-manager.sharedModules = [ hmModules.ai ]; + flake.modules.nixos.ai = + { pkgs, ... }: + { + home-manager.sharedModules = [ hmModules.ai ]; - nixpkgs.overlays = [ inputs.llm-agents.overlays.default ]; + nixpkgs.overlays = [ inputs.llm-agents.overlays.default ]; - nix.settings = { - extra-substituters = [ "https://cache.numtide.com" ]; - extra-trusted-public-keys = [ - "niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g=" - ]; + nix.settings = { + extra-substituters = [ "https://cache.numtide.com" ]; + extra-trusted-public-keys = [ + "niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g=" + ]; + }; + + services.ollama = { + enable = true; + package = pkgs.ollama-vulkan; + loadModels = [ "nomic-embed-text" ]; + }; }; - }; flake.modules.homeManager.ai = { pkgs, ... }: { + services.podman = { + volumes = { + grounded-docs-config = { }; + grounded-docs-data = { }; + }; + + containers.grounded-docs = { + image = "ghcr.io/arabold/docs-mcp-server:2.4.0"; + network = "host"; + volumes = [ + "grounded-docs-config.volume:/config" + "grounded-docs-data.volume:/data" + ]; + environment = { + DOCS_MCP_APP_TELEMETRY_ENABLED = "false"; + DOCS_MCP_EMBEDDING_MODEL = "openai:nomic-embed-text"; + DOCS_MCP_EMBEDDINGS_VECTOR_DIMENSION = "768"; + OPENAI_API_BASE = "http://127.0.0.1:11434/v1"; + OPENAI_API_KEY = "ollama"; + }; + exec = "--protocol http --host 127.0.0.1 --port 6280"; + }; + }; + programs.mcp = { enable = true; servers.nixos = { @@ -29,6 +61,7 @@ in home.packages = [ pkgs.llm-agents.codex + pkgs.ctx7 ]; }; } diff --git a/modules/capabilities/dev-tools.nix b/modules/capabilities/dev-tools.nix index 02c0a4a..7c136a0 100644 --- a/modules/capabilities/dev-tools.nix +++ b/modules/capabilities/dev-tools.nix @@ -12,7 +12,6 @@ resterm inputs.devenv.packages.${pkgs.stdenv.hostPlatform.system}.default kubectl - ctx7 mongodb-compass ];