summaryrefslogtreecommitdiff
path: root/internal/llmutils
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-16 03:51:43 +0200
committerPaul Buetow <paul@buetow.org>2026-03-16 03:51:43 +0200
commitde3e878ad12bbd3e609bd5b7d741fc792c72f255 (patch)
tree06d92b93ea0ad532c5d3a761033baac05abe2a5e /internal/llmutils
parent2e9cabb1c8bf1f0246e513fe1f86a552e07eee94 (diff)
Decompose App God struct into embedded section structs
Replace 60+ flat fields in App with 4 embedded section structs: CoreConfig, ProviderConfig, PromptConfig, FeatureConfig. Go field promotion preserves all existing field access patterns. Updated flattenAppConfig to recurse into embedded structs for runtimeconfig. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/llmutils')
-rw-r--r--internal/llmutils/client_test.go24
1 files changed, 14 insertions, 10 deletions
diff --git a/internal/llmutils/client_test.go b/internal/llmutils/client_test.go
index 0e38476..0cbd26d 100644
--- a/internal/llmutils/client_test.go
+++ b/internal/llmutils/client_test.go
@@ -8,7 +8,7 @@ import (
)
func TestNewClientFromApp_Ollama(t *testing.T) {
- cfg := appconfig.App{Provider: "ollama"}
+ cfg := appconfig.App{CoreConfig: appconfig.CoreConfig{Provider: "ollama"}}
c, err := NewClientFromApp(cfg)
if err != nil || c == nil {
t.Fatalf("ollama client failed: %v %v", c, err)
@@ -17,7 +17,7 @@ func TestNewClientFromApp_Ollama(t *testing.T) {
func TestNewClientFromApp_OpenAI_WithKey(t *testing.T) {
t.Setenv("HEXAI_OPENAI_API_KEY", "test-key")
- cfg := appconfig.App{Provider: "openai"}
+ cfg := appconfig.App{CoreConfig: appconfig.CoreConfig{Provider: "openai"}}
c, err := NewClientFromApp(cfg)
if err != nil || c == nil {
t.Fatalf("openai client failed: %v %v", c, err)
@@ -37,10 +37,12 @@ func TestCanonicalProvider(t *testing.T) {
func TestDefaultModelForProvider(t *testing.T) {
cfg := appconfig.App{
- OpenAIModel: "gpt-4.1",
- OpenRouterModel: "openrouter/auto",
- OllamaModel: "qwen3",
- AnthropicModel: "claude",
+ ProviderConfig: appconfig.ProviderConfig{
+ OpenAIModel: "gpt-4.1",
+ OpenRouterModel: "openrouter/auto",
+ OllamaModel: "qwen3",
+ AnthropicModel: "claude",
+ },
}
if got := DefaultModelForProvider(cfg, "openai"); got != "gpt-4.1" {
t.Fatalf("openai model = %q", got)
@@ -74,10 +76,12 @@ func TestDefaultModelForProvider_Fallbacks(t *testing.T) {
func TestConfigForProvider(t *testing.T) {
base := appconfig.App{
- Provider: "openai",
- OpenAIModel: "gpt-4.1",
- OllamaModel: "qwen3",
- AnthropicModel: "claude",
+ CoreConfig: appconfig.CoreConfig{Provider: "openai"},
+ ProviderConfig: appconfig.ProviderConfig{
+ OpenAIModel: "gpt-4.1",
+ OllamaModel: "qwen3",
+ AnthropicModel: "claude",
+ },
}
got := ConfigForProvider(base, "ollama", "qwen3-coder")
if got.Provider != "ollama" {