from pathlib import Path
import json,re,sys
root=Path('/home/lighthouse/esp32-dev/.cache/speech-playback-diagnostics-20261006')
p=root/'firmware/main/cloud_client.cpp';s=p.read_text()
if 'DIAG_LAN_CA' not in s:
 s=s.replace('#include "../../.cache/lan_config.h"','#include "../../.cache/speech-diagnostics/lan_ca.h"\n#include "../../.cache/lan_config.h"',1)
 s=s.replace('config.crt_bundle_attach = esp_crt_bundle_attach;','config.cert_pem = DIAG_LAN_CA;',1)
 p.write_text(s)
p=root/'.cache/lan_config.h'
s=(root/'.cache/lan_config.home-network.h').read_text()
token=json.loads((root/'.cache/diagnostic-auth.json').read_text())['token']
mode=sys.argv[1];assert mode in ('ws','wss')
url=mode+'://192.168.2.85:'+('18767' if mode=='wss' else '18765')+'/device/ws'
for key,value in [('CONFIG_DEVICE_LAB_CLOUD_WS_URL',url),('CONFIG_DEVICE_LAB_DEVICE_TOKEN',token)]:
 s,count=re.subn(r'(#define '+key+r' )"[^"\n]*"',lambda m:m[1]+json.dumps(value),s)
 assert count==1
p.write_text(s);p.chmod(0o600)
p=root/'firmware/main/net_trace.cpp';s=p.read_text().replace('dump_after_ms=115000','dump_after_ms=45000').replace('timer,115000000','timer,45000000');p.write_text(s)
print('LAN '+mode+' profile prepared; certificate verification preserved; credentials not printed')
