return { "olimorris/codecompanion.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", "j-hui/fidget.nvim", }, opts = { adapters = { copilot = function() return require("codecompanion.adapters").extend("copilot", { schema = { name = "copilot", model = { default = "claude-3.5-sonnet", -- default = "o3-mini-2025-01-31", choices = { ["o3-mini-2025-01-31"] = { opts = { can_reason = true } }, ["o1-2024-12-17"] = { opts = { can_reason = true } }, ["o1-mini-2024-09-12"] = { opts = { can_reason = true } }, "claude-3.5-sonnet", "gpt-4o-2024-08-06", "gemini-2.0-flash-001", }, }, -- max_tokens = { -- default = 65536, -- }, }, }) end, }, strategies = { chat = { adapter = "copilot", roles = { llm = " Assistant", user = " User", }, slash_commands = { ["file"] = { opts = { provider = "telescope", }, }, ["symbols"] = { opts = { provider = "telescope", }, }, ["buffer"] = { opts = { provider = "telescope", }, }, ["terminal"] = { opts = { provider = "telescope", }, }, }, }, inline = { adapter = "copilot", }, }, display = { action_palette = { provider = "telescope", width = 75, heigth = 45, }, chat = { layout = "vertical", border = "single", intro_message = "Welcome to CodeCompanion ✨! Press ? for options", show_header_separator = false, -- Show header separators in the chat buffer? Set this to false if you're using an external markdown formatting plugin separator = "─", -- The separator between the different messages in the chat buffer show_references = true, -- Show references (from slash commands and variables) in the chat buffer? show_settings = false, -- Show LLM settings at the top of the chat buffer? show_token_count = true, -- Show the token count for each response? start_in_insert_mode = false, -- Open the chat buffer in insert mode? }, diff = { enabled = true, provider = "mini_diff", }, }, opts = { -- log_level = "DEBUG", log_level = "TRACE", }, }, init = function() require("plugins.codecompanion.fidget-spinner"):init() end, }