52 lines
1.9 KiB
Go
52 lines
1.9 KiB
Go
// Package chunkmap owns the durable accepted source chunk-map contract.
|
|
package chunkmap
|
|
|
|
import (
|
|
"gitea.maximumdirect.net/eric/notarius/internal/core/source"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/contracts"
|
|
)
|
|
|
|
const (
|
|
ArtifactKind contracts.ArtifactKind = "source/chunk-map"
|
|
SchemaID = "notarius.source.chunk_map"
|
|
SchemaName = "notarius_source_chunk_map_v1"
|
|
SchemaVersion = "v1"
|
|
MediaType = "application/json"
|
|
)
|
|
|
|
// ChunkMap is the durable representation of one accepted materialized chunk plan.
|
|
type ChunkMap struct {
|
|
SourceID string `json:"source_id"`
|
|
SourceDigest string `json:"source_digest"`
|
|
PlanDigest string `json:"plan_digest"`
|
|
RequestedChunker string `json:"requested_chunker"`
|
|
Producer Producer `json:"producer"`
|
|
PlanAnnotations source.ChunkAnnotations `json:"plan_annotations"`
|
|
Chunks []Chunk `json:"chunks"`
|
|
}
|
|
|
|
// Producer identifies the component that produced the accepted logical plan.
|
|
type Producer struct {
|
|
InputModule string `json:"input_module"`
|
|
ChunkModule string `json:"chunk_module"`
|
|
LLMProfile string `json:"llm_profile,omitempty"`
|
|
}
|
|
|
|
// Chunk describes one accepted materialized range without source content.
|
|
type Chunk struct {
|
|
ID string `json:"id"`
|
|
Index int `json:"index"`
|
|
SourceRef source.SourceRef `json:"source_ref"`
|
|
UnitCount int `json:"unit_count"`
|
|
Annotations source.ChunkAnnotations `json:"annotations"`
|
|
}
|
|
|
|
// BuildRequest supplies the accepted runtime state used to build a chunk map.
|
|
type BuildRequest struct {
|
|
Source *source.SourceDocument
|
|
Plan source.ChunkPlan
|
|
Chunks []source.Chunk
|
|
RequestedChunker string
|
|
Producer Producer
|
|
}
|