Explorer
/proc/121/root/tmp/aa051_patch.py
← Zurück ↓ Download
from pathlib import Path
repls={
'/opt/struktur/social-media-radar/content_director.py':(
'''    relevance = assess_mas_relevance(" ".join(str(sig.get(k) or "") for k in ("topic", "short_summary", "source_name")), fields={k: sig.get(k) for k in ("topic", "short_summary", "source_name", "source_url", "signal_category")})''',
'''    # Fachliche Relevanz darf ausschließlich aus dem Signalinhalt stammen.
    # Quelle, Suchphrase und Provenienz sind keine Evidenz.
    relevance = assess_mas_relevance(
        "",
        fields={"topic": sig.get("topic"), "short_summary": sig.get("short_summary")},
    )'''),
'/opt/struktur/social-media-agent/publish_ready.py':(
'''def _persist(signal: dict, fb: str, li: str, topic: str, cta: str, assessment: Assessment, media_refs: list[str]) -> dict:
    con = sqlite3.connect(CASES_DB)''',
'''def _persist(signal: dict, fb: str, li: str, topic: str, cta: str, assessment: Assessment, media_refs: list[str]) -> dict:
    # Letzte Schreibsperre direkt vor jeder Package-/Draft-Persistenz.
    if not signal.get("evergreen"):
        eligible, reason = _relevance_gate(signal)
        if not eligible:
            raise ValueError("MAS-Content-Gate blockiert: " + reason)
    con = sqlite3.connect(CASES_DB)'''),
}
for fn,(old,new) in repls.items():
 p=Path(fn); s=p.read_text()
 if old not in s: raise SystemExit(f'pattern missing: {fn}')
 p.write_text(s.replace(old,new,1))
# Insert helper before get_packages
p=Path('/opt/struktur/social-media-agent/publish_ready.py'); s=p.read_text()
marker='\ndef get_packages(*, package_status: str | None = None, limit: int = 100) -> list[dict]:\n'
helper='''\ndef _relevance_gate(signal: dict) -> tuple[bool, str]:
    """Kanonischer, fail-closed Gate für persistierte MAS-Signale."""
    sys.path.insert(0, str(RADAR_DIR))
    from mas_relevance import content_eligibility
    return content_eligibility(signal)

'''
if marker not in s: raise SystemExit('get_packages marker missing')
p.write_text(s.replace(marker,'\n'+helper+'def get_packages(*, package_status: str | None = None, limit: int = 100) -> list[dict]:\n',1))