feat: add custom tools config (#1461)
* chore: add string literal types for tool params, and returns * feat: add custom tools config
This commit is contained in:
@@ -17,6 +17,7 @@ local Utils = require("avante.utils")
|
|||||||
---@class avante.CoreConfig: avante.Config
|
---@class avante.CoreConfig: avante.Config
|
||||||
local M = {}
|
local M = {}
|
||||||
---@class avante.Config
|
---@class avante.Config
|
||||||
|
---@field custom_tools AvanteLLMToolPublic[]
|
||||||
M._defaults = {
|
M._defaults = {
|
||||||
debug = false,
|
debug = false,
|
||||||
---@alias Provider "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
---@alias Provider "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
||||||
@@ -409,6 +410,8 @@ M._defaults = {
|
|||||||
throttle = 600,
|
throttle = 600,
|
||||||
},
|
},
|
||||||
disabled_tools = {}, ---@type string[]
|
disabled_tools = {}, ---@type string[]
|
||||||
|
---@type AvanteLLMToolPublic[]
|
||||||
|
custom_tools = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
---@type avante.Config
|
---@type avante.Config
|
||||||
|
|||||||
@@ -573,8 +573,10 @@ end
|
|||||||
|
|
||||||
---@return AvanteLLMTool[]
|
---@return AvanteLLMTool[]
|
||||||
function M.get_tools()
|
function M.get_tools()
|
||||||
|
---@type AvanteLLMTool[]
|
||||||
|
local unfiltered_tools = vim.list_extend(vim.list_extend({}, M._tools), Config.custom_tools)
|
||||||
return vim
|
return vim
|
||||||
.iter(M._tools)
|
.iter(unfiltered_tools)
|
||||||
:filter(function(tool) ---@param tool AvanteLLMTool
|
:filter(function(tool) ---@param tool AvanteLLMTool
|
||||||
-- Always disable tools that are explicitly disabled
|
-- Always disable tools that are explicitly disabled
|
||||||
if vim.tbl_contains(Config.disabled_tools, tool.name) then return false end
|
if vim.tbl_contains(Config.disabled_tools, tool.name) then return false end
|
||||||
|
|||||||
@@ -328,18 +328,21 @@ vim.g.avante_login = vim.g.avante_login
|
|||||||
---@field returns AvanteLLMToolReturn[]
|
---@field returns AvanteLLMToolReturn[]
|
||||||
---@field enabled? fun(): boolean
|
---@field enabled? fun(): boolean
|
||||||
|
|
||||||
|
---@class AvanteLLMToolPublic : AvanteLLMTool
|
||||||
|
---@field func AvanteLLMToolFunc
|
||||||
|
|
||||||
---@class AvanteLLMToolParam
|
---@class AvanteLLMToolParam
|
||||||
---@field type string
|
---@field type 'table'
|
||||||
---@field fields AvanteLLMToolParamField[]
|
---@field fields AvanteLLMToolParamField[]
|
||||||
|
|
||||||
---@class AvanteLLMToolParamField
|
---@class AvanteLLMToolParamField
|
||||||
---@field name string
|
---@field name string
|
||||||
---@field description string
|
---@field description string
|
||||||
---@field type string
|
---@field type 'string' | 'integer'
|
||||||
---@field optional? boolean
|
---@field optional? boolean
|
||||||
|
|
||||||
---@class AvanteLLMToolReturn
|
---@class AvanteLLMToolReturn
|
||||||
---@field name string
|
---@field name string
|
||||||
---@field description string
|
---@field description string
|
||||||
---@field type string
|
---@field type 'string' | 'string[]' | 'boolean'
|
||||||
---@field optional? boolean
|
---@field optional? boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user