From e14ffd60a4644332503516cb589c4bc33508c000 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Tue, 21 Jan 2025 16:11:20 -0600 Subject: [PATCH] home/suites/development: add ai tokens --- modules/home/suites/development/default.nix | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/modules/home/suites/development/default.nix b/modules/home/suites/development/default.nix index df520a421..03d5f5080 100644 --- a/modules/home/suites/development/default.nix +++ b/modules/home/suites/development/default.nix @@ -2,6 +2,7 @@ config, inputs, lib, + osConfig, pkgs, namespace, ... @@ -11,6 +12,23 @@ let inherit (lib.${namespace}) mkBoolOpt enabled; inherit (inputs) snowfall-flake; + tokenExports = + lib.optionalString osConfig.${namespace}.security.sops.enable # Bash + '' + if [ -f ${config.sops.secrets.ANTHROPIC_API_KEY.path} ]; then + ANTHROPIC_API_KEY="$(cat ${config.sops.secrets.ANTHROPIC_API_KEY.path})" + export ANTHROPIC_API_KEY + fi + if [ -f ${config.sops.secrets.AZURE_OPENAI_API_KEY.path} ]; then + AZURE_OPENAI_API_KEY="$(cat ${config.sops.secrets.AZURE_OPENAI_API_KEY.path})" + export AZURE_OPENAI_API_KEY + fi + if [ -f ${config.sops.secrets.OPENAI_KEY.path} ]; then + OPENAI_KEY="$(cat ${config.sops.secrets.OPENAI_KEY.path})" + export OPENAI_KEY + fi + ''; + cfg = config.${namespace}.suites.development; in { @@ -23,6 +41,7 @@ in kubernetesEnable = mkBoolOpt false "Whether or not to enable kubernetes development configuration."; nixEnable = mkBoolOpt false "Whether or not to enable nix development configuration."; sqlEnable = mkBoolOpt false "Whether or not to enable sql development configuration."; + aiEnable = mkBoolOpt true "Whether or not to enable ai development configuration."; }; config = mkIf cfg.enable { @@ -81,6 +100,12 @@ in }; }; + programs = { + bash.initExtra = tokenExports; + fish.shellInit = tokenExports; + zsh.initExtra = tokenExports; + }; + khanelinix = { programs = { graphical = { @@ -110,5 +135,20 @@ in }; }; }; + + sops.secrets = lib.mkIf osConfig.${namespace}.security.sops.enable { + ANTHROPIC_API_KEY = { + sopsFile = lib.snowfall.fs.get-file "secrets/CORE/default.yaml"; + path = "${config.home.homeDirectory}/.ANTHROPIC_API_KEY"; + }; + AZURE_OPENAI_API_KEY = { + sopsFile = lib.snowfall.fs.get-file "secrets/CORE/default.yaml"; + path = "${config.home.homeDirectory}/.AZURE_OPENAI_API_KEY"; + }; + OPENAI_KEY = { + sopsFile = lib.snowfall.fs.get-file "secrets/CORE/default.yaml"; + path = "${config.home.homeDirectory}/.OPENAI_KEY"; + }; + }; }; }