Apply ConfigKit operational configuration defaults
This commit is contained in:
@@ -29,14 +29,9 @@ func loadDocumentSource(source configkit.Source, options LoadOptions) (*configki
|
||||
|
||||
func documentDefinition() configkit.Definition[Document] {
|
||||
return configkit.Definition[Document]{
|
||||
Defaults: func() Document {
|
||||
return Document{
|
||||
Pipelines: map[string]PipelineDocument{},
|
||||
Concurrency: &ConcurrencyDocument{
|
||||
StageWorkers: map[string]int{},
|
||||
},
|
||||
}
|
||||
},
|
||||
Defaults: documentDefaults,
|
||||
Resolve: resolveDocumentOperations,
|
||||
Validate: validateDocumentOperations,
|
||||
Version: &configkit.VersionRule{
|
||||
Path: configkit.Keys("version"),
|
||||
Check: validateDocumentVersion,
|
||||
@@ -44,6 +39,30 @@ func documentDefinition() configkit.Definition[Document] {
|
||||
}
|
||||
}
|
||||
|
||||
func documentDefaults() Document {
|
||||
return Document{
|
||||
Pipelines: map[string]PipelineDocument{},
|
||||
Concurrency: &ConcurrencyDocument{
|
||||
TotalLLM: documentValue(defaultLLMConcurrency),
|
||||
StageWorkers: map[string]int{},
|
||||
},
|
||||
Output: &OutputDocument{Directory: documentValue("./notarius-output")},
|
||||
Cache: &CacheDocument{
|
||||
ChunkPlans: &ChunkPlanCacheDocument{
|
||||
Directory: documentValue(""),
|
||||
Mode: documentValue("auto"),
|
||||
},
|
||||
Checkpoints: &CheckpointCacheDocument{
|
||||
Enabled: documentValue(false),
|
||||
Directory: documentValue(""),
|
||||
},
|
||||
},
|
||||
Debug: &DebugDocument{Directory: documentValue("./notarius-debug")},
|
||||
}
|
||||
}
|
||||
|
||||
func documentValue[T any](value T) *T { return &value }
|
||||
|
||||
func validateDocumentVersion(version configkit.Version, validation *configkit.Validation) error {
|
||||
if !version.Present || version.Null {
|
||||
validation.Error(configkit.Keys("version"), "configuration version is required")
|
||||
|
||||
Reference in New Issue
Block a user