diff --git a/docs/internal/modules.md b/docs/internal/modules.md index ad45709..467ce2e 100644 --- a/docs/internal/modules.md +++ b/docs/internal/modules.md @@ -1,8 +1,9 @@ # Module And Validator Internals -Production stage implementations live under `internal/modules`; production -validators live under `internal/validators`. The selectable keys, configuration -options, reference slots, and default validator chain are canonical in the +Production module implementations and generic validators live under +`internal/modules`; the current D&D validators live under `internal/validators`. +The selectable keys, configuration options, reference slots, and default +validator chain are canonical in the [module](../config.md#implemented-production-modules) and [validator](../config.md#implemented-production-validators) catalogs in Configuration. @@ -36,7 +37,7 @@ evidence. The resolver and materializer behavior is described in ## Input Adapter -### `internal/modules/input/seriatim` +### `internal/modules/seriatim/input/transcript` The adapter decodes the supported transcript JSON, selects the source identity, computes the raw-input digest, validates segments, and maps each segment into a @@ -50,7 +51,7 @@ rules are defined in the ## Chunkers -### `internal/modules/chunk/generic` +### `internal/modules/generic/chunk/units` The generic chunker validates the source document, walks units in configured windows, clones each selected unit, and emits deterministic ordered chunk IDs. @@ -99,14 +100,14 @@ The durable payload and manifest metadata shapes are defined in the ## Merger And Normalizer -### `internal/modules/merge/appendorder` +### `internal/modules/generic/merge/appendorder` The merger preserves extract-result order. It passes through one JSON result, concatenates a common top-level array field across multiple JSON objects, and otherwise emits an array of the decoded values. It rejects invalid JSON and non-JSON media types, and it preserves compatible schema provenance. -### `internal/modules/normalize/noop` +### `internal/modules/generic/normalize/noop` The normalizer defensively clones the accepted merge result, including payload bytes, metadata, warnings, and schema provenance, without changing its logical @@ -114,7 +115,7 @@ content. ## Output Encoder -### `internal/modules/output/json` +### `internal/modules/generic/output/json` The JSON encoder sorts normalized results by lane, derives collision-checked safe logical names, pretty-prints JSON payloads, and assembles the logical index, @@ -127,6 +128,9 @@ paths and schemas. ## Generic Validators +The generic validator implementations live under +`internal/modules/generic/validate`. + The unconditional accept and reject validators provide deterministic production registrations used primarily for controlled composition and tests. diff --git a/docs/internal/overview.md b/docs/internal/overview.md index df4f811..dbcfbc9 100644 --- a/docs/internal/overview.md +++ b/docs/internal/overview.md @@ -58,27 +58,28 @@ Configuration. The implemented module packages are: | Package | Implemented responsibility | | --- | --- | -| `internal/modules/input/seriatim` | Parses the supported Seriatim transcript format into the generic source model. | -| `internal/modules/chunk/generic` | Splits ordered source units by unit count and overlap. | +| `internal/modules/seriatim/input/transcript` | Parses the supported Seriatim transcript format into the generic source model. | +| `internal/modules/generic/chunk/units` | Splits ordered source units by unit count and overlap. | | `internal/modules/chunk/dnd/scenes` | Produces contiguous D&D scene chunks from structured model output. | | `internal/modules/extract/dnd/spells` | Produces source-grounded D&D spell-cast raw output. | -| `internal/modules/merge/appendorder` | Combines accepted extraction results in chunk order. | -| `internal/modules/normalize/noop` | Preserves accepted merged output. | -| `internal/modules/output/json` | Encodes manifests, lane payloads, warnings, and rejections as logical JSON files. | +| `internal/modules/generic/merge/appendorder` | Combines accepted extraction results in chunk order. | +| `internal/modules/generic/normalize/noop` | Preserves accepted merged output. | +| `internal/modules/generic/output/json` | Encodes manifests, lane payloads, warnings, and rejections as logical JSON files. | `internal/modules/sharedassets` composes shared prompt filesystems. `internal/modules/sharedassets/dnd` owns reusable D&D prompt fragments, reference declarations, prompt input assembly, and source-unit reference helpers. -Concrete validators live under `internal/validators`. Generic packages provide +Generic validators under `internal/modules/generic/validate` provide unconditional test decisions, JSON syntax validation, and JSON Schema -validation. D&D spell packages provide shape, source-reference, and -source-relatedness decisions, with `spellpayload` holding their shared parser -and lookup helpers. +validation. D&D spell validators remain under `internal/validators` and provide +shape, source-reference, and source-relatedness decisions, with `spellpayload` +holding their shared parser and lookup helpers. -Production composition is grouped behind package-family registrars while the -implementations remain in their current stage-oriented packages: +Production composition is grouped behind package-family registrars. Generic +and Seriatim implementations use their domain-first trees; D&D implementations +remain in their current stage-oriented packages: | Package | Implemented responsibility | | --- | --- | diff --git a/internal/cli/compatibility_test.go b/internal/cli/compatibility_test.go index 0c7f577..92d86c4 100644 --- a/internal/cli/compatibility_test.go +++ b/internal/cli/compatibility_test.go @@ -20,11 +20,11 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" "gitea.maximumdirect.net/eric/notarius/internal/modules/chunk/dnd/scenes" "gitea.maximumdirect.net/eric/notarius/internal/modules/extract/dnd/spells" + validjson "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json" + validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json_schema" spellshape "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/shape" spellsourcerefs "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/source_refs" spellrelatedness "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/source_relatedness" - validjson "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json" - validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json_schema" ) func TestProductionCompatibilitySnapshot(t *testing.T) { diff --git a/internal/cli/run_test.go b/internal/cli/run_test.go index 157d561..191a99c 100644 --- a/internal/cli/run_test.go +++ b/internal/cli/run_test.go @@ -23,19 +23,19 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" "gitea.maximumdirect.net/eric/notarius/internal/modules/chunk/dnd/scenes" - "gitea.maximumdirect.net/eric/notarius/internal/modules/chunk/generic" "gitea.maximumdirect.net/eric/notarius/internal/modules/extract/dnd/spells" - "gitea.maximumdirect.net/eric/notarius/internal/modules/input/seriatim" - "gitea.maximumdirect.net/eric/notarius/internal/modules/merge/appendorder" - "gitea.maximumdirect.net/eric/notarius/internal/modules/normalize/noop" - jsonoutput "gitea.maximumdirect.net/eric/notarius/internal/modules/output/json" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/chunk/units" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/merge/appendorder" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/normalize/noop" + jsonoutput "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/output/json" + alwaysaccept "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/always_accept" + alwaysreject "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/always_reject" + validjson "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json" + validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json_schema" + "gitea.maximumdirect.net/eric/notarius/internal/modules/seriatim/input/transcript" spellshape "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/shape" spellsourcerefs "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/source_refs" spellrelatedness "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/source_relatedness" - alwaysaccept "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/always_accept" - alwaysreject "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/always_reject" - validjson "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json" - validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json_schema" "gitea.maximumdirect.net/eric/scriptorium" ) @@ -143,13 +143,13 @@ func TestProductionCatalogIncludesProductionModulesValidatorsAndDefaults(t *test }{ { name: "seriatim input", - got: func() (pipeline.ModuleSpec, bool) { return catalog.Inputs.Spec(seriatim.Key) }, - want: seriatim.ModuleSpec(), + got: func() (pipeline.ModuleSpec, bool) { return catalog.Inputs.Spec(transcript.Key) }, + want: transcript.ModuleSpec(), }, { name: "generic chunker", - got: func() (pipeline.ModuleSpec, bool) { return catalog.Chunkers.Spec(generic.Key) }, - want: generic.ModuleSpec(), + got: func() (pipeline.ModuleSpec, bool) { return catalog.Chunkers.Spec(units.Key) }, + want: units.ModuleSpec(), }, { name: "dnd scenes chunker", @@ -222,7 +222,7 @@ func TestProductionCatalogIncludesProductionModulesValidatorsAndDefaults(t *test if !reflect.DeepEqual(gotChain, wantChain) { t.Fatalf("dnd spell default validator chain = %#v, want %#v", gotChain, wantChain) } - if got := catalog.ValidatorChains.Validators(pipeline.StageChunk, generic.Key); len(got) != 0 { + if got := catalog.ValidatorChains.Validators(pipeline.StageChunk, units.Key); len(got) != 0 { t.Fatalf("generic chunker default validator chain = %#v, want empty", got) } } diff --git a/internal/framework/pipeline/default_modules_test.go b/internal/framework/pipeline/default_modules_test.go index c909c22..6ed9022 100644 --- a/internal/framework/pipeline/default_modules_test.go +++ b/internal/framework/pipeline/default_modules_test.go @@ -8,10 +8,10 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/core/source" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/chunk/generic" - "gitea.maximumdirect.net/eric/notarius/internal/modules/merge/appendorder" - "gitea.maximumdirect.net/eric/notarius/internal/modules/normalize/noop" - jsonoutput "gitea.maximumdirect.net/eric/notarius/internal/modules/output/json" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/chunk/units" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/merge/appendorder" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/normalize/noop" + jsonoutput "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/output/json" ) func TestPipelineConfigResolvesWithProductionDefaultsRegistered(t *testing.T) { @@ -34,8 +34,8 @@ func TestPipelineConfigResolvesWithProductionDefaultsRegistered(t *testing.T) { } pipeline := resolved.ResolvedPipeline - if pipeline.Chunk.Module != generic.Key { - t.Fatalf("Chunk.Module = %q, want %q", pipeline.Chunk.Module, generic.Key) + if pipeline.Chunk.Module != units.Key { + t.Fatalf("Chunk.Module = %q, want %q", pipeline.Chunk.Module, units.Key) } if pipeline.Output.Module != jsonoutput.Key { t.Fatalf("Output.Module = %q, want %q", pipeline.Output.Module, jsonoutput.Key) @@ -68,7 +68,7 @@ func defaultModuleCatalog(t *testing.T) pipeline.ModuleCatalog { }); err != nil { t.Fatalf("register input: %v", err) } - if err := generic.Register(chunkers); err != nil { + if err := units.Register(chunkers); err != nil { t.Fatalf("register generic chunker: %v", err) } if err := extractors.RegisterWithSpec(pipeline.ModuleSpec{ diff --git a/internal/modules/dnd/register/register.go b/internal/modules/dnd/register/register.go index 64a92f9..449bd18 100644 --- a/internal/modules/dnd/register/register.go +++ b/internal/modules/dnd/register/register.go @@ -8,11 +8,11 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" "gitea.maximumdirect.net/eric/notarius/internal/modules/chunk/dnd/scenes" "gitea.maximumdirect.net/eric/notarius/internal/modules/extract/dnd/spells" + validjson "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json" + validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json_schema" spellshape "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/shape" spellsourcerefs "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/source_refs" spellrelatedness "gitea.maximumdirect.net/eric/notarius/internal/validators/extract/dnd/spells/source_relatedness" - validjson "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json" - validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json_schema" ) // Register adds all production D&D modules, validators, policy, and assets. diff --git a/internal/modules/extract/dnd/spells/config_test.go b/internal/modules/extract/dnd/spells/config_test.go index 20c44c7..9ae674a 100644 --- a/internal/modules/extract/dnd/spells/config_test.go +++ b/internal/modules/extract/dnd/spells/config_test.go @@ -10,9 +10,9 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/core/source" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/input/seriatim" - "gitea.maximumdirect.net/eric/notarius/internal/modules/merge/appendorder" - "gitea.maximumdirect.net/eric/notarius/internal/modules/normalize/noop" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/merge/appendorder" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/normalize/noop" + "gitea.maximumdirect.net/eric/notarius/internal/modules/seriatim/input/transcript" ) func TestPipelineConfigLoadsAndResolvesWithDNDSpellsExtractor(t *testing.T) { @@ -65,7 +65,7 @@ func TestPipelineConfigLoadsAndResolvesWithDNDSpellsExtractor(t *testing.T) { } func TestPipelineConfigRejectsMissingTranscriptCapabilityForDNDSpells(t *testing.T) { - inputSpec := seriatim.ModuleSpec() + inputSpec := transcript.ModuleSpec() inputSpec.Provides = withoutCapability(inputSpec.Provides, "source.transcript") chunkSpec := dndSpellsChunkerSpec() chunkSpec.Requires = nil @@ -156,11 +156,11 @@ func dndSpellsTestCatalog(t *testing.T, specs dndSpellsCatalogSpecs) pipeline.Mo outputs := pipeline.NewOutputEncoderRegistry() if specs.input.Key == "" { - if err := seriatim.Register(inputs); err != nil { + if err := transcript.Register(inputs); err != nil { t.Fatalf("register seriatim input: %v", err) } } else if err := inputs.RegisterWithSpec(specs.input, func() (contracts.InputAdapter, error) { - return seriatim.New(), nil + return transcript.New(), nil }); err != nil { t.Fatalf("register seriatim input override: %v", err) } diff --git a/internal/modules/extract/dnd/spells/runner_test.go b/internal/modules/extract/dnd/spells/runner_test.go index ba6aef1..f8ad91f 100644 --- a/internal/modules/extract/dnd/spells/runner_test.go +++ b/internal/modules/extract/dnd/spells/runner_test.go @@ -11,7 +11,7 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/core/source" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/input/seriatim" + "gitea.maximumdirect.net/eric/notarius/internal/modules/seriatim/input/transcript" ) func TestRunnerProcessesSeriatimInputWithDNDSpellsExtractor(t *testing.T) { @@ -75,8 +75,8 @@ func TestRunnerProcessesSeriatimInputWithDNDSpellsExtractor(t *testing.T) { } } - if output.Manifest.InputModule != seriatim.Key { - t.Fatalf("manifest input module = %q, want %q", output.Manifest.InputModule, seriatim.Key) + if output.Manifest.InputModule != transcript.Key { + t.Fatalf("manifest input module = %q, want %q", output.Manifest.InputModule, transcript.Key) } if output.Manifest.ValidationStatus != "approved" { t.Fatalf("ValidationStatus = %q, want approved", output.Manifest.ValidationStatus) @@ -343,7 +343,7 @@ func readDNDSpellsFixture(t *testing.T) []byte { func parseDNDSpellsFixture(t *testing.T, raw []byte) *source.SourceDocument { t.Helper() - doc, err := seriatim.New().Parse(context.Background(), contracts.ParseRequest{Raw: raw}) + doc, err := transcript.New().Parse(context.Background(), contracts.ParseRequest{Raw: raw}) if err != nil { t.Fatalf("Parse() error = %v, want nil", err) } diff --git a/internal/modules/chunk/generic/chunker.go b/internal/modules/generic/chunk/units/chunker.go similarity index 99% rename from internal/modules/chunk/generic/chunker.go rename to internal/modules/generic/chunk/units/chunker.go index e43909c..10afaee 100644 --- a/internal/modules/chunk/generic/chunker.go +++ b/internal/modules/generic/chunk/units/chunker.go @@ -1,4 +1,4 @@ -package generic +package units import ( "context" diff --git a/internal/modules/chunk/generic/chunker_test.go b/internal/modules/generic/chunk/units/chunker_test.go similarity index 99% rename from internal/modules/chunk/generic/chunker_test.go rename to internal/modules/generic/chunk/units/chunker_test.go index ac0577e..4832d35 100644 --- a/internal/modules/chunk/generic/chunker_test.go +++ b/internal/modules/generic/chunk/units/chunker_test.go @@ -1,4 +1,4 @@ -package generic +package units import ( "context" diff --git a/internal/modules/merge/appendorder/merger.go b/internal/modules/generic/merge/appendorder/merger.go similarity index 100% rename from internal/modules/merge/appendorder/merger.go rename to internal/modules/generic/merge/appendorder/merger.go diff --git a/internal/modules/merge/appendorder/merger_test.go b/internal/modules/generic/merge/appendorder/merger_test.go similarity index 100% rename from internal/modules/merge/appendorder/merger_test.go rename to internal/modules/generic/merge/appendorder/merger_test.go diff --git a/internal/modules/normalize/noop/normalizer.go b/internal/modules/generic/normalize/noop/normalizer.go similarity index 100% rename from internal/modules/normalize/noop/normalizer.go rename to internal/modules/generic/normalize/noop/normalizer.go diff --git a/internal/modules/normalize/noop/normalizer_test.go b/internal/modules/generic/normalize/noop/normalizer_test.go similarity index 100% rename from internal/modules/normalize/noop/normalizer_test.go rename to internal/modules/generic/normalize/noop/normalizer_test.go diff --git a/internal/modules/output/json/encoder.go b/internal/modules/generic/output/json/encoder.go similarity index 100% rename from internal/modules/output/json/encoder.go rename to internal/modules/generic/output/json/encoder.go diff --git a/internal/modules/output/json/encoder_test.go b/internal/modules/generic/output/json/encoder_test.go similarity index 100% rename from internal/modules/output/json/encoder_test.go rename to internal/modules/generic/output/json/encoder_test.go diff --git a/internal/modules/generic/register/register.go b/internal/modules/generic/register/register.go index 4f31dfd..f5be11d 100644 --- a/internal/modules/generic/register/register.go +++ b/internal/modules/generic/register/register.go @@ -6,14 +6,14 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/framework/llm" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/chunk/generic" - "gitea.maximumdirect.net/eric/notarius/internal/modules/merge/appendorder" - "gitea.maximumdirect.net/eric/notarius/internal/modules/normalize/noop" - jsonoutput "gitea.maximumdirect.net/eric/notarius/internal/modules/output/json" - alwaysaccept "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/always_accept" - alwaysreject "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/always_reject" - validjson "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json" - validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/validators/generic/valid_json_schema" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/chunk/units" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/merge/appendorder" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/normalize/noop" + jsonoutput "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/output/json" + alwaysaccept "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/always_accept" + alwaysreject "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/always_reject" + validjson "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json" + validjsonschema "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/validate/valid_json_schema" ) // Register adds all production domain-neutral modules and validators. @@ -26,7 +26,7 @@ func Register(registries pipeline.Registries, assets *llm.AssetRegistry) error { name string register func() error }{ - {name: "generic chunker", register: func() error { return generic.Register(registries.Chunkers) }}, + {name: "generic chunker", register: func() error { return units.Register(registries.Chunkers) }}, {name: "appendorder merger", register: func() error { return appendorder.Register(registries.Mergers) }}, {name: "noop normalizer", register: func() error { return noop.Register(registries.Normalizers) }}, {name: "always accept validator", register: func() error { return alwaysaccept.Register(registries.Validators) }}, diff --git a/internal/validators/generic/always_accept/validator.go b/internal/modules/generic/validate/always_accept/validator.go similarity index 100% rename from internal/validators/generic/always_accept/validator.go rename to internal/modules/generic/validate/always_accept/validator.go diff --git a/internal/validators/generic/always_accept/validator_test.go b/internal/modules/generic/validate/always_accept/validator_test.go similarity index 100% rename from internal/validators/generic/always_accept/validator_test.go rename to internal/modules/generic/validate/always_accept/validator_test.go diff --git a/internal/validators/generic/always_reject/validator.go b/internal/modules/generic/validate/always_reject/validator.go similarity index 100% rename from internal/validators/generic/always_reject/validator.go rename to internal/modules/generic/validate/always_reject/validator.go diff --git a/internal/validators/generic/always_reject/validator_test.go b/internal/modules/generic/validate/always_reject/validator_test.go similarity index 100% rename from internal/validators/generic/always_reject/validator_test.go rename to internal/modules/generic/validate/always_reject/validator_test.go diff --git a/internal/validators/generic/valid_json/validator.go b/internal/modules/generic/validate/valid_json/validator.go similarity index 100% rename from internal/validators/generic/valid_json/validator.go rename to internal/modules/generic/validate/valid_json/validator.go diff --git a/internal/validators/generic/valid_json/validator_test.go b/internal/modules/generic/validate/valid_json/validator_test.go similarity index 100% rename from internal/validators/generic/valid_json/validator_test.go rename to internal/modules/generic/validate/valid_json/validator_test.go diff --git a/internal/validators/generic/valid_json_schema/validator.go b/internal/modules/generic/validate/valid_json_schema/validator.go similarity index 100% rename from internal/validators/generic/valid_json_schema/validator.go rename to internal/modules/generic/validate/valid_json_schema/validator.go diff --git a/internal/validators/generic/valid_json_schema/validator_test.go b/internal/modules/generic/validate/valid_json_schema/validator_test.go similarity index 100% rename from internal/validators/generic/valid_json_schema/validator_test.go rename to internal/modules/generic/validate/valid_json_schema/validator_test.go diff --git a/internal/modules/input/seriatim/adapter.go b/internal/modules/seriatim/input/transcript/adapter.go similarity index 99% rename from internal/modules/input/seriatim/adapter.go rename to internal/modules/seriatim/input/transcript/adapter.go index 1287ece..68b4b93 100644 --- a/internal/modules/input/seriatim/adapter.go +++ b/internal/modules/seriatim/input/transcript/adapter.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "context" diff --git a/internal/modules/input/seriatim/adapter_test.go b/internal/modules/seriatim/input/transcript/adapter_test.go similarity index 99% rename from internal/modules/input/seriatim/adapter_test.go rename to internal/modules/seriatim/input/transcript/adapter_test.go index 9b16384..7cdb2f2 100644 --- a/internal/modules/input/seriatim/adapter_test.go +++ b/internal/modules/seriatim/input/transcript/adapter_test.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "context" diff --git a/internal/modules/input/seriatim/config_test.go b/internal/modules/seriatim/input/transcript/config_test.go similarity index 97% rename from internal/modules/input/seriatim/config_test.go rename to internal/modules/seriatim/input/transcript/config_test.go index 7dce6b2..3405fa6 100644 --- a/internal/modules/input/seriatim/config_test.go +++ b/internal/modules/seriatim/input/transcript/config_test.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "context" @@ -10,8 +10,8 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/core/config" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/merge/appendorder" - "gitea.maximumdirect.net/eric/notarius/internal/modules/normalize/noop" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/merge/appendorder" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/normalize/noop" ) func TestPipelineConfigLoadsAndResolvesWithSeriatimInput(t *testing.T) { diff --git a/internal/modules/input/seriatim/metadata.go b/internal/modules/seriatim/input/transcript/metadata.go similarity index 96% rename from internal/modules/input/seriatim/metadata.go rename to internal/modules/seriatim/input/transcript/metadata.go index b439261..85b17fb 100644 --- a/internal/modules/input/seriatim/metadata.go +++ b/internal/modules/seriatim/input/transcript/metadata.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "encoding/json" diff --git a/internal/modules/input/seriatim/model.go b/internal/modules/seriatim/input/transcript/model.go similarity index 99% rename from internal/modules/input/seriatim/model.go rename to internal/modules/seriatim/input/transcript/model.go index 8566f99..b6d717c 100644 --- a/internal/modules/input/seriatim/model.go +++ b/internal/modules/seriatim/input/transcript/model.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "bytes" diff --git a/internal/modules/input/seriatim/registry_test.go b/internal/modules/seriatim/input/transcript/registry_test.go similarity index 99% rename from internal/modules/input/seriatim/registry_test.go rename to internal/modules/seriatim/input/transcript/registry_test.go index b25c8b4..8c45eb6 100644 --- a/internal/modules/input/seriatim/registry_test.go +++ b/internal/modules/seriatim/input/transcript/registry_test.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "encoding/json" diff --git a/internal/modules/input/seriatim/runner_test.go b/internal/modules/seriatim/input/transcript/runner_test.go similarity index 98% rename from internal/modules/input/seriatim/runner_test.go rename to internal/modules/seriatim/input/transcript/runner_test.go index a81db93..99d8ea3 100644 --- a/internal/modules/input/seriatim/runner_test.go +++ b/internal/modules/seriatim/input/transcript/runner_test.go @@ -1,4 +1,4 @@ -package seriatim +package transcript import ( "context" @@ -11,8 +11,8 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/core/source" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/merge/appendorder" - "gitea.maximumdirect.net/eric/notarius/internal/modules/normalize/noop" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/merge/appendorder" + "gitea.maximumdirect.net/eric/notarius/internal/modules/generic/normalize/noop" ) func TestRunnerProcessesSeriatimInputWithFakeModules(t *testing.T) { diff --git a/internal/modules/input/seriatim/testdata/duplicate_segment_id.json b/internal/modules/seriatim/input/transcript/testdata/duplicate_segment_id.json similarity index 100% rename from internal/modules/input/seriatim/testdata/duplicate_segment_id.json rename to internal/modules/seriatim/input/transcript/testdata/duplicate_segment_id.json diff --git a/internal/modules/input/seriatim/testdata/pipeline.yml b/internal/modules/seriatim/input/transcript/testdata/pipeline.yml similarity index 100% rename from internal/modules/input/seriatim/testdata/pipeline.yml rename to internal/modules/seriatim/input/transcript/testdata/pipeline.yml diff --git a/internal/modules/input/seriatim/testdata/valid_minimal.json b/internal/modules/seriatim/input/transcript/testdata/valid_minimal.json similarity index 100% rename from internal/modules/input/seriatim/testdata/valid_minimal.json rename to internal/modules/seriatim/input/transcript/testdata/valid_minimal.json diff --git a/internal/modules/seriatim/register/register.go b/internal/modules/seriatim/register/register.go index 4bef8c3..784c332 100644 --- a/internal/modules/seriatim/register/register.go +++ b/internal/modules/seriatim/register/register.go @@ -6,7 +6,7 @@ import ( "gitea.maximumdirect.net/eric/notarius/internal/framework/llm" "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" - "gitea.maximumdirect.net/eric/notarius/internal/modules/input/seriatim" + "gitea.maximumdirect.net/eric/notarius/internal/modules/seriatim/input/transcript" ) // Register adds all production Seriatim modules. @@ -15,7 +15,7 @@ func Register(registries pipeline.Registries, assets *llm.AssetRegistry) error { if registries.Inputs == nil { return fmt.Errorf("seriatim registrar: input registry must not be nil") } - if err := seriatim.Register(registries.Inputs); err != nil { + if err := transcript.Register(registries.Inputs); err != nil { return fmt.Errorf("register transcript input: %w", err) } return nil