#!/usr/bin/env python3
from pathlib import Path
import json,sys
P=Path(__file__).resolve().parents[1];t=(P/'script/script_mosquito_dark.txt').read_text().casefold()
groups={
 'female_blood':['muỗi cái','con cái'],
 'nectar':['mật hoa','nguồn đường'],
 'species_variation':['không phải mọi loài','tùy loài','mỗi loài'],
 'co2':['co₂','carbon dioxide'],
 'plume':['dải khí','luồng khí','plume'],
 'co2_receptors':['thụ thể','cơ quan cảm giác'],
 'skin_odor':['mùi da'],
 'microbiome':['vi sinh vật trên da','hệ vi sinh'],
 'volatile':['hợp chất bay hơi','phân tử mùi'],
 'heat':['nhiệt','ấm hơn'],
 'humidity':['độ ẩm','hơi nước'],
 'vision':['thị giác','độ tương phản'],
 'multimodal':['đa giác quan','nhiều tín hiệu'],
 'aedes':['aedes aegypti'],
 'not_sweet_blood':['máu ngọt'],
 'standing_water':['nước đọng'],
 'barriers':['màn','lưới'],
 'fan':['quạt'],
 'repellents':['deet','picaridin','icaridin','ir3535'],
 'ole_pmd':['ole','pmd'],
 'label_safety':['theo nhãn','đọc nhãn'],
 'child_application':['thoa cho trẻ','bôi cho trẻ','người lớn nên cho sản phẩm lên tay mình trước'],
 'permethrin':['permethrin'],
 'not_skin_permethrin':['không bôi trực tiếp lên da','không dùng trực tiếp trên da','permethrin dành cho vải không được bôi trực tiếp lên da'],
 'weak_hacks':['siêu âm','vitamin b','vòng tay'],
 'bite_care':['chườm mát','tránh gãi'],
 'allergy_red_flags':['khó thở','phù mặt'],
 'infection_red_flags':['sốt','phát ban','đau đầu dữ dội'],
 'medical_assessment':['đánh giá y tế','đi khám','trợ giúp y tế']
}
missing=[k for k,v in groups.items() if not any(x in t for x in v)]
out={'status':'PASS' if not missing else 'FAIL','missing':missing,'groups':len(groups)}
(P/'logs/script_semantic_gate.json').write_text(json.dumps(out,ensure_ascii=False,indent=2)+'\n');print(json.dumps(out,ensure_ascii=False));sys.exit(bool(missing))
