diff --git a/lazy-lock.json b/lazy-lock.json index e3e61b0..15db347 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -28,7 +28,7 @@ "nvim-ufo": { "branch": "main", "commit": "72d54c31079d38d8dfc5456131b1d0fb5c0264b0" }, "nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" }, "oil.nvim": { "branch": "master", "commit": "81b8a91735ad5cd24a6b3137f14a89f19176364f" }, - "parrot.nvim": { "branch": "main", "commit": "dcae923c7070431c8cb628b19594ab640168684c" }, + "parrot.nvim": { "branch": "main", "commit": "5d7e72bdc3efe2638e1bd94ff55028ecc40edd7a" }, "plenary": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, diff --git a/lua/crentist/lazy/parrot.lua b/lua/crentist/lazy/parrot.lua index dfeb3a4..d9ebcf7 100644 --- a/lua/crentist/lazy/parrot.lua +++ b/lua/crentist/lazy/parrot.lua @@ -1,45 +1,50 @@ return { 'frankroeder/parrot.nvim', - version = '2.3.0', + version = '2.5.1', dependencies = { 'ibhagwan/fzf-lua', 'nvim-lua/plenary.nvim' }, - opts = { - providers = { - anthropic = { - name = 'anthropic', - endpoint = 'https://api.anthropic.com/v1/messages', - model_endpoint = 'https://api.anthropic.com/v1/models', - api_key = { '/usr/local/bin/sops', '--config', '/dev/null', '-d', vim.fn.expand('$HOME') .. '/.claude-api' }, - headers = function(self) - return { - ['Content-Type'] = 'application/json', - ['x-api-key'] = self.api_key, - ['anthropic-version'] = '2023-06-01', - } - end, - params = { - chat = { max_tokens = 4096 }, - command = { max_tokens = 4096 }, - }, - models = { - 'claude-opus-4-6', - 'claude-sonet-4-5', - 'claude-haiku-4-5', - }, - preprocess_payload = function(payload) - for _, message in ipairs(payload.messages) do - message.content = message.content:gsub('^%s*(.-)%s*$', "%1") - end - if payload.messages[1] and payload.messages[1].role == 'system' then - -- remove the first message that serves as the system prompt as anthropic - -- expects the system prompt to be part of the API call body and not the messages - payload.system = payload.messages[1].content - table.remove(payload.messages, 1) - end - return payload - end, - } - }, - user_input_ui = 'buffer', - } + config = function() + local parrot_opts = { + providers = { + anthropic = { + name = 'anthropic', + endpoint = 'https://api.anthropic.com/v1/messages', + model_endpoint = 'https://api.anthropic.com/v1/models', + api_key = { '/usr/local/bin/sops', '--config', '/dev/null', '-d', vim.fn.expand('$HOME') .. '/.claude-api' }, + headers = function(self) + return { + ['Content-Type'] = 'application/json', + ['x-api-key'] = self.api_key, + ['anthropic-version'] = '2023-06-01', + } + end, + params = { + chat = { max_tokens = 4096 }, + command = { max_tokens = 4096 }, + }, + models = { + 'claude-opus-4-6', + 'claude-sonet-4-5', + 'claude-haiku-4-5', + }, + preprocess_payload = function(payload) + for _, message in ipairs(payload.messages) do + message.content = message.content:gsub('^%s*(.-)%s*$', "%1") + end + if payload.messages[1] and payload.messages[1].role == 'system' then + -- remove the first message that serves as the system prompt as anthropic + -- expects the system prompt to be part of the API call body and not the messages + payload.system = payload.messages[1].content + table.remove(payload.messages, 1) + end + return payload + end, + } + }, + user_input_ui = 'buffer', + } + + local parrot = require('parrot') + parrot.setup(parrot_opts) + end }