fix: bedrock (#1524)

* fix: bedrock

* fix: bad variable name

* fix: missing metatable
This commit is contained in:
yetone
2025-03-08 02:17:28 +08:00
committed by GitHub
parent 4d983532a1
commit d75094b815
8 changed files with 46 additions and 34 deletions

View File

@@ -198,26 +198,25 @@ M = setmetatable(M, {
---@param t avante.Providers
---@param k ProviderName
__index = function(t, k)
---@type AvanteProviderFunctor | AvanteBedrockProviderFunctor
local Opts = M.get_config(k)
local provider_config = M.get_config(k)
---@diagnostic disable: undefined-field,no-unknown,inject-field
if Config.vendors[k] ~= nil then
if Opts.parse_response_data ~= nil then
if provider_config.parse_response_data ~= nil then
Utils.error("parse_response_data is not supported for avante.nvim vendors")
end
if Opts.__inherited_from ~= nil then
local BaseOpts = M.get_config(Opts.__inherited_from)
local ok, module = pcall(require, "avante.providers." .. Opts.__inherited_from)
if not ok then error("Failed to load provider: " .. Opts.__inherited_from) end
t[k] = vim.tbl_deep_extend("keep", Opts, BaseOpts, module)
if provider_config.__inherited_from ~= nil then
local base_provider_config = M.get_config(provider_config.__inherited_from)
local ok, module = pcall(require, "avante.providers." .. provider_config.__inherited_from)
if not ok then error("Failed to load provider: " .. provider_config.__inherited_from) end
t[k] = Utils.deep_extend_with_metatable("keep", provider_config, base_provider_config, module)
else
t[k] = Opts
t[k] = provider_config
end
else
local ok, module = pcall(require, "avante.providers." .. k)
if not ok then error("Failed to load provider: " .. k) end
t[k] = vim.tbl_deep_extend("keep", Opts, module)
t[k] = Utils.deep_extend_with_metatable("keep", provider_config, module)
end
t[k].parse_api_key = function() return E.parse_envvar(t[k]) end
@@ -310,10 +309,9 @@ end
---@private
---@param provider_name ProviderName
---@return AvanteProviderFunctor | AvanteBedrockProviderFunctor
function M.get_config(provider_name)
provider_name = provider_name or Config.provider
local cur = Config.get_provider(provider_name)
local cur = Config.get_provider_config(provider_name)
return type(cur) == "function" and cur() or cur
end