diff --git a/lua/avante/path.lua b/lua/avante/path.lua index e93d726..5f5d3cb 100644 --- a/lua/avante/path.lua +++ b/lua/avante/path.lua @@ -6,6 +6,8 @@ local Scan = require("plenary.scandir") local Config = require("avante.config") ---@class avante.Path +---@field history_path Path +---@field cache_path Path local P = {} local history_file_cache = LRUCache:new(12) diff --git a/lua/avante/providers/bedrock.lua b/lua/avante/providers/bedrock.lua index ba4d737..ab38d8a 100644 --- a/lua/avante/providers/bedrock.lua +++ b/lua/avante/providers/bedrock.lua @@ -7,6 +7,13 @@ local M = {} M.api_key_name = "BEDROCK_KEYS" M.use_xml_format = true +setmetatable(M, { + __index = function(_, k) + local model_handler = M.load_model_handler() + return model_handler[k] + end, +}) + function M.load_model_handler() local provider_conf, _ = P.parse_config(P["bedrock"]) local bedrock_model = provider_conf.model @@ -18,6 +25,11 @@ function M.load_model_handler() error(error_msg) end +function M:parse_messages(prompt_opts) + local model_handler = M.load_model_handler() + return model_handler.parse_messages(self, prompt_opts) +end + function M:parse_response(ctx, data_stream, event_state, opts) local model_handler = M.load_model_handler() return model_handler.parse_response(self, ctx, data_stream, event_state, opts) diff --git a/lua/avante/types.lua b/lua/avante/types.lua index e5b4bf3..97724d8 100644 --- a/lua/avante/types.lua +++ b/lua/avante/types.lua @@ -272,14 +272,13 @@ vim.g.avante_login = vim.g.avante_login ---@field parse_stream_data? AvanteStreamParser ---@field on_error? fun(result: table): nil --- ----@alias AvanteBedrockPayloadBuilder fun(self: AvanteProviderFunctor, prompt_opts: AvantePromptOptions, body_opts: table): table +---@alias AvanteBedrockPayloadBuilder fun(self: AvanteBedrockModelHandler | AvanteBedrockProviderFunctor, prompt_opts: AvantePromptOptions, body_opts: table): table --- ---@class AvanteBedrockProviderFunctor: AvanteProviderFunctor ---@field load_model_handler fun(): AvanteBedrockModelHandler ---@field build_bedrock_payload? AvanteBedrockPayloadBuilder --- ---- ----@class AvanteBedrockModelHandler +---@class AvanteBedrockModelHandler : AvanteProviderFunctor ---@field role_map table<"user" | "assistant", string> ---@field parse_messages AvanteMessagesParser ---@field parse_response AvanteResponseParser @@ -377,10 +376,6 @@ vim.g.avante_login = vim.g.avante_login ---@class avante.ChatMemory ---@field content string ---@field last_summarized_timestamp string - ----@class avante.Path ----@field history_path Path ----@field cache_path Path --- ---@class avante.CurlOpts ---@field provider AvanteProviderFunctor