Expand module contracts for references and normalizer LLM access
This commit is contained in:
@@ -20,20 +20,21 @@ A production module package should provide:
|
||||
Module specs should describe capabilities accurately. Resolution uses specs to
|
||||
reject incompatible pipelines before execution.
|
||||
|
||||
Extractor modules that accept auxiliary reference material must declare slots
|
||||
through both `ReferenceSlots()` and `ModuleSpec().ReferenceSlots`. The runtime
|
||||
slot list and registry metadata should match so config validation can inspect
|
||||
slots without constructing extractor instances. A slot declaration names the
|
||||
slot, whether it is required, accepted media types, whether multiple items are
|
||||
allowed, and any byte limit. Empty `AcceptedMediaTypes` means any inferred
|
||||
media type is accepted, though the file must still be UTF-8 text. When a slot
|
||||
declares accepted media types, Notarius compares the canonical base media type
|
||||
inferred from the file extension, case-insensitively and without parameters.
|
||||
Chunk, extract, and normalize modules that accept auxiliary reference material
|
||||
must declare slots through both `ReferenceSlots()` and
|
||||
`ModuleSpec().ReferenceSlots`. The runtime slot list and registry metadata
|
||||
should match so config validation can inspect slots without constructing module
|
||||
instances. A slot declaration names the slot, whether it is required, accepted
|
||||
media types, whether multiple items are allowed, and any byte limit. Empty
|
||||
`AcceptedMediaTypes` means any inferred media type is accepted, though the file
|
||||
must still be UTF-8 text. When a slot declares accepted media types, Notarius
|
||||
compares the canonical base media type inferred from the file extension,
|
||||
case-insensitively and without parameters.
|
||||
|
||||
Reference content is delivered only to the lane extractor through
|
||||
`contracts.ExtractionRequest.References`. It is not source evidence and must not
|
||||
be converted into `SourceRef` values. If a module prompt uses references, load
|
||||
the prompt bundle with the same declared slots and render with
|
||||
The current resolver materializes reference content only for lane extractors
|
||||
through `contracts.ExtractionRequest.References`. It is not source evidence and
|
||||
must not be converted into `SourceRef` values. If a module prompt uses
|
||||
references, load the prompt bundle with the same declared slots and render with
|
||||
`RenderUserSystemWithReferences`. Prompt templates may use the `reference`
|
||||
function for content and the `hasreference` function for conditional sections.
|
||||
Prompt metadata hashes remain based on template source, not rendered reference
|
||||
@@ -44,6 +45,9 @@ when they need model-backed chunking. The pipeline runner validates generic
|
||||
chunk result invariants before extraction; module-owned policies may be stricter
|
||||
but must stay within the module package.
|
||||
|
||||
Normalize modules receive the structured LLM client through
|
||||
`contracts.NormalizeRequest` when they need model-backed reconciliation.
|
||||
|
||||
## `seriatim` Input
|
||||
|
||||
Package: `internal/modules/input/seriatim`
|
||||
|
||||
Reference in New Issue
Block a user