#!/usr/bin/env python3
from pathlib import Path
import json,sys
P=Path(__file__).resolve().parents[1];t=(P/'script/script_airplane_ear.txt').read_text().casefold()
groups={
 'cabin_pressure':['áp suất cabin','áp suất trong cabin'],
 'ear_compartments':['tai ngoài','tai giữa'],
 'eardrum':['màng nhĩ'],
 'eustachian':['vòi eustachian','ống eustachian'],
 'nasopharynx':['mũi họng','nasopharynx'],
 'pressure_difference':['chênh lệch áp suất','chênh áp'],
 'swallow_yawn':['nuốt','ngáp'],
 'tensor':['tensor veli palatini','cơ căng màn hầu'],
 'boyle':['boyle'],
 'ascent_descent':['cất cánh','hạ cánh'],
 'barotrauma':['barotrauma','chấn thương áp suất'],
 'valsalva':['valsalva'],
 'toynbee':['toynbee'],
 'gentle_warning':['không thổi quá mạnh','nhẹ nhàng','thổi ra rất nhẹ','không nên rặn mạnh'],
 'congestion':['nghẹt mũi','cảm lạnh'],
 'red_flags':['chảy máu','chóng mặt'],
 'medical_assessment':['đi khám','đánh giá y tế']}
exact=['bluestone','edmonds']
missing=[k for k,v in groups.items() if not any(x in t for x in v)]+[x for x in exact if x not in t]
out={'status':'PASS' if not missing else 'FAIL','missing':missing,'groups':len(groups)+len(exact)};(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))
