import json, os, pathlib, subprocess, time
root=pathlib.Path(__file__).parent
workspace=root/'Import demonstration'
workspace.mkdir(exist_ok=True)
(workspace/'README.md').write_text('Synthetic import demonstration\n')
subprocess.run(['git','init','-q',str(workspace)],check=True)
claude=root/'claude'
directory=claude/'projects'/'synthetic-project'
directory.mkdir(parents=True,exist_ok=True)
sid='c72b94aa-b3e5-4a38-9120-ec1b19566295'
from datetime import datetime,timezone
now=time.time()
with (directory/(sid+'.jsonl')).open('w') as f:
 for i in range(1200):
  role='user' if i%2==0 else 'assistant'
  text='FIRST PROMPT: Review the synthetic project.' if i==0 else 'LATEST REPLY: The synthetic project review is complete.' if i==1199 else f'Earlier conversation {i}: '+('Synthetic historical discussion. '*1200) if i<1000 else f'Recent conversation {i}: Review progress recorded.'
  f.write(json.dumps(dict(type=role,sessionId=sid,cwd=str(workspace),uuid=f'message-{i}',timestamp=datetime.fromtimestamp(now-(1200-i),timezone.utc).isoformat(),message=dict(role=role,content=text))))
  f.write('\n')
 f.write(json.dumps(dict(type='custom-title',sessionId=sid,customTitle='Long Claude import demonstration'))+'\n')
for side in ['head','base']:
 home=root/side
 (home/'userdata').mkdir(parents=True,exist_ok=True)
 (home/'bin').mkdir(exist_ok=True)
 shim=home/'bin'/'hostnamectl'
 shim.write_text('#!/bin/sh\necho "Import demonstration"\n'); shim.chmod(0o755)
 no=home/'bin'/'no-agent'
 no.write_text('#!/bin/sh\nif [ "$1" = "--version" ]; then echo "1.0.0"; exit 0; fi\nexit 1\n'); no.chmod(0o755)
 providers={driver:dict(driver=driver,enabled=False) for driver in ['codex','claudeAgent','cursor','grok','muse','pi','opencode','antigravity']}
 providers['claudeAgent']=dict(driver='claudeAgent',enabled=True,config=dict(binaryPath=str(no),homePath=str(claude)))
 (home/'userdata'/'settings.json').write_text(json.dumps(dict(defaultModelSelection=dict(instanceId='devReplay',model='showcase'),providerInstances=providers)))
print('Synthetic fixture: 1200 conversation messages; 200 retained; 1000 omitted; bytes:',(directory/(sid+'.jsonl')).stat().st_size)
