From 66c3b6665cbd39db25f05b2da45f8c30aba9b462 Mon Sep 17 00:00:00 2001 From: yetone Date: Wed, 2 Jul 2025 16:58:15 +0800 Subject: [PATCH] fix: add missing session-ctx (#2393) --- .../llm_tools/delete_tool_use_messages.lua | 2 +- lua/avante/llm_tools/grep.lua | 2 +- lua/avante/llm_tools/init.lua | 49 +++++++++++-------- lua/avante/llm_tools/ls.lua | 2 +- 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/lua/avante/llm_tools/delete_tool_use_messages.lua b/lua/avante/llm_tools/delete_tool_use_messages.lua index 4fdf4e3..e443150 100644 --- a/lua/avante/llm_tools/delete_tool_use_messages.lua +++ b/lua/avante/llm_tools/delete_tool_use_messages.lua @@ -40,7 +40,7 @@ M.returns = { } ---@type AvanteLLMToolFunc<{ tool_use_id: string }> -function M.func(opts) +function M.func(opts, on_log, on_complete, session_ctx) local sidebar = require("avante").get() if not sidebar then return false, "Avante sidebar not found" end local history_messages = Utils.get_history_messages(sidebar.chat_history) diff --git a/lua/avante/llm_tools/grep.lua b/lua/avante/llm_tools/grep.lua index c247c5a..2442454 100644 --- a/lua/avante/llm_tools/grep.lua +++ b/lua/avante/llm_tools/grep.lua @@ -69,7 +69,7 @@ M.returns = { } ---@type AvanteLLMToolFunc<{ path: string, query: string, case_sensitive?: boolean, include_pattern?: string, exclude_pattern?: string }> -function M.func(opts, on_log) +function M.func(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.path) if not Helpers.has_permission_to_access(abs_path) then return "", "No permission to access path: " .. abs_path end if not Path:new(abs_path):exists() then return "", "No such file or directory: " .. abs_path end diff --git a/lua/avante/llm_tools/init.lua b/lua/avante/llm_tools/init.lua index 628697c..4f47e81 100644 --- a/lua/avante/llm_tools/init.lua +++ b/lua/avante/llm_tools/init.lua @@ -8,7 +8,7 @@ local Helpers = require("avante.llm_tools.helpers") local M = {} ---@type AvanteLLMToolFunc<{ path: string }> -function M.read_file_toplevel_symbols(opts, on_log) +function M.read_file_toplevel_symbols(opts, on_log, on_complete, session_ctx) local RepoMap = require("avante.repo_map") local abs_path = Helpers.get_abs_path(opts.path) if not Helpers.has_permission_to_access(abs_path) then return "", "No permission to access path: " .. abs_path end @@ -62,7 +62,7 @@ function M.str_replace_based_edit_tool(opts, on_log, on_complete, session_ctx) end ---@type AvanteLLMToolFunc<{ abs_path: string }> -function M.read_global_file(opts, on_log) +function M.read_global_file(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.abs_path) if Helpers.is_ignored(abs_path) then return "", "This file is ignored: " .. abs_path end if on_log then on_log("path: " .. abs_path) end @@ -74,7 +74,7 @@ function M.read_global_file(opts, on_log) end ---@type AvanteLLMToolFunc<{ abs_path: string, content: string }> -function M.write_global_file(opts, on_log, on_complete) +function M.write_global_file(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.abs_path) if Helpers.is_ignored(abs_path) then return false, "This file is ignored: " .. abs_path end if on_log then on_log("path: " .. abs_path) end @@ -93,11 +93,11 @@ function M.write_global_file(opts, on_log, on_complete) file:write(opts.content) file:close() on_complete(true, nil) - end) + end, nil, session_ctx, "write_global_file") end ---@type AvanteLLMToolFunc<{ source_path: string, destination_path: string }> -function M.move_path(opts, on_log, on_complete) +function M.move_path(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.source_path) if not Helpers.has_permission_to_access(abs_path) then return false, "No permission to access path: " .. abs_path end if not Path:new(abs_path):exists() then return false, "The source path not found: " .. abs_path end @@ -117,12 +117,15 @@ function M.move_path(opts, on_log, on_complete) end os.rename(abs_path, new_abs_path) on_complete(true, nil) - end + end, + nil, + session_ctx, + "move_path" ) end ---@type AvanteLLMToolFunc<{ source_path: string, destination_path: string }> -function M.copy_path(opts, on_log, on_complete) +function M.copy_path(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.source_path) if not Helpers.has_permission_to_access(abs_path) then return false, "No permission to access path: " .. abs_path end if not Path:new(abs_path):exists() then return false, "The source path not found: " .. abs_path end @@ -160,12 +163,15 @@ function M.copy_path(opts, on_log, on_complete) Path:new(new_abs_path):write(Path:new(abs_path):read(), "w") end on_complete(true, nil) - end + end, + nil, + session_ctx, + "copy_path" ) end ---@type AvanteLLMToolFunc<{ path: string }> -function M.delete_path(opts, on_log, on_complete) +function M.delete_path(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.path) if not Helpers.has_permission_to_access(abs_path) then return false, "No permission to access path: " .. abs_path end if not Path:new(abs_path):exists() then return false, "Path not found: " .. abs_path end @@ -178,11 +184,11 @@ function M.delete_path(opts, on_log, on_complete) if on_log then on_log("Deleting path: " .. abs_path) end os.remove(abs_path) on_complete(true, nil) - end) + end, nil, session_ctx, "delete_path") end ---@type AvanteLLMToolFunc<{ path: string }> -function M.create_dir(opts, on_log, on_complete) +function M.create_dir(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.path) if not Helpers.has_permission_to_access(abs_path) then return false, "No permission to access path: " .. abs_path end if Path:new(abs_path):exists() then return false, "Directory already exists: " .. abs_path end @@ -195,11 +201,11 @@ function M.create_dir(opts, on_log, on_complete) if on_log then on_log("Creating directory: " .. abs_path) end Path:new(abs_path):mkdir({ parents = true }) on_complete(true, nil) - end) + end, nil, session_ctx, "create_dir") end ---@type AvanteLLMToolFunc<{ query: string }> -function M.web_search(opts, on_log) +function M.web_search(opts, on_log, on_complete, session_ctx) local provider_type = Config.web_search_engine.provider local proxy = Config.web_search_engine.proxy if provider_type == nil then return nil, "Search engine provider is not set" end @@ -352,7 +358,7 @@ function M.web_search(opts, on_log) end ---@type AvanteLLMToolFunc<{ url: string }> -function M.fetch(opts, on_log) +function M.fetch(opts, on_log, on_complete, session_ctx) if on_log then on_log("url: " .. opts.url) end local Html2Md = require("avante.html2md") local res, err = Html2Md.fetch_md(opts.url) @@ -361,7 +367,7 @@ function M.fetch(opts, on_log) end ---@type AvanteLLMToolFunc<{ scope?: string }> -function M.git_diff(opts, on_log) +function M.git_diff(opts, on_log, on_complete, session_ctx) local git_cmd = vim.fn.exepath("git") if git_cmd == "" then return nil, "Git command not found" end local project_root = Utils.get_project_root() @@ -390,7 +396,7 @@ function M.git_diff(opts, on_log) end ---@type AvanteLLMToolFunc<{ message: string, scope?: string }> -function M.git_commit(opts, on_log, on_complete) +function M.git_commit(opts, on_log, on_complete, session_ctx) local git_cmd = vim.fn.exepath("git") if git_cmd == "" then return false, "Git command not found" end local project_root = Utils.get_project_root() @@ -484,11 +490,11 @@ function M.git_commit(opts, on_log, on_complete) end on_complete(true, nil) - end) + end, nil, session_ctx, "git_commit") end ---@type AvanteLLMToolFunc<{ query: string }> -function M.rag_search(opts, on_log, on_complete) +function M.rag_search(opts, on_log, on_complete, session_ctx) if not Config.rag_service.enabled then return nil, "Rag service is not enabled" end if not opts.query then return nil, "No query provided" end if on_log then on_log("query: " .. opts.query) end @@ -509,7 +515,7 @@ function M.rag_search(opts, on_log, on_complete) end ---@type AvanteLLMToolFunc<{ code: string, path: string, container_image?: string }> -function M.python(opts, on_log, on_complete) +function M.python(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.path) if not Helpers.has_permission_to_access(abs_path) then return nil, "No permission to access path: " .. abs_path end if not Path:new(abs_path):exists() then return nil, "Path not found: " .. abs_path end @@ -564,7 +570,10 @@ function M.python(opts, on_log, on_complete) on_complete(output, err) end) ) - end + end, + nil, + session_ctx, + "python" ) end diff --git a/lua/avante/llm_tools/ls.lua b/lua/avante/llm_tools/ls.lua index 8d6c6af..30b072e 100644 --- a/lua/avante/llm_tools/ls.lua +++ b/lua/avante/llm_tools/ls.lua @@ -46,7 +46,7 @@ M.returns = { } ---@type AvanteLLMToolFunc<{ path: string, max_depth?: integer }> -function M.func(opts, on_log) +function M.func(opts, on_log, on_complete, session_ctx) local abs_path = Helpers.get_abs_path(opts.path) if not Helpers.has_permission_to_access(abs_path) then return "", "No permission to access path: " .. abs_path end if on_log then on_log("path: " .. abs_path) end