from pathlib import Path
import shutil,sys,json
root=Path('/home/lighthouse/esp32-dev/.cache/speech-playback-diagnostics-20261006')
line=next(x for x in (root/'firmware/build/CMakeCache.txt').read_text().splitlines() if x.startswith('SDKCONFIG:'))
p=Path(line.split('=',1)[1]);assert p.is_relative_to(root/'.cache/sdkconfig')
mode=sys.argv[1];assert mode in ('12','0')
if mode=='12':
 s=(root/'.cache/speech-diagnostics/sdkconfig-sack12-window64.private').read_text()
 assert '# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set' in s
 s=s.replace('# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set','CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y',1)
else:
 backup=root/'.cache/speech-diagnostics/sdkconfig-psram12.private';assert not backup.exists();shutil.copyfile(p,backup);backup.chmod(0o600)
 s=p.read_text();assert 'CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y' in s and 'CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=12' in s
 s=s.replace('CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=12','CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=0',1)
p.write_text(s)
print('PSRAM network profile prepared: SACK enabled, receive window 65535, OOSEQ '+mode+'; credentials not printed')
