package spells import ( "context" "fmt" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" ) const Key = "dnd/spells" const ArtifactType = "dnd.spell_cast" const SchemaVersion = "v1" var requiredCapabilities = []string{ "chunks", "source.transcript", } var providedCapabilities = []string{ "dnd.spell_casts", } var _ contracts.Extractor = (*Extractor)(nil) type Extractor struct{} func New() *Extractor { return &Extractor{} } func (e *Extractor) Key() string { return Key } func (e *Extractor) ArtifactType() string { return ArtifactType } func (e *Extractor) SchemaVersion() string { return SchemaVersion } func (e *Extractor) Validators() []contracts.Validator { return nil } func (e *Extractor) Extract(ctx context.Context, req contracts.ExtractionRequest) (contracts.ExtractionResult, error) { return contracts.ExtractionResult{}, fmt.Errorf("dnd spells extractor: extraction is not implemented") } func ModuleSpec() pipeline.ModuleSpec { return pipeline.ModuleSpec{ Key: Key, Stage: pipeline.StageExtract, Requires: append([]string(nil), requiredCapabilities...), Provides: append([]string(nil), providedCapabilities...), } } func Register(registry *pipeline.ExtractorRegistry) error { return registry.RegisterWithSpec(ModuleSpec(), func() (contracts.Extractor, error) { return New(), nil }) }