"""「꺼져 일순간 어두워진」을 **출력에 처음 쓴** span 을 찾는다."""
import json, re, sys, datetime as dt
sys.path.insert(0,"/Users/manta/Documents/Projects/TheRoad-I1/scratchpad")
from _opik_env import opik_target
from tools.opik_prompt_audit.audit.fetch import fetch_spans
B,W,P=opik_target()
NEEDLES=["꺼져 일순간","일순간 어두워진","꺼진 중앙 형광등","정전된 밤"]
def txt(v):
    return "" if v is None else (v if isinstance(v,str) else json.dumps(v,ensure_ascii=False))
hits=[]
for x in fetch_spans(B,W,P,"2026-08-24T00:00:00","2026-08-26T00:00:00"):
    o=txt(x.get("output")); i=txt(x.get("input"))
    for nd in NEEDLES:
        if nd in o:
            step=next((t[3:] for t in (x.get("tags") or []) if t.startswith("op:")), x.get("name","?"))
            hits.append((x["start_time"], step, nd, nd in i))
hits.sort()
print(f"{'시각(KST)':<20}{'스텝':<28}{'문구':<18}입력에도 있나")
for ts,step,nd,in_in in hits:
    k=(dt.datetime.fromisoformat(ts.replace("Z","+00:00"))+dt.timedelta(hours=9)).strftime("%m-%d %H:%M:%S")
    print(f"{k:<20}{step:<28}{nd:<18}{'있음(물려받음)' if in_in else '★없음 — 여기서 생김'}")
