#!/usr/bin/env python3
"""Start one fresh isolated dev environment, retaining its spawned process-group PID."""
import json,os,pathlib,subprocess,sys,time
root=pathlib.Path('/tmp/lead-33105-r1/evidence-capture-1')
wt,label,host,instance,settings=sys.argv[1:]
d=root/(label+'-'+time.strftime('%Y%m%dT%H%M%SZ',time.gmtime()));d.mkdir();(d/'claude-home').mkdir();(d/'project').mkdir()
(d/'claude-home/settings.json').write_text(settings)
sha=subprocess.check_output(['git','rev-parse','HEAD'],cwd=wt,text=True).strip()
ver=subprocess.check_output(['claude','--version'],text=True).strip()
(d/'capture-context.json').write_text(json.dumps({'runDir':str(d),'fixture':label,'commit':sha,'claudeVersion':ver,'instanceValue':None if instance=='U' else instance,'realClaude':subprocess.check_output(['which','claude'],text=True).strip(),'stopAfterInit':True,'hostArtifact':host,'worktree':wt}))
env=os.environ.copy()
for k in list(env):
 if k.startswith(('CLAUDE','ANTHROPIC')) or k in ['T3CODE_HOME','VITE_HTTP_URL','VITE_WS_URL']:env.pop(k)
env.update(T3CODE_DEV_SEED='0',T3CODE_DEV_AUTH_TOKEN=os.environ['EVIDENCE_DEV_TOKEN'],CLAUDE_CONFIG_DIR=str(d/'claude-home'),ANTHROPIC_API_KEY='synthetic-no-access',ANTHROPIC_BASE_URL='http://127.0.0.1:9')
if host in ['0','1']:env['CLAUDE_CODE_ARTIFACT']=host
if host=='lowercase':env['claude_code_artifact']='1'
p=subprocess.Popen(['vp','run','dev','--home-dir',str(d/'t3-home')],cwd=wt,env=env,stdout=open(d/'server.log','w'),stderr=subprocess.STDOUT,start_new_session=True)
(d/'server.pid').write_text(str(p.pid));print(json.dumps({'runDir':str(d),'serverPid':p.pid}),flush=True)
