from pathlib import Path p=Path(r'd:/Projects/Dev/ThreatHunt/frontend/src/components/AUPScanner.tsx') t=p.read_text(encoding='utf-8') # default selection when hunt changes: first 3 datasets instead of all old=''' datasets.list(0, 500, selectedHuntId).then(res => { if (cancelled) return; setDsList(res.datasets); setSelectedDs(new Set(res.datasets.map(d => d.id))); }).catch(() => {}); ''' new=''' datasets.list(0, 500, selectedHuntId).then(res => { if (cancelled) return; setDsList(res.datasets); setSelectedDs(new Set(res.datasets.slice(0, 3).map(d => d.id))); }).catch(() => {}); ''' if old not in t: raise SystemExit('hunt-change dataset init block not found') t=t.replace(old,new) # insert dataset scope multi-select under hunt info anchor=''' {!selectedHuntId && ( All datasets will be scanned if no hunt is selected )} {/* Theme selector */} ''' insert=''' {!selectedHuntId && ( Select a hunt to enable scoped scanning )} Datasets {selectedHuntId && dsList.length > 0 && ( )} {/* Theme selector */} ''' if anchor not in t: raise SystemExit('dataset scope anchor not found') t=t.replace(anchor,insert) p.write_text(t,encoding='utf-8') print('added AUP dataset multi-select scoping and safer defaults')