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
|
||||
local M = {}
|
||||
---@class avante.Config
|
||||
---@field custom_tools AvanteLLMToolPublic[]
|
||||
M._defaults = {
|
||||
debug = false,
|
||||
---@alias Provider "claude" | "openai" | "azure" | "gemini" | "vertex" | "cohere" | "copilot" | string
|
||||
@@ -409,6 +410,8 @@ M._defaults = {
|
||||
throttle = 600,
|
||||
},
|
||||
disabled_tools = {}, ---@type string[]
|
||||
---@type AvanteLLMToolPublic[]
|
||||
custom_tools = {},
|
||||
}
|
||||
|
||||
---@type avante.Config
|
||||
|
||||
@@ -573,8 +573,10 @@ end
|
||||
|
||||
---@return AvanteLLMTool[]
|
||||
function M.get_tools()
|
||||
---@type AvanteLLMTool[]
|
||||
local unfiltered_tools = vim.list_extend(vim.list_extend({}, M._tools), Config.custom_tools)
|
||||
return vim
|
||||
.iter(M._tools)
|
||||
.iter(unfiltered_tools)
|
||||
:filter(function(tool) ---@param tool AvanteLLMTool
|
||||
-- Always disable tools that are explicitly disabled
|
||||
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 enabled? fun(): boolean
|
||||
|
||||
---@class AvanteLLMToolPublic : AvanteLLMTool
|
||||
---@field func AvanteLLMToolFunc
|
||||
|
||||
---@class AvanteLLMToolParam
|
||||
---@field type string
|
||||
---@field type 'table'
|
||||
---@field fields AvanteLLMToolParamField[]
|
||||
|
||||
---@class AvanteLLMToolParamField
|
||||
---@field name string
|
||||
---@field description string
|
||||
---@field type string
|
||||
---@field type 'string' | 'integer'
|
||||
---@field optional? boolean
|
||||
|
||||
---@class AvanteLLMToolReturn
|
||||
---@field name string
|
||||
---@field description string
|
||||
---@field type string
|
||||
---@field type 'string' | 'string[]' | 'boolean'
|
||||
---@field optional? boolean
|
||||
|
||||
Reference in New Issue
Block a user