diff options
Diffstat (limited to 'internal/runtimeconfig/store.go')
| -rw-r--r-- | internal/runtimeconfig/store.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/runtimeconfig/store.go b/internal/runtimeconfig/store.go index 3112951..4ee7ada 100644 --- a/internal/runtimeconfig/store.go +++ b/internal/runtimeconfig/store.go @@ -129,6 +129,14 @@ func flattenAppConfig(cfg appconfig.App) map[string]string { switch field.Name { case "StatsWindowMinutes": key = "stats_window_minutes" + case "CompletionConfigs": + key = "completion_configs" + case "CodeActionConfigs": + key = "code_action_configs" + case "ChatConfigs": + key = "chat_configs" + case "CLIConfigs": + key = "cli_configs" default: continue } @@ -170,6 +178,22 @@ func stringifyValue(v reflect.Value) string { } return strings.Join(parts, ",") } + if v.Type().Elem() == reflect.TypeOf(appconfig.SurfaceConfig{}) { + parts := make([]string, 0, v.Len()) + for i := 0; i < v.Len(); i++ { + entry := v.Index(i).Interface().(appconfig.SurfaceConfig) + segment := strings.TrimSpace(entry.Provider) + if segment != "" { + segment += ":" + } + segment += strings.TrimSpace(entry.Model) + if entry.Temperature != nil { + segment += fmt.Sprintf("@%.3f", *entry.Temperature) + } + parts = append(parts, segment) + } + return strings.Join(parts, "|") + } return fmt.Sprint(v.Interface()) case reflect.Ptr: if v.IsNil() { |
