import json,pathlib,time,urllib.request
root=pathlib.Path(__file__).parent
rates=json.load(urllib.request.urlopen('https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json'))
model='gpt-5.4'
print(model,rates.get(model))
for v in rates.values():
 if isinstance(v,dict):
  for k in v:
   if 'cost_per_token' in k and isinstance(v[k],(int,float)): v[k]*=10
for side in ['base','head']:
 home=root/side; (home/'userdata').mkdir(parents=True,exist_ok=True)
 (home/'userdata/usage-model-rates.json').write_text(json.dumps({'fetchedAtMs':int(time.time()*1000)-7200000,'document':rates}))
 (home/'userdata/settings.json').write_text(json.dumps({'providerInstances':{'codex':{'driver':'codex','enabled':True,'config':{'homePath':str(root/'codex')}}}}))
sessions=root/'codex/sessions';sessions.mkdir(parents=True,exist_ok=True)
with (sessions/'synthetic.jsonl').open('w') as f:
 f.write(json.dumps({'type':'session_meta','payload':{'id':'synthetic-session','model_provider':'openai'}})+'\n')
 for i in range(400000):
  f.write(json.dumps({'type':'turn_context','payload':{'model':model,'turn_id':f'turn-{i}'}})+'\n')
  f.write(json.dumps({'type':'event_msg','timestamp':f'2026-11-14T08:{i//60%60:02}:{i%60:02}Z','payload':{'type':'token_count','info':{'last_token_usage':{'input_tokens':100+i%2,'output_tokens':10+i%2}}}})+'\n')
print('Seeded 400000 synthetic requests')
