Add merge references and retry config
This commit is contained in:
@@ -500,6 +500,9 @@ func TestRunExecutesChunksAndPassesChunkAndLLMClient(t *testing.T) {
|
||||
if len(normalizer.requests) != 1 || normalizer.requests[0].LLMClient == nil {
|
||||
t.Fatalf("normalizer LLM client = %#v, want client on normalize request", normalizer.requests)
|
||||
}
|
||||
if len(modules.mergers["merge"].requests) != 1 || modules.mergers["merge"].requests[0].LLMClient == nil {
|
||||
t.Fatalf("merger LLM client = %#v, want client on merge request", modules.mergers["merge"].requests)
|
||||
}
|
||||
if extractor.seenMetadata[0]["request"] != "test" {
|
||||
t.Fatalf("seen metadata = %#v, want request metadata", extractor.seenMetadata)
|
||||
}
|
||||
@@ -534,6 +537,7 @@ func TestRunPassesSourceInputAndSessionIDToPromptCapableStages(t *testing.T) {
|
||||
{name: "chunk", material: modules.chunker.requests[0].SourceInput, sessionID: modules.chunker.requests[0].SessionID},
|
||||
{name: "extract first", material: modules.extractors["extract-alpha"].requests[0].SourceInput, sessionID: modules.extractors["extract-alpha"].requests[0].SessionID},
|
||||
{name: "extract second", material: modules.extractors["extract-alpha"].requests[1].SourceInput, sessionID: modules.extractors["extract-alpha"].requests[1].SessionID},
|
||||
{name: "merge", material: modules.mergers["merge"].requests[0].SourceInput, sessionID: modules.mergers["merge"].requests[0].SessionID},
|
||||
{name: "normalize", material: modules.normalizers["normalize"].requests[0].SourceInput, sessionID: modules.normalizers["normalize"].requests[0].SessionID},
|
||||
}
|
||||
for _, req := range requests {
|
||||
@@ -688,6 +692,27 @@ func TestRunPassesLaneReferencesToExtractorRequests(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunPassesMergeReferencesToMergerRequest(t *testing.T) {
|
||||
modules := defaultRunnerModules()
|
||||
pipeline := resolvedPipeline()
|
||||
pipeline.ArtifactLanes[0].MergeReferences.ReferenceSet = testReferenceSet("merge_notes", "merge reference text")
|
||||
|
||||
_, err := New(newRunnerRegistries(t, modules)).Run(context.Background(), RunInput{Pipeline: pipeline})
|
||||
if err != nil {
|
||||
t.Fatalf("Run() error = %v, want nil", err)
|
||||
}
|
||||
|
||||
req := modules.mergers["merge"].requests[0]
|
||||
item := req.References.Slots["merge_notes"].Items[0]
|
||||
if string(item.Content) != "merge reference text" {
|
||||
t.Fatalf("merge reference content = %q, want merge reference text", item.Content)
|
||||
}
|
||||
item.Content[0] = 'M'
|
||||
if got := string(pipeline.ArtifactLanes[0].MergeReferences.ReferenceSet.Slots["merge_notes"].Items[0].Content); got != "merge reference text" {
|
||||
t.Fatalf("runner mutated merge reference set content = %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunPassesChunkReferencesToChunkerRequest(t *testing.T) {
|
||||
modules := defaultRunnerModules()
|
||||
pipeline := resolvedPipeline()
|
||||
@@ -984,6 +1009,24 @@ func TestRunManifestIncludesPipelineAndLaneDetails(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
resolved.ArtifactLanes[0].MergeReferences.ReferenceSet = contracts.ReferenceSet{
|
||||
Slots: map[string]contracts.ResolvedReferenceSlot{
|
||||
"merge_notes": {
|
||||
Slot: contracts.ReferenceSlot{Name: "merge_notes"},
|
||||
Items: []contracts.ReferenceItem{
|
||||
{
|
||||
SlotName: "merge_notes",
|
||||
MediaType: "text/plain; charset=utf-8",
|
||||
Content: []byte("merge reference content"),
|
||||
Digest: "sha256:merge-reference",
|
||||
Origin: contracts.ReferenceOrigin{Type: "file", URI: "file:///tmp/merge.txt"},
|
||||
SizeBytes: int64(len("merge reference content")),
|
||||
BindingSource: contracts.ReferenceBindingSourceConfig,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
resolved.ArtifactLanes[0].NormalizeReferences.ReferenceSet = contracts.ReferenceSet{
|
||||
Slots: map[string]contracts.ResolvedReferenceSlot{
|
||||
"normalization_notes": {
|
||||
@@ -1018,8 +1061,8 @@ func TestRunManifestIncludesPipelineAndLaneDetails(t *testing.T) {
|
||||
if !reflect.DeepEqual(manifest.SourceDigests, []string{"sha256:source"}) {
|
||||
t.Fatalf("SourceDigests = %#v, want source digest", manifest.SourceDigests)
|
||||
}
|
||||
if len(manifest.References) != 3 {
|
||||
t.Fatalf("References = %#v, want three reference provenance entries", manifest.References)
|
||||
if len(manifest.References) != 4 {
|
||||
t.Fatalf("References = %#v, want four reference provenance entries", manifest.References)
|
||||
}
|
||||
chunkReference := manifest.References[0]
|
||||
if chunkReference.Stage != string(StageChunk) || chunkReference.LaneID != "" || chunkReference.SlotName != "scene_guide" || chunkReference.Digest != "sha256:chunk-reference" {
|
||||
@@ -1035,7 +1078,11 @@ func TestRunManifestIncludesPipelineAndLaneDetails(t *testing.T) {
|
||||
if extractReference.OriginType != "file" || extractReference.OriginURI != "file:///tmp/roster.txt" || extractReference.MediaType != "text/plain; charset=utf-8" || extractReference.SizeBytes != int64(len("reference content")) || extractReference.BindingSource != contracts.ReferenceBindingSourceConfig {
|
||||
t.Fatalf("extract reference provenance = %#v, want origin/media/size/source", extractReference)
|
||||
}
|
||||
normalizeReference := manifest.References[2]
|
||||
mergeReference := manifest.References[2]
|
||||
if mergeReference.Stage != string(StageMerge) || mergeReference.LaneID != "alpha" || mergeReference.SlotName != "merge_notes" || mergeReference.Digest != "sha256:merge-reference" {
|
||||
t.Fatalf("merge reference provenance = %#v, want lane slot digest", mergeReference)
|
||||
}
|
||||
normalizeReference := manifest.References[3]
|
||||
if normalizeReference.Stage != string(StageNormalize) || normalizeReference.LaneID != "alpha" || normalizeReference.SlotName != "normalization_notes" || normalizeReference.Digest != "sha256:normalize-reference" {
|
||||
t.Fatalf("normalize reference provenance = %#v, want lane slot digest", normalizeReference)
|
||||
}
|
||||
@@ -1187,6 +1234,7 @@ func resolvedPipeline() ResolvedPipeline {
|
||||
Merge: Binding("merge"),
|
||||
Normalize: Binding("normalize"),
|
||||
ExtractReferences: referenceTarget(StageExtract, "alpha", "extract-alpha", nil),
|
||||
MergeReferences: referenceTarget(StageMerge, "alpha", "merge", nil),
|
||||
NormalizeReferences: referenceTarget(StageNormalize, "alpha", "normalize", nil),
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user