@cldmv/slothlet 3.7.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +6 -5
  2. package/REFERENCE.md +2 -0
  3. package/dist/lib/builders/api_builder.mjs +1 -1
  4. package/dist/lib/builders/modes-processor.mjs +1 -1
  5. package/dist/lib/handlers/api-manager.mjs +1 -1
  6. package/dist/lib/handlers/module-manager.mjs +17 -0
  7. package/dist/lib/helpers/config.mjs +1 -1
  8. package/dist/lib/helpers/eventemitter-context.mjs +1 -1
  9. package/dist/lib/helpers/generate-manifest.mjs +17 -0
  10. package/dist/lib/helpers/manifest-resolver.mjs +17 -0
  11. package/dist/lib/helpers/module-discovery.mjs +17 -0
  12. package/dist/lib/helpers/module-manifest-validator.mjs +17 -0
  13. package/dist/lib/helpers/module-sort.mjs +17 -0
  14. package/dist/lib/helpers/resolve-from-caller.mjs +1 -1
  15. package/dist/lib/i18n/languages/de-de.json +76 -47
  16. package/dist/lib/i18n/languages/en-gb.json +76 -47
  17. package/dist/lib/i18n/languages/en-us.json +76 -47
  18. package/dist/lib/i18n/languages/es-es.json +76 -47
  19. package/dist/lib/i18n/languages/es-mx.json +76 -47
  20. package/dist/lib/i18n/languages/fr-fr.json +30 -1
  21. package/dist/lib/i18n/languages/hi-in.json +72 -43
  22. package/dist/lib/i18n/languages/ja-jp.json +32 -3
  23. package/dist/lib/i18n/languages/ko-kr.json +32 -3
  24. package/dist/lib/i18n/languages/pt-br.json +76 -47
  25. package/dist/lib/i18n/languages/ru-ru.json +68 -39
  26. package/dist/lib/i18n/languages/zh-cn.json +37 -8
  27. package/dist/lib/processors/loader.mjs +1 -1
  28. package/dist/lib/processors/type-generator.mjs +1 -1
  29. package/dist/lib/processors/typescript.mjs +1 -1
  30. package/dist/lib/typegen/typegen.mjs +1 -1
  31. package/dist/slothlet.mjs +1 -1
  32. package/index.cjs +4 -14
  33. package/index.mjs +2 -12
  34. package/package.json +5 -9
  35. package/schemas/slothlet.module.schema.json +98 -0
  36. package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
  37. package/types/dist/lib/builders/modes-processor.d.mts.map +1 -1
  38. package/types/dist/lib/handlers/api-manager.d.mts.map +1 -1
  39. package/types/dist/lib/handlers/module-manager.d.mts +29 -0
  40. package/types/dist/lib/handlers/module-manager.d.mts.map +1 -0
  41. package/types/dist/lib/helpers/config.d.mts +7 -0
  42. package/types/dist/lib/helpers/config.d.mts.map +1 -1
  43. package/types/dist/lib/helpers/eventemitter-context.d.mts.map +1 -1
  44. package/types/dist/lib/helpers/generate-manifest.d.mts +2 -0
  45. package/types/dist/lib/helpers/generate-manifest.d.mts.map +1 -0
  46. package/types/dist/lib/helpers/manifest-resolver.d.mts +2 -0
  47. package/types/dist/lib/helpers/manifest-resolver.d.mts.map +1 -0
  48. package/types/dist/lib/helpers/module-discovery.d.mts +8 -0
  49. package/types/dist/lib/helpers/module-discovery.d.mts.map +1 -0
  50. package/types/dist/lib/helpers/module-manifest-validator.d.mts +14 -0
  51. package/types/dist/lib/helpers/module-manifest-validator.d.mts.map +1 -0
  52. package/types/dist/lib/helpers/module-sort.d.mts +2 -0
  53. package/types/dist/lib/helpers/module-sort.d.mts.map +1 -0
  54. package/types/dist/lib/helpers/resolve-from-caller.d.mts.map +1 -1
  55. package/types/dist/lib/processors/loader.d.mts.map +1 -1
  56. package/types/dist/lib/processors/type-generator.d.mts.map +1 -1
  57. package/types/dist/lib/processors/typescript.d.mts.map +1 -1
  58. package/types/dist/lib/typegen/typegen.d.mts.map +1 -1
  59. package/types/dist/slothlet.d.mts.map +1 -1
  60. package/types/index.d.mts +3 -24
  61. package/types/index.d.mts.map +1 -1
@@ -2,6 +2,9 @@
2
2
  "translations": {
3
3
  "INVALID_CONFIG": "Ungültige Konfiguration: {option} ist {value}, erwartet wurde {expected}. {hint}",
4
4
  "INVALID_CONFIG_DIR_MISSING": "Konfigurationsfehler: Die Option 'dir' ist erforderlich. Geben Sie einen Verzeichnispfad an, aus dem die API geladen werden soll.",
5
+ "INVALID_CONFIG_BROWSER_REQUIRES_MANIFEST": "Konfigurationsfehler: 'manifest' ist erforderlich, wenn env auf 'browser' gesetzt ist. Stellen Sie ein vorgeneriertes Manifest-Objekt mit den Arrays 'files' und 'directories' bereit.",
6
+ "INVALID_CONFIG_BROWSER_MANIFEST_INVALID": "Konfigurationsfehler: 'manifest' muss ein einfaches Objekt mit den Arrays 'files' und 'directories' sein. Empfangen: {received}",
7
+ "INVALID_CONFIG_BROWSER_RESOLVE_SPECIFIER_INVALID": "Konfigurationsfehler: 'resolveModuleSpecifier' muss eine Funktion sein, wenn env auf 'browser' gesetzt ist. Empfangen: {received}",
5
8
  "INVALID_CONFIG_DIR_INVALID": "Konfigurationsfehler: 'dir' muss ein nicht leerer Pfad sein. Erhalten: {dir}",
6
9
  "INVALID_CONFIG_MODE_INVALID": "Konfigurationsfehler: 'mode' muss entweder 'eager' oder 'lazy' sein. Erhalten: {value}",
7
10
  "INVALID_CONFIG_NOT_LOADED": "Die Operation '{operation}' kann nicht ausgeführt werden - Instanz nicht geladen. Rufen Sie zuerst load() auf.",
@@ -55,6 +58,9 @@
55
58
  "WARNING_LIFECYCLE_HANDLER_ERROR": "Der Lifecycle-Event-Handler hat einen Fehler für das Event '{event}' verursacht. Andere Handler für dieses Event wurden weiterhin ausgeführt.",
56
59
  "HINT_WARNING_LIFECYCLE_HANDLER_ERROR": "Ein für das Event '{event}' registrierter Lifecycle-Handler hat einen Fehler verursacht. Überprüfen Sie Ihren lifecycle.on('{event}', ...) Handler auf Fehler. Andere Handler für das gleiche Event sind nicht betroffen.",
57
60
  "WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Mehrere Standard-Funktionsexporte auf Root-Ebene erkannt: {rootContributors}. Jeder wurde nach Dateiname in einen Namespace verschoben (z.B. api.{firstContributor}()). Erwägen Sie einen einzigen Root-Standard-Export oder das Verschieben von Dateien in Unterverzeichnisse.",
61
+ "WARN_SUPPRESS_FIX_ACTIVE": "Regelkorrektur '{rule}' ist über 'suppressFixes' deaktiviert. Weitere Details unter {url}. Diese temporäre Ausnahme wird in v4 entfernt. Das korrigierte Verhalten von '{rule}' wird dauerhaft erzwungen.",
62
+ "HINT_WARN_SUPPRESS_FIX_ACTIVE": "Entfernen Sie '{rule}' aus 'suppressFixes' und aktualisieren Sie Ihre API-Verzeichnisstruktur, um das korrigierte Verhalten vor dem Upgrade auf v4 zu übernehmen.",
63
+ "V3_CONFIG_DEPRECATED": "Konfigurationsoption '{option}' ist veraltet und wird in v4 entfernt. Verwenden Sie stattdessen '{replacement}'.",
58
64
  "V2_CONFIG_UNSUPPORTED": "Konfigurationsoption '{option}' aus v2 wird in v3 nicht unterstützt. {hint} Verwenden Sie stattdessen '{replacement}'.",
59
65
  "DEBUG_MODE_ROOT_CONTRIBUTOR": "[{mode}] Root-Contributor erkannt: {functionName}",
60
66
  "DEBUG_MODE_ROOT_CONTRIBUTOR_APPLIED": "[{mode}] Root-Contributor-Muster angewendet - Funktions-API mit {properties} zusätzlichen Eigenschaften",
@@ -64,21 +70,21 @@
64
70
  "DEBUG_MODE_ASSIGN_TO_API": "ZUWEISEN-AN-API",
65
71
  "DEBUG_MODE_COLLISION_CHECK": "KOLLISIONS-PRÜFUNG",
66
72
  "DEBUG_MODE_COLLISION_DETECT": "KOLLISION-ERKENNUNG",
67
- "DEBUG_MODE_COLLISION_WRAPPER_DETECTION": "KOLLISION: Wrapper-Erkennung",
68
- "DEBUG_MODE_COLLISION_LAZY_DETECTION": "KOLLISION: Lazy-Erkennung",
69
- "DEBUG_MODE_COLLISION_SET_MODE_EXISTING_WRAPPER": "KOLLISION: Setze Kollisionsmodus für BESTEHENDEN Wrapper",
70
- "DEBUG_MODE_COLLISION_VERIFIED_EXISTING_WRAPPER_MODE": "KOLLISION: Verifizierter Kollisionsmodus für bestehenden Wrapper",
71
- "DEBUG_MODE_COLLISION_SET_MODE_VALUE_WRAPPER": "KOLLISION: Setze Kollisionsmodus für VALUE-Wrapper",
72
- "DEBUG_MODE_COLLISION_VERIFIED_VALUE_WRAPPER_MODE": "KOLLISION: Verifizierter Kollisionsmodus für Value-Wrapper",
73
- "DEBUG_MODE_COLLISION_REPLACE_MATERIALIZE": "KOLLISION-REPLACE-MATERIALIZE: Löse sofortige Materialisierung aus",
74
- "DEBUG_MODE_COLLISION_REPLACE_NO_COPY": "KOLLISION-REPLACE: Dateieigenschaften werden nicht kopiert - replace Modus löscht alles bei der Materialisierung",
75
- "DEBUG_MODE_COLLISION_REPLACE_BEFORE": "KOLLISION-REPLACE: VOR Zuweisung",
76
- "DEBUG_MODE_COLLISION_ASSIGN_REPLACING_WITH_LAZY": "KOLLISION-ASSIGN: Ersetze Bestehendes durch Lazy-Ordner",
77
- "DEBUG_MODE_COLLISION_REPLACE_AFTER": "KOLLISION-REPLACE: NACH Zuweisung",
78
- "DEBUG_MODE_COLLISION_REPLACE_VERIFY": "KOLLISION-REPLACE: Verifizierung",
79
- "DEBUG_MODE_COLLISION_COPY_CHILD_KEYS": "KOLLISION-COPY: Kopiere bestehende Child-Keys",
80
- "DEBUG_MODE_COLLISION_COPY_INDIVIDUAL_KEY": "KOLLISION-COPY: Kopiere einzelnen Schlüssel",
81
- "DEBUG_MODE_COLLISION_TRIGGER_EARLY_MAT": "KOLLISION-TRIGGER-MAT: Löse frühzeitige Materialisierung aus (Fire-and-Forget)",
73
+ "DEBUG_MODE_COLLISION_WRAPPER_DETECTION": "[KOLLISION]: Wrapper-Erkennung",
74
+ "DEBUG_MODE_COLLISION_LAZY_DETECTION": "[KOLLISION]: Lazy-Erkennung",
75
+ "DEBUG_MODE_COLLISION_SET_MODE_EXISTING_WRAPPER": "[KOLLISION]: Setze Kollisionsmodus für BESTEHENDEN Wrapper",
76
+ "DEBUG_MODE_COLLISION_VERIFIED_EXISTING_WRAPPER_MODE": "[KOLLISION]: Verifizierter Kollisionsmodus für bestehenden Wrapper",
77
+ "DEBUG_MODE_COLLISION_SET_MODE_VALUE_WRAPPER": "[KOLLISION]: Setze Kollisionsmodus für VALUE-Wrapper",
78
+ "DEBUG_MODE_COLLISION_VERIFIED_VALUE_WRAPPER_MODE": "[KOLLISION]: Verifizierter Kollisionsmodus für Value-Wrapper",
79
+ "DEBUG_MODE_COLLISION_REPLACE_MATERIALIZE": "[KOLLISION-REPLACE-MATERIALIZE]: Löse sofortige Materialisierung aus",
80
+ "DEBUG_MODE_COLLISION_REPLACE_NO_COPY": "[KOLLISION-REPLACE]: Dateieigenschaften werden nicht kopiert - replace Modus löscht alles bei der Materialisierung",
81
+ "DEBUG_MODE_COLLISION_REPLACE_BEFORE": "[KOLLISION-REPLACE]: VOR Zuweisung",
82
+ "DEBUG_MODE_COLLISION_ASSIGN_REPLACING_WITH_LAZY": "[KOLLISION-ASSIGN]: Ersetze Bestehendes durch Lazy-Ordner",
83
+ "DEBUG_MODE_COLLISION_REPLACE_AFTER": "[KOLLISION-REPLACE]: NACH Zuweisung",
84
+ "DEBUG_MODE_COLLISION_REPLACE_VERIFY": "[KOLLISION-REPLACE]: Verifizierung",
85
+ "DEBUG_MODE_COLLISION_COPY_CHILD_KEYS": "[KOLLISION-COPY]: Kopiere bestehende Child-Keys",
86
+ "DEBUG_MODE_COLLISION_COPY_INDIVIDUAL_KEY": "[KOLLISION-COPY]: Kopiere einzelnen Schlüssel",
87
+ "DEBUG_MODE_COLLISION_TRIGGER_EARLY_MAT": "[KOLLISION-TRIGGER-MAT]: Löse frühzeitige Materialisierung aus (Fire-and-Forget)",
82
88
  "DEBUG_MODE_MERGE_API_OBJECTS_ENTRY": "mergeApiObjects Eintritt",
83
89
  "DEBUG_MODE_MERGE_API_OBJECTS_SOURCE_KEYS": "mergeApiObjects sourceApi Schlüssel",
84
90
  "DEBUG_MODE_MERGE_API_OBJECTS_EXIT_INVALID_SOURCE": "mergeApiObjects Austritt - sourceApi kein Objekt/Funktion",
@@ -160,64 +166,64 @@
160
166
  "DEBUG_MODE_RESTORE_ROOT_KEY_INSPECT": "WIEDERHERSTELLEN-ROOT-SCHLÜSSEL-INSPEKT",
161
167
  "DEBUG_MODE_ROOT_KEY_RESET_LAZY": "Root-Schlüssel wurde über ___resetLazy auf Lazy zurückgesetzt",
162
168
  "DEBUG_MODE_ROOT_KEY_UPDATED_SETIMPL": "Root-Schlüssel wurde über ___setImpl aktualisiert",
163
- "DEBUG_MODE_RESTORE_NESTED_PATH": "RESTORE: verschachtelter Pfad",
164
- "DEBUG_MODE_RESTORE_FORCING_REPLACE": "RESTORE: erzwinge replace Modus",
169
+ "DEBUG_MODE_RESTORE_NESTED_PATH": "[RESTORE]: verschachtelter Pfad",
170
+ "DEBUG_MODE_RESTORE_FORCING_REPLACE": "[RESTORE]: erzwinge replace Modus",
165
171
  "DEBUG_MODE_UPDATED_WRAPPER_IMPL": "Bestandene Wrapper-Impl wurde aktualisiert",
166
172
  "DEBUG_MODE_CREATED_NEW_WRAPPER_UNEXPECTED": "Neuer Wrapper erstellt (unerwartet beim Reload)",
167
173
  "DEBUG_MODE_LIFECYCLE_EVENT": "Ereignis: {event}",
168
174
  "DEBUG_MODE_WRAPPER_CONSTRUCTOR_IMPL_KEYS": "UnifiedWrapper Constructor - Impl Schlüssel",
169
175
  "DEBUG_MODE_WRAPPER_CONSTRUCTOR_AFTER_ADOPT": "UnifiedWrapper Constructor - nach Übernahme (adopt)",
170
176
  "DEBUG_MODE_BACKGROUND_MATERIALIZE_ERROR": "Materialisierungsfehler im Hintergrund",
171
- "DEBUG_MODE_APPLY_IMPL_UPDATE_PATH": "APPLY-IMPL-UPDATE-PATH: filePath von null aktualisiert",
177
+ "DEBUG_MODE_APPLY_IMPL_UPDATE_PATH": "[APPLY-IMPL-UPDATE-PATH]: filePath von null aktualisiert",
172
178
  "DEBUG_MODE_SETIMPL_CALLED": "___setImpl aufgerufen",
173
179
  "DEBUG_MODE_RESETLAZY_CALLED": "___resetLazy aufgerufen",
174
180
  "DEBUG_MODE_RESETLAZY_COMPLETE": "___resetLazy abgeschlossen - Wrapper ist nun un-materialisiert",
175
- "DEBUG_MODE_MATERIALIZE_AWAIT": "MATERIALIZE-AWAIT: warte auf bestehende Materialisierungspromise",
181
+ "DEBUG_MODE_MATERIALIZE_AWAIT": "[MATERIALIZE-AWAIT]: warte auf bestehende Materialisierungspromise",
176
182
  "DEBUG_MODE_MATERIALIZE_START": "_materialize Beginn",
177
183
  "DEBUG_MODE_MATERIALIZE_CALLING_FUNC": "_materialize ruft materializeFunc auf",
178
184
  "DEBUG_MODE_MATERIALIZE_COMPLETE": "_materialize abgeschlossen",
179
185
  "DEBUG_MODE_MATERIALIZE_ERROR": "_materialize Fehler",
180
186
  "DEBUG_MODE_ADOPT_START": "ÜBERNAHME-BEGINN",
181
187
  "DEBUG_MODE_ADOPT": "ÜBERNAHME",
182
- "DEBUG_MODE_ADOPT_REPLACE_CLEARING": "ADOPT: REPLACE MODUS - Bestehende Eigenschaften werden gelöscht",
188
+ "DEBUG_MODE_ADOPT_REPLACE_CLEARING": "[ADOPT]: REPLACE MODUS - Bestehende Eigenschaften werden gelöscht",
183
189
  "DEBUG_MODE_ADOPT_PROCESS": "ADOPT-PROZESS",
184
190
  "DEBUG_MODE_ADOPT_CHECK": "ADOPT-PRÜFUNG",
185
- "DEBUG_MODE_ADOPT_SKIP_COLLISION_MERGED": "ADOPT-SKIP: ist collision-merged, Dateiversion wird beibehalten",
186
- "DEBUG_MODE_ADOPT_SKIP_NON_CONFIGURABLE": "ADOPT-SKIP: Eigenschaft ist nicht konfigurierbar (vererbt)",
187
- "DEBUG_MODE_ADOPT_SKIP_SAME_WRAPPER": "ADOPT-SKIP: Eigenschaft existiert bereits mit gleichem Wrapper",
188
- "DEBUG_MODE_ADOPT_ALLOW_NOT_COLLISION_MERGED": "ADOPT-ALLOW: ist NICHT collision-merged, Erlaubnis erteilt",
189
- "DEBUG_MODE_ADOPT_REUSE_CHILD_WRAPPER": "ADOPT-REUSE: Bestehender Child-Wrapper wurde wiederverwendet",
191
+ "DEBUG_MODE_ADOPT_SKIP_COLLISION_MERGED": "[ADOPT-SKIP]: ist collision-merged, Dateiversion wird beibehalten",
192
+ "DEBUG_MODE_ADOPT_SKIP_NON_CONFIGURABLE": "[ADOPT-SKIP]: Eigenschaft ist nicht konfigurierbar (vererbt)",
193
+ "DEBUG_MODE_ADOPT_SKIP_SAME_WRAPPER": "[ADOPT-SKIP]: Eigenschaft existiert bereits mit gleichem Wrapper",
194
+ "DEBUG_MODE_ADOPT_ALLOW_NOT_COLLISION_MERGED": "[ADOPT-ALLOW]: ist NICHT collision-merged, Erlaubnis erteilt",
195
+ "DEBUG_MODE_ADOPT_REUSE_CHILD_WRAPPER": "[ADOPT-REUSE]: Bestehender Child-Wrapper wurde wiederverwendet",
190
196
  "DEBUG_MODE_ADOPT_WRAP": "ADOPT-UMHÜLLEN",
191
- "DEBUG_MODE_ADOPT_DEFINE": "ADOPT-DEFINE: definiere auf Wrapper",
192
- "DEBUG_MODE_ADOPT_DEFINED": "ADOPT-DEFINED: erfolgreich auf Wrapper definiert",
193
- "DEBUG_MODE_WRAP_CHILD_PATH_CHECK": "WRAP-CHILD-PATH: prüfe auf Child-Dateipfad",
194
- "DEBUG_MODE_WRAP_CHILD_PATH_AVAILABLE": "WRAP-CHILD-PATH: __childFilePaths verfügbar",
195
- "DEBUG_MODE_WRAP_CHILD_PATH_USING": "WRAP-CHILD-PATH: Benutze __childFilePaths",
196
- "DEBUG_MODE_WRAP_CHILD_PATH_PRE_MAT": "WRAP-CHILD-PATH: Benutze __childFilePathsPreMaterialize",
197
- "DEBUG_MODE_WRAP_CHILD_PATH_FALLBACK": "WRAP-CHILD-PATH: Benutze fallback parentMetadata?.filePath",
197
+ "DEBUG_MODE_ADOPT_DEFINE": "[ADOPT-DEFINE]: definiere auf Wrapper",
198
+ "DEBUG_MODE_ADOPT_DEFINED": "[ADOPT-DEFINED]: erfolgreich auf Wrapper definiert",
199
+ "DEBUG_MODE_WRAP_CHILD_PATH_CHECK": "[WRAP-CHILD-PATH]: prüfe auf Child-Dateipfad",
200
+ "DEBUG_MODE_WRAP_CHILD_PATH_AVAILABLE": "[WRAP-CHILD-PATH]: __childFilePaths verfügbar",
201
+ "DEBUG_MODE_WRAP_CHILD_PATH_USING": "[WRAP-CHILD-PATH]: Benutze __childFilePaths",
202
+ "DEBUG_MODE_WRAP_CHILD_PATH_PRE_MAT": "[WRAP-CHILD-PATH]: Benutze __childFilePathsPreMaterialize",
203
+ "DEBUG_MODE_WRAP_CHILD_PATH_FALLBACK": "[WRAP-CHILD-PATH]: Benutze fallback parentMetadata?.filePath",
198
204
  "DEBUG_MODE_WAITING_TYPE": "WARTET-TYP",
199
- "DEBUG_MODE_WAITING_TYPE_WALK_WRAPPER": "WAITING-TYPE-WALK: im Wrapper gefunden",
200
- "DEBUG_MODE_WAITING_TYPE_WALK_IMPL": "WAITING-TYPE-WALK: in _impl gefunden",
201
- "DEBUG_MODE_WAITING_TYPE_WALK_DIRECT": "WAITING-TYPE-WALK: direkter Zugriff",
205
+ "DEBUG_MODE_WAITING_TYPE_WALK_WRAPPER": "[WAITING-TYPE-WALK]: im Wrapper gefunden",
206
+ "DEBUG_MODE_WAITING_TYPE_WALK_IMPL": "[WAITING-TYPE-WALK]: in _impl gefunden",
207
+ "DEBUG_MODE_WAITING_TYPE_WALK_DIRECT": "[WAITING-TYPE-WALK]: direkter Zugriff",
202
208
  "DEBUG_MODE_WAITING_TYPE_RESOLVED": "WARTET-TYP-GELOEST",
203
- "DEBUG_MODE_WAITING_TYPE_INFLIGHT": "WAITING-TYPE-INFLIGHT: gebe IN_FLIGHT zurück",
204
- "DEBUG_MODE_WAITING_GET_PREMATURE": "WAITING-GET-PREMATURE: vor Materialisierung im Wrapper gefunden",
205
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT": "WAITING-GET-IMMEDIATE-MAT: löse sofortige Materialisierung für collision-merged Ordner aus",
206
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_ERROR": "WAITING-GET-IMMEDIATE-MAT-ERROR: Materialisierung fehlgeschlagen",
207
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_SUCCESS": "WAITING-GET-IMMEDIATE-MAT-SUCCESS: jetzt im Wrapper verfügbar",
209
+ "DEBUG_MODE_WAITING_TYPE_INFLIGHT": "[WAITING-TYPE-INFLIGHT]: gebe IN_FLIGHT zurück",
210
+ "DEBUG_MODE_WAITING_GET_PREMATURE": "[WAITING-GET-PREMATURE]: vor Materialisierung im Wrapper gefunden",
211
+ "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT": "[WAITING-GET-IMMEDIATE-MAT]: löse sofortige Materialisierung für collision-merged Ordner aus",
212
+ "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_ERROR": "[WAITING-GET-IMMEDIATE-MAT-ERROR]: Materialisierung fehlgeschlagen",
213
+ "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_SUCCESS": "[WAITING-GET-IMMEDIATE-MAT-SUCCESS]: jetzt im Wrapper verfügbar",
208
214
  "DEBUG_MODE_WAITING_APPLY_ENTRY": "WARTET-ANWENDUNG-EINTRAG",
209
- "DEBUG_MODE_WAITING_APPLY_MATERIALIZE": "WAITING-APPLY-MATERIALIZE: Löse Materialisierung aus",
210
- "DEBUG_MODE_WAITING_APPLY_MATERIALIZED": "WAITING-APPLY-MATERIALIZED: Materialisierung abgeschlossen",
211
- "DEBUG_MODE_WAITING_APPLY_START_WALK": "WAITING-APPLY-START-WALK: Beginn des propChain Durchlaufs",
215
+ "DEBUG_MODE_WAITING_APPLY_MATERIALIZE": "[WAITING-APPLY-MATERIALIZE]: Löse Materialisierung aus",
216
+ "DEBUG_MODE_WAITING_APPLY_MATERIALIZED": "[WAITING-APPLY-MATERIALIZED]: Materialisierung abgeschlossen",
217
+ "DEBUG_MODE_WAITING_APPLY_START_WALK": "[WAITING-APPLY-START-WALK]: Beginn des propChain Durchlaufs",
212
218
  "DEBUG_MODE_WAITING_APPLY_WALK": "WARTET-ANWENDUNG-DURCHLAUF",
213
219
  "DEBUG_MODE_WAITING_APPLY": "WARTET-ANWENDUNG",
214
220
  "DEBUG_MODE_GET_START": "GET-BEGINN",
215
221
  "DEBUG_MODE_INSPECT_LAZY_UNMATERIALIZED": "util.inspect.custom: Lazy unmaterialisiert",
216
222
  "DEBUG_MODE_GET_CACHED_REPLACE": "GET-CACHED-ERSETZEN",
217
223
  "DEBUG_MODE_GET_CACHED": "GET-GECACHED",
218
- "DEBUG_MODE_GET_PROXYGET_ACCESSING": "GET-PROXYGET: Zugriff auf",
219
- "DEBUG_MODE_GET_PROXYGET_FOUND": "GET-PROXYGET: Im Wrapper gefunden",
220
- "DEBUG_MODE_LAZY_GET_CREATE_WAITING_PROXY": "LAZY-GET: erstelle Waiting-Proxy",
224
+ "DEBUG_MODE_GET_PROXYGET_ACCESSING": "[GET-PROXYGET]: Zugriff auf",
225
+ "DEBUG_MODE_GET_PROXYGET_FOUND": "[GET-PROXYGET]: Im Wrapper gefunden",
226
+ "DEBUG_MODE_LAZY_GET_CREATE_WAITING_PROXY": "[LAZY-GET]: erstelle Waiting-Proxy",
221
227
  "DEBUG_MODE_BUILD_LAZY_API_CALLED": "buildLazyAPI aufgerufen",
222
228
  "DEBUG_MODE_COMPONENT_INITIALIZED": "Komponente initialisiert: {component} → this.{category}.{propertyName}",
223
229
  "DEBUG_MODE_LAZY_WRAPPER_REGISTERED": "Lazy-Wrapper registriert",
@@ -261,6 +267,7 @@
261
267
  "HINT_WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "Primitive Werte (Strings, Zahlen, Booleans) können nicht zusammengeführt werden. Um den Wert zu ersetzen, benutzen Sie den Kollisionsmodus 'replace'. Um den bestehenden zu behalten, benutzen Sie weiterhin 'warn'.",
262
268
  "HINT_WARNING_OWNERSHIP_CONFLICT": "Der Pfad gehört bereits einem anderen Modul. Um das Überschreiben zu erzwingen, benutzen Sie forceOverwrite: true in den api.add() Optionen oder rufen Sie zuerst api.slothlet.api.remove() auf, um den Pfad zu leeren.",
263
269
  "HINT_V2_CONFIG_UNSUPPORTED": "Diese Konfigurationsoption aus v2 wird in v3 nicht unterstützt. Aktualisieren Sie Ihre Konfiguration auf das v3-Äquivalent für bessere Kontrolle und Klarheit.",
270
+ "HINT_V3_CONFIG_DEPRECATED": "Dieser Konfigurationsparameter wurde zur Klarheit umbenannt. Aktualisieren Sie Ihren Code auf den neuen Optionsnamen, um Vorwärtskompatibilität mit v4 sicherzustellen.",
264
271
  "HINT_MODULE_LOAD_FAILED": "Prüfen Sie die Moduldatei auf Fehler. Stellen Sie sicher, dass sie gültige JavaScript-Syntax und Exports besitzt.",
265
272
  "HINT_MODULE_IMPORT_FAILED": "Stellen Sie sicher, dass die Moduldatei existiert und importiert werden kann. Prüfen Sie auf Syntaxfehler oder fehlende Abhängigkeiten.",
266
273
  "HINT_MODULE_NO_EXPORTS": "Das Modul muss mindestens eine Funktion oder ein Objekt exportieren.",
@@ -405,7 +412,29 @@
405
412
  "PERM_RULE_CONDITION_INVALID": "rule.condition muss ein einfaches Objekt, eine Funktion oder ein Array sein, bei dem jeder Eintrag ein einfaches Objekt oder eine Funktion ist",
406
413
  "BRACE_EXPANSION_MAX_DEPTH": "Klammerauflösung hat die maximale Tiefe von {maxDepth} überschritten",
407
414
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Verringern Sie die Verschachtelung in Ihren Klammermustern oder erhöhen Sie die maxDepth-Option.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "Berechtigungsmanager ist nicht in dieser Slothlet-Instanz verfügbar"
415
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "Berechtigungsmanager ist nicht in dieser Slothlet-Instanz verfügbar",
416
+ "MODULE_MANIFEST_NOT_FOUND": "Modul-Manifest nicht gefunden für Paket '{packageName}': '{manifestPath}' erwartet, aber die Datei existiert nicht.",
417
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Plugin-Module müssen eine 'slothlet.module.json' im Paketwurzelverzeichnis ausliefern (oder die über die `manifest`-Überschreibung angegebene Datei/Schlüssel). Überprüfen Sie, ob die Datei im Paket existiert und der Override-Locator korrekt ist.",
418
+ "MODULE_MANIFEST_INVALID": "Modul-Manifest ist ungültig für Paket '{packageName}' unter '{manifestPath}': {reason}.",
419
+ "HINT_MODULE_MANIFEST_INVALID": "Öffnen Sie das Manifest und stellen Sie sicher, dass es gültiges JSON ist und dem Slothlet-Modul-Schema entspricht (siehe schemas/slothlet.module.schema.json). Erforderliche Felder: schemaVersion, mountPath, apiDir.",
420
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "Modul-Manifest für Paket '{packageName}' enthält nicht erkanntes Feld auf oberster Ebene '{field}'. Unbekannte Felder werden abgelehnt; verwenden Sie den dedizierten 'metadata'-Block für entwicklerdefinierte Zusätze.",
421
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Wenn '{field}' ein Tippfehler ist, korrigieren Sie ihn. Wenn es sich um beabsichtigte Entwicklermetadaten handelt, verschieben Sie sie in das 'metadata'-Objekt.",
422
+ "MODULE_MANIFEST_NAME_MISMATCH": "Modul-Manifest für Paket '{packageName}' deklariert Namen '{manifestName}', der nicht mit dem Namen in package.json '{packageName}' übereinstimmt.",
423
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "Das 'name'-Feld in slothlet.module.json ist optional, muss aber mit package.json übereinstimmen, wenn vorhanden. Entfernen Sie entweder das 'name'-Feld im Manifest oder gleichen Sie es mit package.json ab.",
424
+ "MODULE_MANIFEST_VERSION_MISMATCH": "Modul-Manifest für Paket '{packageName}' deklariert Version '{manifestVersion}', die nicht mit der Version in package.json '{packageVersion}' übereinstimmt.",
425
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "Das 'version'-Feld in slothlet.module.json ist optional, muss aber mit package.json übereinstimmen, wenn vorhanden. Entfernen Sie entweder das 'version'-Feld im Manifest oder gleichen Sie es mit package.json ab.",
426
+ "MODULE_PATH_TRAVERSAL": "Modul-Paket '{packageName}' hat apiDir '{apiDir}', das außerhalb des Paketwurzelverzeichnisses aufgelöst wird ('{resolvedPath}' liegt nicht unter '{packageRoot}').",
427
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir muss ein relativer Pfad sein, der innerhalb des Pakets bleibt. Entfernen Sie '..'-Segmente und absolute Pfade.",
428
+ "MODULE_VERSION_UNSUPPORTED": "Modul-Manifest für Paket '{packageName}' verwendet nicht unterstützte schemaVersion '{schemaVersion}'. Unterstützt: 1.",
429
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Aktualisieren Sie slothlet auf eine Version, die schemaVersion {schemaVersion} unterstützt, oder aktualisieren Sie das Manifest auf schemaVersion 1.",
430
+ "MODULE_PACKAGE_NOT_FOUND": "Modul-Paket '{packageName}' wurde nicht im Discovery-Cache gefunden. {hint}",
431
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "Entweder ist das Paket nicht installiert, der scanRoot deckt seinen Speicherort nicht ab, oder es wurde noch kein discover()-Aufruf durchgeführt. addModule(name) ruft discover() lazy mit scanRoot=process.cwd() auf, wenn der Cache leer ist.",
432
+ "MODULE_RESERVED_MOUNTPATH": "Modul-Paket '{packageName}' deklariert reservierte mountPath-Wurzel '{mountPathRoot}' (aus mountPath '{mountPath}'). Reservierte Wurzeln: slothlet, shutdown, destroy.",
433
+ "HINT_MODULE_RESERVED_MOUNTPATH": "Reservierte mountPath-Wurzeln werden von der integrierten Oberfläche von slothlet verwendet und können nicht von Modulen beansprucht werden. Wählen Sie ein anderes Wurzelsegment.",
434
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Modul-Paket '{packageName}' Version '{version}' wurde an mehreren verschiedenen tatsächlichen Pfaden gefunden: {paths}.",
435
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Dies ist mit ziemlicher Sicherheit eine Fehlkonfiguration — dasselbe Paket in derselben Version, das an zwei nicht verwandten Orten installiert ist. Untersuchen Sie, welche Installation gewünscht ist, und entfernen Sie die andere.",
436
+ "MODULE_MOUNT_COLLISION": "Modul-Paket '{packageName}' kann nicht unter '{mountPath}' eingebunden werden: Pfad ist bereits von Modul '{existingModuleID}' belegt und collisionMode ist '{collisionMode}'.",
437
+ "HINT_MODULE_MOUNT_COLLISION": "Ändern Sie entweder den mountPath des Manifests, übergeben Sie `collisionMode: \"merge\"` an `addModule()` / `addModules()` um Koexistenz zu erlauben, oder entfernen Sie zuerst das bestehende Modul mit `removeModule()`."
409
438
  },
410
439
  "metadata": {
411
440
  "code": "de-de",
@@ -3,6 +3,9 @@
3
3
  "INVALID_CONFIG": "Invalid configuration: {option} is {value}, expected {expected}. {hint}",
4
4
  "INVALID_CONFIG_DIR_MISSING": "Configuration error: 'dir' option is required. Provide a directory path to load API from.",
5
5
  "INVALID_CONFIG_DIR_INVALID": "Configuration error: 'dir' must be a non-empty string path. Received: {dir}",
6
+ "INVALID_CONFIG_BROWSER_REQUIRES_MANIFEST": "Configuration error: 'manifest' is required when env is 'browser'. Provide a pre-generated manifest object with 'files' and 'directories' arrays.",
7
+ "INVALID_CONFIG_BROWSER_MANIFEST_INVALID": "Configuration error: 'manifest' must be a plain object with 'files' and 'directories' arrays. Received: {received}",
8
+ "INVALID_CONFIG_BROWSER_RESOLVE_SPECIFIER_INVALID": "Configuration error: 'resolveModuleSpecifier' must be a function when env is 'browser'. Received: {received}",
6
9
  "INVALID_CONFIG_MODE_INVALID": "Configuration error: 'mode' must be either 'eager' or 'lazy'. Received: {value}",
7
10
  "INVALID_CONFIG_NOT_LOADED": "Cannot perform operation '{operation}' - instance not loaded. Call load() first.",
8
11
  "INVALID_CONFIG_LAZY_MATERIALIZATION_FAILED": "Failed to materialize lazy proxy for '{apiPath}'. Check that the module loads correctly.",
@@ -55,7 +58,10 @@
55
58
  "WARNING_LIFECYCLE_HANDLER_ERROR": "Lifecycle event handler threw an error for event '{event}'. Other handlers for this event continued executing.",
56
59
  "HINT_WARNING_LIFECYCLE_HANDLER_ERROR": "A lifecycle handler registered for the '{event}' event threw an error. Check your lifecycle.on('{event}', ...) handler for bugs. Other handlers in the same event are not affected.",
57
60
  "WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Multiple root-level default function exports detected: {rootContributors}. Each has been namespaced by filename (e.g., api.{firstContributor}()). Consider using a single root-level default export or moving files to subdirectories.",
61
+ "V3_CONFIG_DEPRECATED": "Configuration option '{option}' is deprecated and will be removed in v4. Use '{replacement}' instead.",
58
62
  "V2_CONFIG_UNSUPPORTED": "Configuration option '{option}' from v2 is not supported in v3. {hint} Use '{replacement}' instead.",
63
+ "WARN_SUPPRESS_FIX_ACTIVE": "Rule fix '{rule}' is suppressed via 'suppressFixes'. See {url} for details. This is a temporary override and will be removed in v4. The corrected '{rule}' behaviour will be enforced permanently.",
64
+ "HINT_WARN_SUPPRESS_FIX_ACTIVE": "Remove '{rule}' from 'suppressFixes' and update your API directory structure to accommodate the corrected behaviour before upgrading to v4.",
59
65
  "DEBUG_MODE_ROOT_CONTRIBUTOR": "[{mode}] Root contributor detected: {functionName}",
60
66
  "DEBUG_MODE_ROOT_CONTRIBUTOR_APPLIED": "[{mode}] Root contributor pattern applied - function API with {properties} additional properties",
61
67
  "DEBUG_MODE_PROCESSING_DIRECTORY": "[{mode}] Processing directory: {categoryName} (depth {currentDepth})",
@@ -64,21 +70,21 @@
64
70
  "DEBUG_MODE_ASSIGN_TO_API": "ASSIGN-TO-API",
65
71
  "DEBUG_MODE_COLLISION_CHECK": "COLLISION-CHECK",
66
72
  "DEBUG_MODE_COLLISION_DETECT": "COLLISION-DETECT",
67
- "DEBUG_MODE_COLLISION_WRAPPER_DETECTION": "COLLISION: wrapper detection",
68
- "DEBUG_MODE_COLLISION_LAZY_DETECTION": "COLLISION: lazy detection",
69
- "DEBUG_MODE_COLLISION_SET_MODE_EXISTING_WRAPPER": "COLLISION: Setting collision mode on EXISTING wrapper",
70
- "DEBUG_MODE_COLLISION_VERIFIED_EXISTING_WRAPPER_MODE": "COLLISION: Verified existing wrapper collision mode",
71
- "DEBUG_MODE_COLLISION_SET_MODE_VALUE_WRAPPER": "COLLISION: Setting collision mode on VALUE wrapper",
72
- "DEBUG_MODE_COLLISION_VERIFIED_VALUE_WRAPPER_MODE": "COLLISION: Verified value wrapper collision mode",
73
- "DEBUG_MODE_COLLISION_REPLACE_MATERIALIZE": "COLLISION-REPLACE-MATERIALIZE: Triggering immediate materialization",
74
- "DEBUG_MODE_COLLISION_REPLACE_NO_COPY": "COLLISION-REPLACE: Not copying file properties - replace mode will clear everything on materialization",
75
- "DEBUG_MODE_COLLISION_REPLACE_BEFORE": "COLLISION-REPLACE: BEFORE assignment",
76
- "DEBUG_MODE_COLLISION_ASSIGN_REPLACING_WITH_LAZY": "COLLISION-ASSIGN: Replacing existing with lazy folder",
77
- "DEBUG_MODE_COLLISION_REPLACE_AFTER": "COLLISION-REPLACE: AFTER assignment",
78
- "DEBUG_MODE_COLLISION_REPLACE_VERIFY": "COLLISION-REPLACE: Verification",
79
- "DEBUG_MODE_COLLISION_COPY_CHILD_KEYS": "COLLISION-COPY: Copying existing child keys",
80
- "DEBUG_MODE_COLLISION_COPY_INDIVIDUAL_KEY": "COLLISION-COPY: Copying individual key",
81
- "DEBUG_MODE_COLLISION_TRIGGER_EARLY_MAT": "COLLISION-TRIGGER-MAT: Triggering early materialization (fire-and-forget)",
73
+ "DEBUG_MODE_COLLISION_WRAPPER_DETECTION": "[COLLISION]: wrapper detection",
74
+ "DEBUG_MODE_COLLISION_LAZY_DETECTION": "[COLLISION]: lazy detection",
75
+ "DEBUG_MODE_COLLISION_SET_MODE_EXISTING_WRAPPER": "[COLLISION]: Setting collision mode on EXISTING wrapper",
76
+ "DEBUG_MODE_COLLISION_VERIFIED_EXISTING_WRAPPER_MODE": "[COLLISION]: Verified existing wrapper collision mode",
77
+ "DEBUG_MODE_COLLISION_SET_MODE_VALUE_WRAPPER": "[COLLISION]: Setting collision mode on VALUE wrapper",
78
+ "DEBUG_MODE_COLLISION_VERIFIED_VALUE_WRAPPER_MODE": "[COLLISION]: Verified value wrapper collision mode",
79
+ "DEBUG_MODE_COLLISION_REPLACE_MATERIALIZE": "[COLLISION-REPLACE-MATERIALIZE]: Triggering immediate materialization",
80
+ "DEBUG_MODE_COLLISION_REPLACE_NO_COPY": "[COLLISION-REPLACE]: Not copying file properties - replace mode will clear everything on materialization",
81
+ "DEBUG_MODE_COLLISION_REPLACE_BEFORE": "[COLLISION-REPLACE]: BEFORE assignment",
82
+ "DEBUG_MODE_COLLISION_ASSIGN_REPLACING_WITH_LAZY": "[COLLISION-ASSIGN]: Replacing existing with lazy folder",
83
+ "DEBUG_MODE_COLLISION_REPLACE_AFTER": "[COLLISION-REPLACE]: AFTER assignment",
84
+ "DEBUG_MODE_COLLISION_REPLACE_VERIFY": "[COLLISION-REPLACE]: Verification",
85
+ "DEBUG_MODE_COLLISION_COPY_CHILD_KEYS": "[COLLISION-COPY]: Copying existing child keys",
86
+ "DEBUG_MODE_COLLISION_COPY_INDIVIDUAL_KEY": "[COLLISION-COPY]: Copying individual key",
87
+ "DEBUG_MODE_COLLISION_TRIGGER_EARLY_MAT": "[COLLISION-TRIGGER-MAT]: Triggering early materialization (fire-and-forget)",
82
88
  "DEBUG_MODE_MERGE_API_OBJECTS_ENTRY": "mergeApiObjects entry",
83
89
  "DEBUG_MODE_MERGE_API_OBJECTS_SOURCE_KEYS": "mergeApiObjects sourceApi keys",
84
90
  "DEBUG_MODE_MERGE_API_OBJECTS_EXIT_INVALID_SOURCE": "mergeApiObjects exit - sourceApi not object/function",
@@ -160,64 +166,64 @@
160
166
  "DEBUG_MODE_RESTORE_ROOT_KEY_INSPECT": "RESTORE-ROOT-KEY-INSPECT",
161
167
  "DEBUG_MODE_ROOT_KEY_RESET_LAZY": "Root key reset to lazy via ___resetLazy",
162
168
  "DEBUG_MODE_ROOT_KEY_UPDATED_SETIMPL": "Root key updated via ___setImpl",
163
- "DEBUG_MODE_RESTORE_NESTED_PATH": "RESTORE: nested path",
164
- "DEBUG_MODE_RESTORE_FORCING_REPLACE": "RESTORE: forcing replace mode",
169
+ "DEBUG_MODE_RESTORE_NESTED_PATH": "[RESTORE]: nested path",
170
+ "DEBUG_MODE_RESTORE_FORCING_REPLACE": "[RESTORE]: forcing replace mode",
165
171
  "DEBUG_MODE_UPDATED_WRAPPER_IMPL": "Updated existing wrapper implementation",
166
172
  "DEBUG_MODE_CREATED_NEW_WRAPPER_UNEXPECTED": "Created new wrapper (unexpected in reload)",
167
173
  "DEBUG_MODE_LIFECYCLE_EVENT": "Event: {event}",
168
174
  "DEBUG_MODE_WRAPPER_CONSTRUCTOR_IMPL_KEYS": "UnifiedWrapper constructor - impl keys",
169
175
  "DEBUG_MODE_WRAPPER_CONSTRUCTOR_AFTER_ADOPT": "UnifiedWrapper constructor - after adopt",
170
176
  "DEBUG_MODE_BACKGROUND_MATERIALIZE_ERROR": "Background materialization error",
171
- "DEBUG_MODE_APPLY_IMPL_UPDATE_PATH": "APPLY-IMPL-UPDATE-PATH: updated filePath from null",
177
+ "DEBUG_MODE_APPLY_IMPL_UPDATE_PATH": "[APPLY-IMPL-UPDATE-PATH]: updated filePath from null",
172
178
  "DEBUG_MODE_SETIMPL_CALLED": "___setImpl called",
173
179
  "DEBUG_MODE_RESETLAZY_CALLED": "___resetLazy called",
174
180
  "DEBUG_MODE_RESETLAZY_COMPLETE": "___resetLazy complete - wrapper is now un-materialized",
175
- "DEBUG_MODE_MATERIALIZE_AWAIT": "MATERIALIZE-AWAIT: awaiting existing materialization promise",
181
+ "DEBUG_MODE_MATERIALIZE_AWAIT": "[MATERIALIZE-AWAIT]: awaiting existing materialization promise",
176
182
  "DEBUG_MODE_MATERIALIZE_START": "_materialize start",
177
183
  "DEBUG_MODE_MATERIALIZE_CALLING_FUNC": "_materialize calling materializeFunc",
178
184
  "DEBUG_MODE_MATERIALIZE_COMPLETE": "_materialize complete",
179
185
  "DEBUG_MODE_MATERIALIZE_ERROR": "_materialize error",
180
186
  "DEBUG_MODE_ADOPT_START": "ADOPT-START",
181
187
  "DEBUG_MODE_ADOPT": "ADOPT",
182
- "DEBUG_MODE_ADOPT_REPLACE_CLEARING": "ADOPT: REPLACE MODE - Clearing existing properties",
188
+ "DEBUG_MODE_ADOPT_REPLACE_CLEARING": "[ADOPT]: REPLACE MODE - Clearing existing properties",
183
189
  "DEBUG_MODE_ADOPT_PROCESS": "ADOPT-PROCESS",
184
190
  "DEBUG_MODE_ADOPT_CHECK": "ADOPT-CHECK",
185
- "DEBUG_MODE_ADOPT_SKIP_COLLISION_MERGED": "ADOPT-SKIP: is collision-merged, keeping file version",
186
- "DEBUG_MODE_ADOPT_SKIP_NON_CONFIGURABLE": "ADOPT-SKIP: property is non-configurable (inherited)",
187
- "DEBUG_MODE_ADOPT_SKIP_SAME_WRAPPER": "ADOPT-SKIP: property already exists with same wrapper",
188
- "DEBUG_MODE_ADOPT_ALLOW_NOT_COLLISION_MERGED": "ADOPT-ALLOW: is NOT collision-merged, allowing",
189
- "DEBUG_MODE_ADOPT_REUSE_CHILD_WRAPPER": "ADOPT-REUSE: Reused existing child wrapper",
191
+ "DEBUG_MODE_ADOPT_SKIP_COLLISION_MERGED": "[ADOPT-SKIP]: is collision-merged, keeping file version",
192
+ "DEBUG_MODE_ADOPT_SKIP_NON_CONFIGURABLE": "[ADOPT-SKIP]: property is non-configurable (inherited)",
193
+ "DEBUG_MODE_ADOPT_SKIP_SAME_WRAPPER": "[ADOPT-SKIP]: property already exists with same wrapper",
194
+ "DEBUG_MODE_ADOPT_ALLOW_NOT_COLLISION_MERGED": "[ADOPT-ALLOW]: is NOT collision-merged, allowing",
195
+ "DEBUG_MODE_ADOPT_REUSE_CHILD_WRAPPER": "[ADOPT-REUSE]: Reused existing child wrapper",
190
196
  "DEBUG_MODE_ADOPT_WRAP": "ADOPT-WRAP",
191
- "DEBUG_MODE_ADOPT_DEFINE": "ADOPT-DEFINE: defining on wrapper",
192
- "DEBUG_MODE_ADOPT_DEFINED": "ADOPT-DEFINED: defined successfully on wrapper",
193
- "DEBUG_MODE_WRAP_CHILD_PATH_CHECK": "WRAP-CHILD-PATH: checking for child file path",
194
- "DEBUG_MODE_WRAP_CHILD_PATH_AVAILABLE": "WRAP-CHILD-PATH: __childFilePaths available",
195
- "DEBUG_MODE_WRAP_CHILD_PATH_USING": "WRAP-CHILD-PATH: Using __childFilePaths",
196
- "DEBUG_MODE_WRAP_CHILD_PATH_PRE_MAT": "WRAP-CHILD-PATH: Using __childFilePathsPreMaterialize",
197
- "DEBUG_MODE_WRAP_CHILD_PATH_FALLBACK": "WRAP-CHILD-PATH: Using fallback parentMetadata?.filePath",
197
+ "DEBUG_MODE_ADOPT_DEFINE": "[ADOPT-DEFINE]: defining on wrapper",
198
+ "DEBUG_MODE_ADOPT_DEFINED": "[ADOPT-DEFINED]: defined successfully on wrapper",
199
+ "DEBUG_MODE_WRAP_CHILD_PATH_CHECK": "[WRAP-CHILD-PATH]: checking for child file path",
200
+ "DEBUG_MODE_WRAP_CHILD_PATH_AVAILABLE": "[WRAP-CHILD-PATH]: __childFilePaths available",
201
+ "DEBUG_MODE_WRAP_CHILD_PATH_USING": "[WRAP-CHILD-PATH]: Using __childFilePaths",
202
+ "DEBUG_MODE_WRAP_CHILD_PATH_PRE_MAT": "[WRAP-CHILD-PATH]: Using __childFilePathsPreMaterialize",
203
+ "DEBUG_MODE_WRAP_CHILD_PATH_FALLBACK": "[WRAP-CHILD-PATH]: Using fallback parentMetadata?.filePath",
198
204
  "DEBUG_MODE_WAITING_TYPE": "WAITING-TYPE",
199
- "DEBUG_MODE_WAITING_TYPE_WALK_WRAPPER": "WAITING-TYPE-WALK: found in wrapper",
200
- "DEBUG_MODE_WAITING_TYPE_WALK_IMPL": "WAITING-TYPE-WALK: found in _impl",
201
- "DEBUG_MODE_WAITING_TYPE_WALK_DIRECT": "WAITING-TYPE-WALK: accessed directly",
205
+ "DEBUG_MODE_WAITING_TYPE_WALK_WRAPPER": "[WAITING-TYPE-WALK]: found in wrapper",
206
+ "DEBUG_MODE_WAITING_TYPE_WALK_IMPL": "[WAITING-TYPE-WALK]: found in _impl",
207
+ "DEBUG_MODE_WAITING_TYPE_WALK_DIRECT": "[WAITING-TYPE-WALK]: accessed directly",
202
208
  "DEBUG_MODE_WAITING_TYPE_RESOLVED": "WAITING-TYPE-RESOLVED",
203
- "DEBUG_MODE_WAITING_TYPE_INFLIGHT": "WAITING-TYPE-INFLIGHT: returning IN_FLIGHT",
204
- "DEBUG_MODE_WAITING_GET_PREMATURE": "WAITING-GET-PREMATURE: found in wrapper before materialization",
205
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT": "WAITING-GET-IMMEDIATE-MAT: triggering immediate materialization for collision-merged folder",
206
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_ERROR": "WAITING-GET-IMMEDIATE-MAT-ERROR: materialization failed",
207
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_SUCCESS": "WAITING-GET-IMMEDIATE-MAT-SUCCESS: now available in wrapper",
209
+ "DEBUG_MODE_WAITING_TYPE_INFLIGHT": "[WAITING-TYPE-INFLIGHT]: returning IN_FLIGHT",
210
+ "DEBUG_MODE_WAITING_GET_PREMATURE": "[WAITING-GET-PREMATURE]: found in wrapper before materialization",
211
+ "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT": "[WAITING-GET-IMMEDIATE-MAT]: triggering immediate materialization for collision-merged folder",
212
+ "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_ERROR": "[WAITING-GET-IMMEDIATE-MAT-ERROR]: materialization failed",
213
+ "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_SUCCESS": "[WAITING-GET-IMMEDIATE-MAT-SUCCESS]: now available in wrapper",
208
214
  "DEBUG_MODE_WAITING_APPLY_ENTRY": "WAITING-APPLY-ENTRY",
209
- "DEBUG_MODE_WAITING_APPLY_MATERIALIZE": "WAITING-APPLY-MATERIALIZE: Triggering materialization",
210
- "DEBUG_MODE_WAITING_APPLY_MATERIALIZED": "WAITING-APPLY-MATERIALIZED: Materialization complete",
211
- "DEBUG_MODE_WAITING_APPLY_START_WALK": "WAITING-APPLY-START-WALK: Starting propChain walk",
215
+ "DEBUG_MODE_WAITING_APPLY_MATERIALIZE": "[WAITING-APPLY-MATERIALIZE]: Triggering materialization",
216
+ "DEBUG_MODE_WAITING_APPLY_MATERIALIZED": "[WAITING-APPLY-MATERIALIZED]: Materialization complete",
217
+ "DEBUG_MODE_WAITING_APPLY_START_WALK": "[WAITING-APPLY-START-WALK]: Starting propChain walk",
212
218
  "DEBUG_MODE_WAITING_APPLY_WALK": "WAITING-APPLY-WALK",
213
219
  "DEBUG_MODE_WAITING_APPLY": "WAITING-APPLY",
214
220
  "DEBUG_MODE_GET_START": "GET-START",
215
221
  "DEBUG_MODE_INSPECT_LAZY_UNMATERIALIZED": "util.inspect.custom: Lazy unmaterialized",
216
222
  "DEBUG_MODE_GET_CACHED_REPLACE": "GET-CACHED-REPLACE",
217
223
  "DEBUG_MODE_GET_CACHED": "GET-CACHED",
218
- "DEBUG_MODE_GET_PROXYGET_ACCESSING": "GET-PROXYGET: Accessing",
219
- "DEBUG_MODE_GET_PROXYGET_FOUND": "GET-PROXYGET: Found in wrapper",
220
- "DEBUG_MODE_LAZY_GET_CREATE_WAITING_PROXY": "LAZY-GET: will create waiting proxy",
224
+ "DEBUG_MODE_GET_PROXYGET_ACCESSING": "[GET-PROXYGET]: Accessing",
225
+ "DEBUG_MODE_GET_PROXYGET_FOUND": "[GET-PROXYGET]: Found in wrapper",
226
+ "DEBUG_MODE_LAZY_GET_CREATE_WAITING_PROXY": "[LAZY-GET]: will create waiting proxy",
221
227
  "DEBUG_MODE_BUILD_LAZY_API_CALLED": "buildLazyAPI called",
222
228
  "DEBUG_MODE_COMPONENT_INITIALIZED": "Component initialized: {component} → this.{category}.{propertyName}",
223
229
  "DEBUG_MODE_LAZY_WRAPPER_REGISTERED": "Lazy wrapper registered",
@@ -261,6 +267,7 @@
261
267
  "HINT_WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "Cannot merge primitive values (strings, numbers, booleans). To replace the value, use collision mode 'replace'. To keep the existing value, continue using 'warn' mode.",
262
268
  "HINT_WARNING_OWNERSHIP_CONFLICT": "The path is already owned by another module. To force overwrite, use forceOverwrite: true in api.add() options, or call api.slothlet.api.remove() first to clear the path.",
263
269
  "HINT_V2_CONFIG_UNSUPPORTED": "This configuration option from v2 is not supported in v3. Update your configuration to use the v3 equivalent for better control and clarity.",
270
+ "HINT_V3_CONFIG_DEPRECATED": "This configuration option has been renamed for clarity. Update your code to use the new option name to ensure forward compatibility with v4.",
264
271
  "HINT_MODULE_LOAD_FAILED": "Check the module file for errors. Ensure it has valid JavaScript syntax and exports.",
265
272
  "HINT_MODULE_IMPORT_FAILED": "Ensure the module file exists and can be imported. Check for syntax errors or missing dependencies.",
266
273
  "HINT_MODULE_NO_EXPORTS": "The module must export at least one function or object.",
@@ -405,7 +412,29 @@
405
412
  "PERM_RULE_CONDITION_INVALID": "rule.condition must be a plain object, a function, or an array where each entry is a plain object or function",
406
413
  "BRACE_EXPANSION_MAX_DEPTH": "Brace expansion exceeded maximum depth of {maxDepth}",
407
414
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Reduce nesting in your brace patterns or increase the maxDepth option.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "Permission manager is not available in this Slothlet instance"
415
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "Permission manager is not available in this Slothlet instance",
416
+ "MODULE_MANIFEST_NOT_FOUND": "Module manifest not found for package '{packageName}': expected '{manifestPath}' but the file does not exist.",
417
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Plugin modules must ship a 'slothlet.module.json' at the package root (or the file/key specified via the `manifest` override). Check that the file exists in the package and that the override locator is correct.",
418
+ "MODULE_MANIFEST_INVALID": "Module manifest is invalid for package '{packageName}' at '{manifestPath}': {reason}.",
419
+ "HINT_MODULE_MANIFEST_INVALID": "Open the manifest and ensure it is valid JSON and matches the slothlet module schema (see schemas/slothlet.module.schema.json). Required fields: schemaVersion, mountPath, apiDir.",
420
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "Module manifest for package '{packageName}' contains unrecognised top-level field '{field}'. Unknown fields are rejected; use the dedicated 'metadata' block for developer-defined extras.",
421
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "If '{field}' is a typo, fix it. If it is intentional developer metadata, move it inside the 'metadata' object.",
422
+ "MODULE_MANIFEST_NAME_MISMATCH": "Module manifest for package '{packageName}' declares name '{manifestName}' which does not match package.json name '{packageName}'.",
423
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "The 'name' field in slothlet.module.json is optional but must match package.json when present. Either remove the manifest 'name' field or align it with package.json.",
424
+ "MODULE_MANIFEST_VERSION_MISMATCH": "Module manifest for package '{packageName}' declares version '{manifestVersion}' which does not match package.json version '{packageVersion}'.",
425
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "The 'version' field in slothlet.module.json is optional but must match package.json when present. Either remove the manifest 'version' field or align it with package.json.",
426
+ "MODULE_PATH_TRAVERSAL": "Module package '{packageName}' has apiDir '{apiDir}' that resolves outside the package root ('{resolvedPath}' is not under '{packageRoot}').",
427
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir must be a relative path that stays inside the package. Remove '..' segments and absolute paths.",
428
+ "MODULE_VERSION_UNSUPPORTED": "Module manifest for package '{packageName}' uses unsupported schemaVersion '{schemaVersion}'. Supported: 1.",
429
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Upgrade slothlet to a version that supports schemaVersion {schemaVersion}, or update the manifest to use schemaVersion 1.",
430
+ "MODULE_PACKAGE_NOT_FOUND": "Module package '{packageName}' was not found in the discovery cache. {hint}",
431
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "Either the package is not installed, the scanRoot does not cover its location, or no discover() call has been made yet. addModule(name) will lazily run discover() with scanRoot=process.cwd() if the cache is empty.",
432
+ "MODULE_RESERVED_MOUNTPATH": "Module package '{packageName}' declares reserved mountPath root '{mountPathRoot}' (from mountPath '{mountPath}'). Reserved roots: slothlet, shutdown, destroy.",
433
+ "HINT_MODULE_RESERVED_MOUNTPATH": "Reserved mountPath roots are used by slothlet's built-in surface and cannot be claimed by modules. Choose a different root segment.",
434
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Module package '{packageName}' version '{version}' was found at multiple distinct real paths: {paths}.",
435
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "This is almost certainly a misconfiguration — the same package at the same version installed in two unrelated locations. Investigate which install is intended and remove the other.",
436
+ "MODULE_MOUNT_COLLISION": "Module package '{packageName}' cannot mount at '{mountPath}': path is already occupied by module '{existingModuleID}' and collisionMode is '{collisionMode}'.",
437
+ "HINT_MODULE_MOUNT_COLLISION": "Either change the manifest's mountPath, pass `collisionMode: \"merge\"` to `addModule()` / `addModules()` to allow coexistence, or call `removeModule()` on the existing module first."
409
438
  },
410
439
  "metadata": {
411
440
  "code": "en-gb",