package promptcompiler

func cloneRenderedPromptPayload(input RenderedPromptPayload) RenderedPromptPayload {
	output := input
	if input.Slots != nil {
		output.Slots = make(map[string]any, len(input.Slots))
		for key, value := range input.Slots {
			output.Slots[key] = value
		}
	}
	output.RenderOrder = append([]string(nil), input.RenderOrder...)
	output.AttributionBlocks = append([]PromptBlock(nil), input.AttributionBlocks...)
	return output
}
