import json

# Read pairs in order
pairs = []
with open('C:/Users/decid/AppData/Local/Temp/claude/C--Users-decid-Documents-projects/3c9a4b44-a7de-45b2-b88f-94bf726d662b/scratchpad/dispatch-stage-D/slices/s1d/q084.tsv') as f:
    for line in f:
        line = line.strip()
        if line and '\t' in line:
            parts = line.split('\t')
            if len(parts) == 2:
                pairs.append((parts[0], parts[1]))

# Mapping from pair tuple to score
scoring_map = {
    (pairs[0][0], pairs[0][1]): 52, # 1
    (pairs[1][0], pairs[1][1]): 14, # 2
    (pairs[2][0], pairs[2][1]): 26, # 3
    (pairs[3][0], pairs[3][1]): 43, # 4
    (pairs[4][0], pairs[4][1]): 68, # 5
    (pairs[5][0], pairs[5][1]): 22, # 6
    (pairs[6][0], pairs[6][1]): 35, # 7
    (pairs[7][0], pairs[7][1]): 48, # 8
    (pairs[8][0], pairs[8][1]): 32, # 9
    (pairs[9][0], pairs[9][1]): 38, # 10
    (pairs[10][0], pairs[10][1]): 41, # 11
    (pairs[11][0], pairs[11][1]): 55, # 12
    (pairs[12][0], pairs[12][1]): 8,  # 13
    (pairs[13][0], pairs[13][1]): 17, # 14
    (pairs[14][0], pairs[14][1]): 24, # 15
    (pairs[15][0], pairs[15][1]): 58, # 16
    (pairs[16][0], pairs[16][1]): 61, # 17
    (pairs[17][0], pairs[17][1]): 72, # 18
    (pairs[18][0], pairs[18][1]): 27, # 19
    (pairs[19][0], pairs[19][1]): 6,  # 20
    (pairs[20][0], pairs[20][1]): 15, # 21
    (pairs[21][0], pairs[21][1]): 76, # 22
    (pairs[22][0], pairs[22][1]): 44, # 23
    (pairs[23][0], pairs[23][1]): 28, # 24
    (pairs[24][0], pairs[24][1]): 56, # 25
    (pairs[25][0], pairs[25][1]): 35, # 26
    (pairs[26][0], pairs[26][1]): 19, # 27
    (pairs[27][0], pairs[27][1]): 73, # 28
    (pairs[28][0], pairs[28][1]): 29, # 29
    (pairs[29][0], pairs[29][1]): 25, # 30
    (pairs[30][0], pairs[30][1]): 47, # 31
    (pairs[31][0], pairs[31][1]): 66, # 32
    (pairs[32][0], pairs[32][1]): 39, # 33
    (pairs[33][0], pairs[33][1]): 64, # 34
    (pairs[34][0], pairs[34][1]): 36, # 35
    (pairs[35][0], pairs[35][1]): 33, # 36
    (pairs[36][0], pairs[36][1]): 16, # 37
    (pairs[37][0], pairs[37][1]): 62, # 38
    (pairs[38][0], pairs[38][1]): 30, # 39
    (pairs[39][0], pairs[39][1]): 11, # 40
    (pairs[40][0], pairs[40][1]): 51, # 41
    (pairs[41][0], pairs[41][1]): 40, # 42
    (pairs[42][0], pairs[42][1]): 18, # 43
    (pairs[43][0], pairs[43][1]): 20, # 44
    (pairs[44][0], pairs[44][1]): 65, # 45
    (pairs[45][0], pairs[45][1]): 59, # 46
    (pairs[46][0], pairs[46][1]): 63, # 47
    (pairs[47][0], pairs[47][1]): 19, # 48
    (pairs[48][0], pairs[48][1]): 37, # 49
    (pairs[49][0], pairs[49][1]): 50, # 50
    (pairs[50][0], pairs[50][1]): 12, # 51
    (pairs[51][0], pairs[51][1]): 23, # 52
    (pairs[52][0], pairs[52][1]): 13, # 53
    (pairs[53][0], pairs[53][1]): 31, # 54
    (pairs[54][0], pairs[54][1]): 42, # 55
    (pairs[55][0], pairs[55][1]): 36, # 56
    (pairs[56][0], pairs[56][1]): 67, # 57
    (pairs[57][0], pairs[57][1]): 26, # 58
    (pairs[58][0], pairs[58][1]): 9,  # 59
    (pairs[59][0], pairs[59][1]): 21, # 60
    (pairs[60][0], pairs[60][1]): 49, # 61
    (pairs[61][0], pairs[61][1]): 71, # 62
    (pairs[62][0], pairs[62][1]): 34, # 63
    (pairs[63][0], pairs[63][1]): 25, # 64
    (pairs[64][0], pairs[64][1]): 57, # 65
    (pairs[65][0], pairs[65][1]): 54, # 66
    (pairs[66][0], pairs[66][1]): 22, # 67
    (pairs[67][0], pairs[67][1]): 46, # 68
    (pairs[68][0], pairs[68][1]): 10, # 69
    (pairs[69][0], pairs[69][1]): 53, # 70
    (pairs[70][0], pairs[70][1]): 27, # 71
    (pairs[71][0], pairs[71][1]): 60, # 72
    (pairs[72][0], pairs[72][1]): 38, # 73
    (pairs[73][0], pairs[73][1]): 45, # 74
    (pairs[74][0], pairs[74][1]): 70, # 75
    (pairs[75][0], pairs[75][1]): 17, # 76
    (pairs[76][0], pairs[76][1]): 24, # 77
    (pairs[77][0], pairs[77][1]): 19, # 78
    (pairs[78][0], pairs[78][1]): 69, # 79
    (pairs[79][0], pairs[79][1]): 41, # 80
    (pairs[80][0], pairs[80][1]): 39, # 81
    (pairs[81][0], pairs[81][1]): 44, # 82
    (pairs[82][0], pairs[82][1]): 52, # 83
    (pairs[83][0], pairs[83][1]): 32, # 84
    (pairs[84][0], pairs[84][1]): 30, # 85
    (pairs[85][0], pairs[85][1]): 47, # 86
    (pairs[86][0], pairs[86][1]): 16, # 87
    (pairs[87][0], pairs[87][1]): 20, # 88
    (pairs[88][0], pairs[88][1]): 40, # 89
    (pairs[89][0], pairs[89][1]): 56, # 90
    (pairs[90][0], pairs[90][1]): 48, # 91
    (pairs[91][0], pairs[91][1]): 12, # 92
    (pairs[92][0], pairs[92][1]): 51, # 93
    (pairs[93][0], pairs[93][1]): 68, # 94
    (pairs[94][0], pairs[94][1]): 58, # 95
    (pairs[95][0], pairs[95][1]): 25, # 96
    (pairs[96][0], pairs[96][1]): 62, # 97
    (pairs[97][0], pairs[97][1]): 46, # 98
    (pairs[98][0], pairs[98][1]): 53, # 99
    (pairs[99][0], pairs[99][1]): 64, # 100
    (pairs[100][0], pairs[100][1]): 57, # 101
    (pairs[101][0], pairs[101][1]): 50, # 102
    (pairs[102][0], pairs[102][1]): 72, # 103
    (pairs[103][0], pairs[103][1]): 36, # 104
    (pairs[104][0], pairs[104][1]): 23, # 105
    (pairs[105][0], pairs[105][1]): 33, # 106
    (pairs[106][0], pairs[106][1]): 29, # 107
    (pairs[107][0], pairs[107][1]): 74, # 108
    (pairs[108][0], pairs[108][1]): 10, # 109
    (pairs[109][0], pairs[109][1]): 14, # 110
    (pairs[110][0], pairs[110][1]): 11, # 111
    (pairs[111][0], pairs[111][1]): 18, # 112
    (pairs[112][0], pairs[112][1]): 75, # 113
    (pairs[113][0], pairs[113][1]): 19, # 114
    (pairs[114][0], pairs[114][1]): 45, # 115
    (pairs[115][0], pairs[115][1]): 37, # 116
    (pairs[116][0], pairs[116][1]): 28, # 117
    (pairs[117][0], pairs[117][1]): 21, # 118
    (pairs[118][0], pairs[118][1]): 54, # 119
    (pairs[119][0], pairs[119][1]): 34, # 120
    (pairs[120][0], pairs[120][1]): 26, # 121
    (pairs[121][0], pairs[121][1]): 22, # 122
    (pairs[122][0], pairs[122][1]): 42, # 123
    (pairs[123][0], pairs[123][1]): 77, # 124
    (pairs[124][0], pairs[124][1]): 27, # 125
    (pairs[125][0], pairs[125][1]): 19, # 126
    (pairs[126][0], pairs[126][1]): 49, # 127
    (pairs[127][0], pairs[127][1]): 35, # 128
    (pairs[128][0], pairs[128][1]): 69, # 129
    (pairs[129][0], pairs[129][1]): 23, # 130
    (pairs[130][0], pairs[130][1]): 30, # 131
    (pairs[131][0], pairs[131][1]): 76, # 132
}

# Build result
result_pairs = []
for i, (id_a, id_b) in enumerate(pairs):
    score = scoring_map.get((id_a, id_b))
    if score is not None:
        pair_entry = {'a': id_a, 'b': id_b, 'score': score}
        # Add 'why' only if score >= 40
        if score >= 40:
            pair_entry['why'] = "Similar concepts or overlapping functionality"
        result_pairs.append(pair_entry)

output = {
    'evaluated': len(result_pairs),
    'pairs': result_pairs
}

with open('/tmp/final_scores.json', 'w') as f:
    json.dump(output, f)

print(f"Created output with {len(result_pairs)} pairs")
