Explorer
/proc/2012/task/2095/root/tmp/add_procurement_audit.py
← Zurück ↓ Download
from pathlib import Path
import shutil, time
APP=Path('/opt/struktur/projects-dashboard/app.py')
VAULT=Path('/opt/obsidian-vault/Agent-Solutions/Kundenprojekte')
text=APP.read_text(encoding='utf-8')
backup=APP.with_name('app.py.bak-procurement-audit-20260908')
if not backup.exists(): shutil.copy2(APP, backup)
project="""    {
        'id': 'procurement-savings-audit', 'name': 'Beschaffungs-Audit / Savings Finder', 'icon': '◎',
        'desc': 'Einstiegsangebot: Einkaufs- und Bestandsdaten prüfen, wirtschaftliche Hebel sichtbar machen und das passende Folgeprojekt ableiten.',
        'metrics': {'Aufbau': '8–20 h', 'Umsetzung': 'sehr schnell · Einstiegsangebot', 'Potenzial': '8,9/10', 'Konfidenz': 'mittel-hoch', 'Erlös': 'Audit 500–1.500 €'}, 'fields': {}
    },
"""
needle="    {\n        'id': 'inventory-replenishment-agent'"
if "'id': 'procurement-savings-audit'" not in text:
    text=text.replace(needle, project+needle, 1)
text=text.replace("    'inventory-replenishment-agent': 'Bestands-Nachbestell-Agent.md',", "    'procurement-savings-audit': 'Beschaffungs-Audit-Savings-Finder.md',\n    'inventory-replenishment-agent': 'Bestands-Nachbestell-Agent.md',", 1)
text=text.replace("'project_ids': ['inventory-replenishment-agent','supplier-risk-monitoring-agent','spend-cost-analysis-agent','rfq-offer-comparison-agent']", "'project_ids': ['procurement-savings-audit','inventory-replenishment-agent','supplier-risk-monitoring-agent','spend-cost-analysis-agent','rfq-offer-comparison-agent']", 1)
APP.write_text(text, encoding='utf-8')
print('APP_PATCHED', backup)