return { 'olimorris/codecompanion.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-treesitter/nvim-treesitter', 'saghen/blink.cmp', }, cmd = { 'CodeCompanion', 'CodeCompanionChat', 'CodeCompanionActions' }, keys = { { 'a', 'CodeCompanionActions', mode = { 'n', 'v' }, desc = 'CodeCompanion Actions' }, { 'ac', 'CodeCompanionChat Toggle', mode = { 'n', 'v' }, desc = 'CodeCompanion Chat' }, { 'ga', 'CodeCompanionChat Add', mode = 'v', desc = 'Add to CodeCompanion Chat' }, }, opts = { log_level = 'DEBUG', adapters = { local_model = function() return require('codecompanion.adapters').extend('openai_compatible', { env = { url = 'http://localhost:8000/api/v1/chat/completions', api_key = 'dummy-key', }, schema = { model = { default = '' }, temperature = { default = 0.3 }, }, }) end, mistral = function() return require('codecompanion.adapters').extend('mistral', { url = 'https://codestral.mistral.ai/v1/chat/completions', env = { api_key = 'cmd:echo $MISTRAL_API_KEY', }, schema = { model = { default = 'codestral-latest' }, }, }) end, ollama = function() return require('codecompanion.adapters').extend('ollama', { schema = { model = { default = 'qwen2.5-coder:latest' }, }, }) end, }, strategies = { chat = { adapter = 'anthropic' }, inline = { adapter = 'anthropic' }, }, }, }