Given a Jupyter notebook with a failing model integration, identify the bottleneck and propose a refactor.
Assume the notebook executes a sequence of cells represented as Python callables. Each cell may load data, preprocess it, or call the model integration. Return the index of the cell that is the bottleneck, defined as the cell with the highest repeated execution cost across a full notebook run, and describe the refactor that removes the repeated work.
A list of notebook cells, where each cell is a dictionary with fields name, cost, and repeated. cost is the execution cost of one run, and repeated is a boolean indicating whether the cell is executed more than once due to notebook structure.
Return a tuple (bottleneck_index, refactor_name).
def diagnose_bottleneck(cells):