# Kosmos Storage Audit Dieses Verzeichnis enthaelt einen ersten Modul-Prototypen fuer die Analyse von Medienreferenzen und riskanten Ablageorten in FoundryVTT. ## Foundry Manifest - Manifest-URL: - `https://gitea.kosmos.ac/kosmos/kosmos-storage-audit/raw/branch/main/module.json` - Download-URL: - `https://gitea.kosmos.ac/kosmos/kosmos-storage-audit/archive/main.zip` ## Ausrichtung - Das Zielprodukt ist ein online nutzbares Foundry-Modul. - Die Kernlogik unter `scripts/core/` ist bewusst runtime-neutral gehalten. - `scripts/adapters/foundry-runtime.js` bindet die Kernlogik an die laufende Foundry-Instanz. - `tools/offline-analyze.mjs` ist nur ein Entwicklungs-Harness, um Parser und Matching lokal gegen eine gestoppte Instanz zu pruefen. ## Erste Kernbausteine - `path-utils.js` - Normalisierung auf `data:` und `public:` inklusive URL-Decoding und Unicode-Normalisierung - `reference-extractor.js` - rekursive String- und Attribut-Extraktion aus JSON/Objekten inklusive Wildcard-Erkennung - `finding-engine.js` - Klassifizierung von Broken References, Orphans und Fremdverweisen mit Wildcard-Matching - `analyzer.js` - Orchestrierung von Dateien, Quellen und Findings - `audit-report-app.js` - Foundry-UI mit Fortschrittsanzeige, gruppierter Arbeitsansicht, JSON-Export und lokalisierter Oberfläche ## Wichtige Heuristik - Bei mehreren Welten versucht das Tool nicht, globale "echte Orphans" im gesamten `data`-Root zu behaupten. - Orphans werden nur in klar eingrenzbaren Bereichen gemeldet: - weltlokale Bereiche - explizit riskante Paket-`storage`-Ordner - nicht offensichtliche `public`-Bereiche - Weltverweise auf Modul- oder Systemassets gelten nicht pauschal als Problem. - Sie werden erst dann hochgezogen, wenn das Zielasset im owning Paket selbst nicht sichtbar referenziert ist. - Wildcard-Pfade wie `Ork*_Token.webp` werden nicht als kaputt markiert, solange mindestens eine passende Datei im gescannten Root existiert. - Dieselben Wildcard-Referenzen zaehlen auch als eingehende Referenz fuer passende Dateien und verhindern damit false-positive `orphan-file`-Treffer. - URL-encodierte oder unterschiedlich normalisierte Umlaute sollen auf dieselbe kanonische Pfadform zusammengefuehrt werden. - Die UI unterstuetzt konsistent Deutsch und Englisch ueber Foundry-Sprachdateien. ## Noch offen - bessere Laufzeitabdeckung fuer Welteinstellungen und weitere Referenzquellen - optional zusaetzliche Exportformate neben JSON - Aktionen zum sicheren Verschieben oder Migrieren