p="post_draft.py"
src=open(p).read()
old='def _clean_cta(value: str | None, signal: dict) -> str:\n """Turn internal action tokens into one public CTA kept outside body_text."""\n raw = _public_brand_text(value or "")\n cat = _category(signal)'
new='def _clean_cta(value: str | None, signal: dict, topic_focus: str | None = None) -> str:\n """Turn internal action tokens into one public CTA kept outside body_text."""\n raw = _public_brand_text(value or "")\n cat = _effective_category(signal, topic_focus)'
assert old in src
src2=src.replace(old,new,1)
old2=' cta_text = _clean_cta(candidate.get("suggested_cta"), candidate)'
new2=' cta_text = _clean_cta(candidate.get("suggested_cta"), candidate, topic_focus)'
assert old2 in src2
src2=src2.replace(old2,new2,1)
open(p,"w").write(src2)
print("post_draft CTA patched OK")