From 7f48770e66684e9a7d4d5b9c47505a23e0167a6e Mon Sep 17 00:00:00 2001 From: yetone Date: Fri, 31 Oct 2025 20:41:12 +0800 Subject: [PATCH] fix(kimi-acp): kimi acp tool call update is missing the kind field (#2814) --- README.md | 8 ++++++++ lua/avante/config.lua | 6 +++++- lua/avante/libs/acp_client.lua | 12 ++++++------ lua/avante/llm.lua | 2 +- lua/avante/sidebar.lua | 3 ++- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d0ba0aa..369446a 100644 --- a/README.md +++ b/README.md @@ -1218,6 +1218,14 @@ To use ACP-compatible agents with Avante.nvim, you need to configure an ACP prov } ``` +#### Kimi CLI with ACP +```lua +{ + provider = "kimi-cli", + -- other configuration options... +} +``` + ### ACP Configuration ACP providers are configured in the `acp_providers` section of your configuration: diff --git a/lua/avante/config.lua b/lua/avante/config.lua index ad32f0c..aa43363 100644 --- a/lua/avante/config.lua +++ b/lua/avante/config.lua @@ -254,7 +254,7 @@ M._defaults = { }, ["claude-code"] = { command = "npx", - args = { "@zed-industries/claude-code-acp" }, + args = { "-y", "@zed-industries/claude-code-acp" }, env = { NODE_NO_WARNINGS = "1", ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY"), @@ -280,6 +280,10 @@ M._defaults = { command = "opencode", args = { "acp" }, }, + ["kimi-cli"] = { + command = "kimi", + args = { "--acp" }, + }, }, ---To add support for custom provider, follow the format below ---See https://github.com/yetone/avante.nvim/wiki#custom-providers for more details diff --git a/lua/avante/libs/acp_client.lua b/lua/avante/libs/acp_client.lua index 96cbe09..f842c5b 100644 --- a/lua/avante/libs/acp_client.lua +++ b/lua/avante/libs/acp_client.lua @@ -415,12 +415,12 @@ function ACPClient:_create_stdio_transport() -- Read stderr for debugging stderr:read_start(function(_, data) - if data then - -- Filter out common session recovery error messages to avoid user confusion - if not (data:match("Session not found") or data:match("session/prompt")) then - vim.schedule(function() vim.notify("ACP stderr: " .. data, vim.log.levels.DEBUG) end) - end - end + -- if data then + -- -- Filter out common session recovery error messages to avoid user confusion + -- if not (data:match("Session not found") or data:match("session/prompt")) then + -- vim.schedule(function() vim.notify("ACP stderr: " .. data, vim.log.levels.DEBUG) end) + -- end + -- end end) end diff --git a/lua/avante/llm.lua b/lua/avante/llm.lua index 0154040..34b6c49 100644 --- a/lua/avante/llm.lua +++ b/lua/avante/llm.lua @@ -957,7 +957,7 @@ function M._stream_acp(opts) local message = History.Message:new("assistant", { type = "tool_use", id = update.toolCallId, - name = update.kind, + name = update.kind or update.title, input = update.rawInput or {}, }, { uuid = update.toolCallId, diff --git a/lua/avante/sidebar.lua b/lua/avante/sidebar.lua index c38db0f..6d9d5b4 100644 --- a/lua/avante/sidebar.lua +++ b/lua/avante/sidebar.lua @@ -1653,7 +1653,8 @@ function Sidebar:toggle_code_window() end if self:get_layout() == "vertical" then - api.nvim_win_set_width(self.containers.result.winid, vim.o.columns) + api.nvim_win_set_width(self.code.winid, 0) + api.nvim_win_set_width(self.containers.result.winid, vim.o.columns - 1) else api.nvim_win_set_height(self.containers.result.winid, vim.o.lines) end