# Proxy mutants for the WebUI conversation routes. Run from a scratch copy of # packages/webui (never the served tree): /tmp/dewey-chat02/scratch-board/packages/webui import subprocess f="src/serve.mjs"; orig=open(f).read() M=[("query dropped","upstream + path + (conversation ? search : '')","upstream + path"), ("query sent on every route","upstream + path + (conversation ? search : '')","upstream + path + search"), ("conversation routes not proxied","const allowed = path === '/api/board' || conversation ? 'GET'","const allowed = path === '/api/board' ? 'GET'"), ("conversation routes accept POST","const allowed = path === '/api/board' || conversation ? 'GET'","const allowed = path === '/api/board' ? 'GET' : conversation ? req.method")] for n,a,b in M: assert orig.count(a)==1,n open(f,"w").write(orig.replace(a,b)) r=subprocess.run(["node","--test","tests/serve.test.mjs"],capture_output=True,text=True,timeout=300) print(("CAUGHT " if r.returncode else "MISSED ")+n) open(f,"w").write(orig)