return { { -- NOTE: Requires manual auth with ':Copilot auth' or 'GH_COPILOT_TOKEN' set as envvar "zbirenbaum/copilot.lua", cmd = "Copilot", event = "InsertEnter", opts = { panel = { layout = { position = "bottom" } }, suggestion = { keymap = { accept = "" } }, }, keys = { { "ap", function() -- FIXME: If opening before lazy-loaded, errors require("copilot.panel").open({}) require("copilot.panel").refresh() end, desc = "Refresh Copilot Panel", silent = true, mode = { "n" }, }, }, }, -- TODO: Add completion w blink, see https://codecompanion.olimorris.dev/installation.html { "olimorris/codecompanion.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", "zbirenbaum/copilot.lua", }, init = function(_) if require("core.util").is_available("which-key") then require("which-key").add({ "a", group = "codecompanion" }) end end, opts = { strategies = { chat = { adapter = "groq" }, inline = { adapter = "groq" }, }, adapters = { groq = function() return require("codecompanion.adapters").extend("openai", { env = { api_key = "GROQ_API_KEY", }, name = "Groq", url = "https://api.groq.com/openai/v1/chat/completions", schema = { model = { default = "llama-3.1-8b-instant", choices = { "llama-3.3-70b-versatile", "meta-llama/llama-4-maverick-17b-128e-instruct", "mistral-saba-24b", }, }, }, max_tokens = { default = 4096, }, temperature = { default = 1, }, }) end, }, }, keys = { { "aa", "CodeCompanionActions", desc = "Actions", silent = true, mode = { "n", "v" } }, { "ac", "CodeCompanionChat Toggle", desc = "Toggle chat", silent = true }, { "ac", "CodeCompanionChat Add", desc = "Add to chat", silent = true, mode = "v" }, }, cmd = { "CodeCompanionActions", "CodeCompanionChat", "CodeCompanion", "CodeCompanionCmd" }, }, }