# Mutants for the REFUSAL_STATUS test (Darkwing's R2 notes). Run from a full # scratch copy of the checkout (/tmp/dewey-chat02/scratch-board), never the served tree. import subprocess M=[("unavailable becomes 422","packages/control-board/src/serve.mjs"," unavailable: 404,\n"," unavailable: 422,\n"), ("new refusal in parts.mjs","packages/conversation/src/parts.mjs","export ",'const _probe = () => new Refusal("probe-code", "x");\nexport ')] for n,f,a,b in M: o=open(f).read(); assert a in o,n open(f,"w").write(o.replace(a,b,1)) r=subprocess.run(["node","--test","--test-name-pattern=every refusal code","tests/serve.test.mjs"],cwd="packages/control-board",capture_output=True,text=True,timeout=600) print(("CAUGHT " if r.returncode else "MISSED ")+n) open(f,"w").write(o)