Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
37 lines
2.1 KiB
Python
37 lines
2.1 KiB
Python
"""Per-case production replay (baseline variant) on v5, current staging code."""
|
|
import json, sys, time, traceback
|
|
from pathlib import Path
|
|
WT = Path('/workspace/Jyotisha/.worktrees/karaka-interval-20261016')
|
|
sys.path.insert(0, str(WT)); sys.path.insert(0, str(WT/'scripts'))
|
|
from scripts.research import cluster_width_probe as cwp
|
|
HOLD = WT/'references/real_case_calibration/minute_rectification_holdout_v5.json'
|
|
cases = json.loads(HOLD.read_text())['cases']
|
|
radii = [int(r) for r in (sys.argv[1] if len(sys.argv)>1 else '10,30,60').split(',')]
|
|
out = []
|
|
variant = cwp.Variant('baseline')
|
|
t0=time.time()
|
|
for case in cases:
|
|
cid = case['case_id']; true_time = str(case['birth']['time'])[:5]
|
|
for radius in radii:
|
|
try:
|
|
request = cwp.scoring_request_for(case, radius)
|
|
built = cwp.build_event_contribution_matrix(request)
|
|
rows = cwp.score_from_matrix(request, built)
|
|
contexts = list(built.get('static_contexts') or [])
|
|
window_times = [str(r['time'])[:5] for r in rows]
|
|
raw = cwp.raw_signature_clusters(contexts)
|
|
probes = cwp.discriminating_event_probes({**request,'refresh_probes':False}, built,
|
|
scan=cwp.window_scan(built), candidate_times=list(window_times),
|
|
representative_time=true_time, today=cwp.TODAY)
|
|
s = cwp.score_variant(raw_clusters=raw, rows=rows, variant=variant, true_time=true_time,
|
|
window_times=window_times, probes=probes)
|
|
r = s['replay']
|
|
out.append({'case_id':cid,'radius':radius,'true':true_time,
|
|
'engine':{k:s['engine'][k] for k in ('top1_hit','coverage','width')},
|
|
'replay':{k:r.get(k) for k in ('top1_hit','coverage','width','asked','eliminated_count','union_alive_width')}})
|
|
except Exception as e:
|
|
out.append({'case_id':cid,'radius':radius,'error':f'{type(e).__name__}: {e}','trace':traceback.format_exc()[-800:]})
|
|
print(cid, round(time.time()-t0), flush=True)
|
|
Path('prod_per_case.json').write_text(json.dumps(out, ensure_ascii=False, indent=1))
|
|
print('DONE')
|