"""Export only LoRA labels/triggers; invoked by the host's catalog change watcher.""" import json import os import sys from pathlib import Path def export(source, destination): catalog = json.loads(Path(source).read_text()) result = {key: {name: value for name, value in catalog.get(key, {}).items() if isinstance(value, str)} for key in ('loraAliases', 'loraTriggers')} target = Path(destination) content = json.dumps(result, ensure_ascii=False) if target.exists() and target.read_text() == content: return target.parent.mkdir(parents=True, exist_ok=True) temporary = target.with_suffix('.tmp') temporary.write_text(content) os.chmod(temporary, 0o644) temporary.replace(target) if __name__ == '__main__': export(*sys.argv[1:])