Add Seriatim configuration contract
This commit is contained in:
@@ -36,8 +36,7 @@ func validatePipeline(cfg *PipelineConfig) error {
|
||||
if err := validateWhisperX(cfg.WhisperX); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := validateDuration("pipeline.seriatim.timeout", cfg.Seriatim.Timeout); err != nil {
|
||||
if err := validateSeriatim(cfg.Seriatim); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := validateDuration("pipeline.audita.timeout", cfg.Audita.Timeout); err != nil {
|
||||
@@ -85,6 +84,44 @@ func validateWhisperX(cfg WhisperXConfig) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateSeriatim(cfg SeriatimConfig) error {
|
||||
if strings.TrimSpace(cfg.Binary) == "" {
|
||||
return fmt.Errorf("pipeline.seriatim.binary is required")
|
||||
}
|
||||
if err := validateDuration("pipeline.seriatim.timeout", cfg.Timeout); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
switch cfg.OutputSchema {
|
||||
case "seriatim-minimal", "seriatim-intermediate", "seriatim-full":
|
||||
default:
|
||||
return fmt.Errorf("pipeline.seriatim.output_schema must be one of: seriatim-minimal, seriatim-intermediate, seriatim-full")
|
||||
}
|
||||
|
||||
if cfg.CoalesceGap == nil {
|
||||
return fmt.Errorf("pipeline.seriatim.coalesce_gap must be set (defaults should populate this)")
|
||||
}
|
||||
if *cfg.CoalesceGap < 0 {
|
||||
return fmt.Errorf("pipeline.seriatim.coalesce_gap must be >= 0")
|
||||
}
|
||||
|
||||
for _, item := range []struct {
|
||||
name string
|
||||
value *float64
|
||||
}{
|
||||
{name: "pipeline.seriatim.env.overlap_word_run_gap", value: cfg.Env.OverlapWordRunGap},
|
||||
{name: "pipeline.seriatim.env.overlap_word_run_reorder_window", value: cfg.Env.OverlapWordRunReorderWindow},
|
||||
{name: "pipeline.seriatim.env.backchannel_max_duration", value: cfg.Env.BackchannelMaxDuration},
|
||||
{name: "pipeline.seriatim.env.filler_max_duration", value: cfg.Env.FillerMaxDuration},
|
||||
} {
|
||||
if item.value != nil && *item.value <= 0 {
|
||||
return fmt.Errorf("%s must be > 0 when provided", item.name)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateSession(cfg *SessionConfig) error {
|
||||
if strings.TrimSpace(cfg.SessionID) == "" {
|
||||
return fmt.Errorf("session.session_id is required")
|
||||
|
||||
Reference in New Issue
Block a user