Added a new JSON public schema as the default output artifact

This commit is contained in:
2026-04-28 21:32:43 -05:00
parent 80ac7e97dd
commit cc80a123ef
14 changed files with 533 additions and 12 deletions

View File

@@ -57,6 +57,31 @@ func FromMerged(cfg config.Config, merged model.MergedTranscript) schema.Transcr
}
}
// DefaultFromMerged converts the internal merged transcript model into the
// compact default public serialized output contract.
func DefaultFromMerged(cfg config.Config, merged model.MergedTranscript) schema.DefaultTranscript {
segments := make([]schema.DefaultSegment, len(merged.Segments))
for index, segment := range merged.Segments {
segments[index] = schema.DefaultSegment{
ID: segment.ID,
Start: segment.Start,
End: segment.End,
Speaker: segment.Speaker,
Text: segment.Text,
Categories: append([]string(nil), segment.Categories...),
}
}
return schema.DefaultTranscript{
Metadata: schema.DefaultMetadata{
Application: ApplicationName,
Version: buildinfo.Version,
OutputSchema: config.OutputSchemaDefault,
},
Segments: segments,
}
}
// MinimalFromMerged converts the internal merged transcript model into the
// compact public serialized output contract.
func MinimalFromMerged(cfg config.Config, merged model.MergedTranscript) schema.MinimalTranscript {
@@ -85,8 +110,12 @@ func MinimalFromMerged(cfg config.Config, merged model.MergedTranscript) schema.
// runtime-selected public output contract.
func SelectedFromMerged(cfg config.Config, merged model.MergedTranscript) any {
switch cfg.OutputSchema {
case config.OutputSchemaDefault:
return DefaultFromMerged(cfg, merged)
case config.OutputSchemaMinimal:
return MinimalFromMerged(cfg, merged)
case config.OutputSchemaSeriatim:
return FromMerged(cfg, merged)
default:
return FromMerged(cfg, merged)
}