summaryrefslogtreecommitdiff
path: root/internal/runtimeconfig/store.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/runtimeconfig/store.go')
-rw-r--r--internal/runtimeconfig/store.go24
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() {