diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-26 20:19:41 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-26 20:19:41 +0300 |
| commit | 1731126b52e406a300270c8fc8ac1061a4422b27 (patch) | |
| tree | c74768df49994aa9676cbc69ebfb461ed0422e01 /internal/hexaiaction/prompts.go | |
| parent | 0583b360ceb606b8e58f12a17f588bd27feeb117 (diff) | |
Refactor surface config to support multi-provider arrays
Diffstat (limited to 'internal/hexaiaction/prompts.go')
| -rw-r--r-- | internal/hexaiaction/prompts.go | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/internal/hexaiaction/prompts.go b/internal/hexaiaction/prompts.go index 47dadbf..a113391 100644 --- a/internal/hexaiaction/prompts.go +++ b/internal/hexaiaction/prompts.go @@ -56,9 +56,9 @@ func defaultModelForProvider(cfg appconfig.App, provider string) string { } } -func selectActionTemperature(cfg appconfig.App, provider, model string) (float64, bool) { - if cfg.CodeActionTemperature != nil { - return *cfg.CodeActionTemperature, true +func selectActionTemperature(cfg appconfig.App, provider string, entry appconfig.SurfaceConfig, model string) (float64, bool) { + if entry.Temperature != nil { + return *entry.Temperature, true } if cfg.CodingTemperature != nil { temp := *cfg.CodingTemperature @@ -201,22 +201,25 @@ func reqOptsFrom(cfg appconfig.App) requestArgs { opts = append(opts, llm.WithMaxTokens(cfg.MaxTokens)) } provider := canonicalProvider(cfg.Provider) - if strings.TrimSpace(cfg.CodeActionProvider) != "" { - provider = canonicalProvider(cfg.CodeActionProvider) + entries := cfg.CodeActionConfigs + if len(entries) == 0 { + entries = []appconfig.SurfaceConfig{{Provider: cfg.Provider, Model: strings.TrimSpace(defaultModelForProvider(cfg, provider))}} } - override := strings.TrimSpace(cfg.CodeActionModel) - fallback := strings.TrimSpace(defaultModelForProvider(cfg, provider)) - effective := override - if effective == "" { - effective = fallback + primary := entries[0] + if strings.TrimSpace(primary.Provider) != "" { + provider = canonicalProvider(primary.Provider) } - if override != "" { - opts = append(opts, llm.WithModel(override)) + model := strings.TrimSpace(primary.Model) + if model == "" { + model = strings.TrimSpace(defaultModelForProvider(cfg, provider)) + } + if strings.TrimSpace(primary.Model) != "" { + opts = append(opts, llm.WithModel(strings.TrimSpace(primary.Model))) } - if temp, ok := selectActionTemperature(cfg, provider, effective); ok { + if temp, ok := selectActionTemperature(cfg, provider, primary, model); ok { opts = append(opts, llm.WithTemperature(temp)) } - return requestArgs{model: effective, options: opts} + return requestArgs{model: model, options: opts} } // Timeout helpers to mirror LSP behavior. |
