@@ -19,24 +19,50 @@ local CONSTANTS = {
1919--- @param adapter string ? The adapter to use for generation
2020--- @param model string ? The model of the adapter to use for generation
2121function Generator .setup (adapter , model )
22- _adapter = adapter or codecompanion_config .strategies .chat .adapter
23- _model = model or codecompanion_config .strategies .chat .model
24-
25- -- Validate adapter
26- if not codecompanion_adapter .resolve (_adapter ) then
27- error (" Invalid adapter specified: " .. tostring (_adapter ))
22+ -- Get the adapter configuration properly
23+ local chat_config = codecompanion_config .strategies .chat
24+
25+ -- Handle adapter as a table (with name and model) or string
26+ if type (chat_config .adapter ) == " table" then
27+ _adapter = adapter or chat_config .adapter .name
28+ _model = model or chat_config .adapter .model or chat_config .model
29+ else
30+ _adapter = adapter or chat_config .adapter
31+ _model = model or chat_config .model
2832 end
2933end
3034--- @param commit_history ? string[] Array of recent commit messages for context (optional )
3135function Generator .generate_commit_message (diff , lang , commit_history , callback )
32- -- Setup adapter
33- local adapter = codecompanion_adapter .resolve (_adapter )
36+ -- Setup adapter with proper resolution
37+ local adapter
38+ local success , result = pcall (function ()
39+ return codecompanion_adapter .resolve ({
40+ name = _adapter ,
41+ model = _model ,
42+ })
43+ end )
44+
45+ if not success then
46+ -- Fallback to simple resolve
47+ adapter = codecompanion_adapter .resolve (_adapter )
48+ else
49+ adapter = result
50+ end
51+
3452 if not adapter then
35- return callback (nil , " Failed to resolve adapter" )
53+ return callback (nil , " Failed to resolve adapter: " .. tostring ( _adapter ) )
3654 end
3755
56+ -- Configure adapter for non-streaming
57+ adapter .opts = adapter .opts or {}
3858 adapter .opts .stream = false
39- adapter = adapter :map_schema_to_params (codecompanion_schema .get_default (adapter , { model = _model }))
59+
60+ -- Map schema with model override if specified
61+ local schema_opts = {}
62+ if _model then
63+ schema_opts .model = _model
64+ end
65+ adapter = adapter :map_schema_to_params (codecompanion_schema .get_default (adapter , schema_opts ))
4066
4167 -- Create HTTP client
4268 local new_client = codecompanion_client .new ({
0 commit comments