Preserve prompt origins while interpreting metadata

This commit is contained in:
2026-11-02 12:47:10 +00:00
parent eaca50763b
commit afcfae2aea
5 changed files with 78 additions and 48 deletions

View File

@@ -246,7 +246,7 @@ func configurationDefinition(state *loaded) configkit.Definition[document] {
return nil
},
Validate: func(config *document, validation *configkit.Validation) {
state.interpreted = interpretTargets(config, validation)
state.interpreted = interpretConfiguration(config, validation)
validateEffective(&state.interpreted, validation)
},
}
@@ -381,18 +381,11 @@ func sortedKeys[T any](entries map[string]T) []string {
return keys
}
func normalizeString(value **string, path configkit.Path, resolution *configkit.Resolution, normalized string) bool {
if value != nil && *value != nil && **value != normalized {
configkit.Normalize(resolution, path, value, &normalized, "normalize configuration value")
return true
}
return false
}
func interpretTargets(config *document, validation *configkit.Validation) document {
func interpretConfiguration(config *document, validation *configkit.Validation) document {
interpreted := *config
interpreted.Backends = interpretBackends(config.Backends, configkit.Keys("backends"), validation)
interpreted.Profiles = interpretProfiles(config.Profiles, configkit.Keys("profiles"), validation)
interpreted.Prompts = interpretPrompts(config.Prompts)
if config.Collections != nil {
interpreted.Collections = make(map[string]collectionConfig, len(config.Collections))
for namespace, original := range config.Collections {
@@ -400,6 +393,7 @@ func interpretTargets(config *document, validation *configkit.Validation) docume
base := configkit.Keys("collections", namespace)
collection.Backends = interpretBackends(original.Backends, base.Key("backends"), validation)
collection.Profiles = interpretProfiles(original.Profiles, base.Key("profiles"), validation)
collection.Prompts = interpretPrompts(original.Prompts)
interpreted.Collections[namespace] = collection
}
}