85 lines
2.5 KiB
Go
85 lines
2.5 KiB
Go
package artifactmodel
|
|
|
|
import "strings"
|
|
|
|
const (
|
|
SourceTranscriptBase = "narratio.transcript.base"
|
|
SourceTranscriptPolished = "narratio.transcript.polished"
|
|
SourceTranscriptFinal = "narratio.transcript.final"
|
|
SourceTranscriptFinalTrimmed = "narratio.transcript.final_trimmed"
|
|
)
|
|
|
|
const (
|
|
TranscriptPathBase = "transcripts/base.json"
|
|
TranscriptPathPolished = "transcripts/polished.json"
|
|
TranscriptPathFinal = "transcripts/final.json"
|
|
TranscriptPathFinalTrimmed = "transcripts/final.trimmed.json"
|
|
)
|
|
|
|
const (
|
|
TranscriptOutputKindBase = "transcript_base"
|
|
TranscriptOutputKindPolished = "transcript_polished"
|
|
TranscriptOutputKindFinal = "transcript_final"
|
|
TranscriptOutputKindFinalTrimmed = "transcript_final_trimmed"
|
|
)
|
|
|
|
// TranscriptArtifactSpec describes one built-in transcript artifact mapping.
|
|
type TranscriptArtifactSpec struct {
|
|
SourceID string
|
|
CanonicalRelPath string
|
|
ProducerStage string
|
|
OutputKind string
|
|
}
|
|
|
|
var runtimeTranscriptArtifacts = []TranscriptArtifactSpec{
|
|
{
|
|
SourceID: SourceTranscriptBase,
|
|
CanonicalRelPath: TranscriptPathBase,
|
|
ProducerStage: "merge",
|
|
OutputKind: TranscriptOutputKindBase,
|
|
},
|
|
{
|
|
SourceID: SourceTranscriptPolished,
|
|
CanonicalRelPath: TranscriptPathPolished,
|
|
ProducerStage: "polish",
|
|
OutputKind: TranscriptOutputKindPolished,
|
|
},
|
|
{
|
|
SourceID: SourceTranscriptFinal,
|
|
CanonicalRelPath: TranscriptPathFinal,
|
|
ProducerStage: "normalize",
|
|
OutputKind: TranscriptOutputKindFinal,
|
|
},
|
|
{
|
|
SourceID: SourceTranscriptFinalTrimmed,
|
|
CanonicalRelPath: TranscriptPathFinalTrimmed,
|
|
ProducerStage: "trim",
|
|
OutputKind: TranscriptOutputKindFinalTrimmed,
|
|
},
|
|
}
|
|
|
|
// RuntimeTranscriptArtifacts returns transcript mappings in pipeline order.
|
|
func RuntimeTranscriptArtifacts() []TranscriptArtifactSpec {
|
|
return cloneTranscriptSpecs(runtimeTranscriptArtifacts)
|
|
}
|
|
|
|
// LookupRuntimeTranscriptArtifact returns runtime transcript metadata by source ID.
|
|
func LookupRuntimeTranscriptArtifact(sourceID string) (TranscriptArtifactSpec, bool) {
|
|
trimmed := strings.TrimSpace(sourceID)
|
|
for _, spec := range runtimeTranscriptArtifacts {
|
|
if spec.SourceID == trimmed {
|
|
return spec, true
|
|
}
|
|
}
|
|
return TranscriptArtifactSpec{}, false
|
|
}
|
|
|
|
func cloneTranscriptSpecs(specs []TranscriptArtifactSpec) []TranscriptArtifactSpec {
|
|
if len(specs) == 0 {
|
|
return nil
|
|
}
|
|
out := make([]TranscriptArtifactSpec, len(specs))
|
|
copy(out, specs)
|
|
return out
|
|
}
|