130 lines
3.6 KiB
Lua
130 lines
3.6 KiB
Lua
return {
|
|
"olimorris/codecompanion.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-treesitter/nvim-treesitter",
|
|
},
|
|
|
|
--{{{ Options
|
|
opts = {
|
|
--- {{{ Display
|
|
display = {
|
|
chat = {
|
|
window = {
|
|
layout = "vertical",
|
|
width = 0.35,
|
|
height = 0.35,
|
|
},
|
|
keymaps = {
|
|
close = {
|
|
modes = {
|
|
n = "q", -- Bind "q" in normal mode to close the chat
|
|
},
|
|
index = 1,
|
|
callback = "keymaps.close",
|
|
description = "Close Chat",
|
|
},
|
|
}
|
|
},
|
|
},
|
|
-- }}}
|
|
--
|
|
-- {{{ INTERACTIONS
|
|
interactions = {
|
|
chat = {
|
|
adapter = "ollama_coder", -- Removed the curly braces
|
|
},
|
|
inline = {
|
|
adapter = "ollama_coder", -- Removed the curly braces
|
|
},
|
|
background = {
|
|
adapter = "ollama_bg", -- Pointed this to the new extended adapter string
|
|
}
|
|
},
|
|
-- }}}
|
|
--
|
|
-- {{{ Adapters
|
|
adapters = {
|
|
http = {
|
|
gemini_pro = function()
|
|
return require("codecompanion.adapters").extend("gemini", {
|
|
name = "gemini_pro",
|
|
schema = {
|
|
model = {
|
|
default = "gemini-3.5-flash",
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
gemini_flash = function()
|
|
return require("codecompanion.adapters").extend("gemini", {
|
|
name = "gemini_flash",
|
|
schema = {
|
|
model = {
|
|
default = "gemini-2.0-flash",
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
-- local ollama coding model
|
|
ollama_coder = function()
|
|
return require("codecompanion.adapters").extend("ollama", {
|
|
name = "ollama_bg",
|
|
schema = {
|
|
model = {
|
|
default = "qwen2.5-coder:7b",
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
-- Added an extended Ollama adapter to fix your background task
|
|
ollama_bg = function()
|
|
return require("codecompanion.adapters").extend("ollama", {
|
|
name = "ollama_bg",
|
|
schema = {
|
|
model = {
|
|
default = "qwen3.5:4b",
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
},
|
|
-- }}}
|
|
--
|
|
-- {{{ Library
|
|
prompt_library = {
|
|
["Local Executor"] = {
|
|
strategy = "chat",
|
|
description = "Executes implementation diffs locally and writes TDD test cases.",
|
|
opts = {
|
|
adapter = "ollama_coder", -- Force it to use your local hardware
|
|
is_default = false,
|
|
is_slash_cmd = false,
|
|
},
|
|
prompts = {
|
|
{
|
|
role = "system",
|
|
content = [[You are the Last Mile Executor.
|
|
You run in a stateless context. I will provide you with a unified diff and a testing plan.
|
|
Your strict execution order is:
|
|
1. Output the test case file modifications first (SDET-first).
|
|
2. Output the production implementation code modifications.
|
|
|
|
Do not write markdown headers (H1/H2). Use code blocks with the language ID.
|
|
Precede every code block with a line comment specifying the exact 'filepath:'.
|
|
Do not use bash syntax; adhere strictly to POSIX sh if writing shell automation.
|
|
Do not execute terminal commands directly. Output the code blocks for manual unstaged review.]],
|
|
},
|
|
{
|
|
role = "user",
|
|
content = "I am ready to provide the Planner's diff. Await my input.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
-- }}}
|
|
}
|
|
--}}}
|
|
}
|