{ config, lib, pkgs, ... }: let inherit (lib) mkIf; cfg = config.my.ai; in { config = mkIf cfg.enable { home-manager.users.moritz.programs.nixvim = { extraPlugins = with pkgs.vimPlugins; [ nui-nvim render-markdown-nvim avante-nvim ]; extraConfigLuaPost = '' require("render-markdown").setup({ file_types = {"markdown", "Avante"} }) require("avante_lib").load() require("avante").setup({ provider = "openai", auto_suggestions_provider = "openai-cheap", behaviour = { auto_suggestions = false, }, openai = { model = "gpt-4o", api_key_name = "cmd:cat /run/agenix/openai", }, vendors = { ---@type AvanteProvider ["openai-cheap"] = { model = "gpt-4o-mini", api_key_name = "cmd:cat /run/agenix/openai", endpoint = "https://api.openai.com/v1", parse_curl_args = function(opts, code_opts) return require("avante.providers").openai.parse_curl_args(opts, code_opts) end, parse_response_data = function(data_stream, event_state, opts) return require("avante.providers").openai.parse_response(data_stream, event_state, opts) end }, }, }) ''; plugins.dressing.enable = true; }; age.secrets = { "openai".file = ../../../../secrets/openai.age; "openai".owner = "moritz"; anthropic.file = ../../../../secrets/anthropic.age; anthropic.owner = "moritz"; }; }; }