@cldmv/slothlet 3.6.0 → 3.8.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 (40) hide show
  1. package/README.md +150 -732
  2. package/REFERENCE.md +2 -0
  3. package/dist/lib/builders/api_builder.mjs +1 -1
  4. package/dist/lib/handlers/module-manager.mjs +17 -0
  5. package/dist/lib/handlers/permission-manager.mjs +1 -1
  6. package/dist/lib/handlers/unified-wrapper.mjs +1 -1
  7. package/dist/lib/helpers/config.mjs +1 -1
  8. package/dist/lib/helpers/eventemitter-context.mjs +1 -1
  9. package/dist/lib/helpers/module-discovery.mjs +17 -0
  10. package/dist/lib/helpers/module-manifest-validator.mjs +17 -0
  11. package/dist/lib/helpers/module-sort.mjs +17 -0
  12. package/dist/lib/i18n/languages/de-de.json +23 -1
  13. package/dist/lib/i18n/languages/en-gb.json +23 -1
  14. package/dist/lib/i18n/languages/en-us.json +23 -1
  15. package/dist/lib/i18n/languages/es-es.json +23 -1
  16. package/dist/lib/i18n/languages/es-mx.json +23 -1
  17. package/dist/lib/i18n/languages/fr-fr.json +23 -1
  18. package/dist/lib/i18n/languages/hi-in.json +23 -1
  19. package/dist/lib/i18n/languages/ja-jp.json +23 -1
  20. package/dist/lib/i18n/languages/ko-kr.json +23 -1
  21. package/dist/lib/i18n/languages/pt-br.json +23 -1
  22. package/dist/lib/i18n/languages/ru-ru.json +23 -1
  23. package/dist/lib/i18n/languages/zh-cn.json +23 -1
  24. package/package.json +5 -9
  25. package/schemas/slothlet.module.schema.json +98 -0
  26. package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
  27. package/types/dist/lib/handlers/module-manager.d.mts +29 -0
  28. package/types/dist/lib/handlers/module-manager.d.mts.map +1 -0
  29. package/types/dist/lib/handlers/permission-manager.d.mts +2 -0
  30. package/types/dist/lib/handlers/permission-manager.d.mts.map +1 -1
  31. package/types/dist/lib/handlers/unified-wrapper.d.mts.map +1 -1
  32. package/types/dist/lib/helpers/config.d.mts +2 -0
  33. package/types/dist/lib/helpers/config.d.mts.map +1 -1
  34. package/types/dist/lib/helpers/eventemitter-context.d.mts.map +1 -1
  35. package/types/dist/lib/helpers/module-discovery.d.mts +8 -0
  36. package/types/dist/lib/helpers/module-discovery.d.mts.map +1 -0
  37. package/types/dist/lib/helpers/module-manifest-validator.d.mts +14 -0
  38. package/types/dist/lib/helpers/module-manifest-validator.d.mts.map +1 -0
  39. package/types/dist/lib/helpers/module-sort.d.mts +2 -0
  40. package/types/dist/lib/helpers/module-sort.d.mts.map +1 -0
@@ -405,7 +405,29 @@
405
405
  "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
406
  "BRACE_EXPANSION_MAX_DEPTH": "Brace expansion exceeded maximum depth of {maxDepth}",
407
407
  "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"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "Permission manager is not available in this Slothlet instance",
409
+ "MODULE_MANIFEST_NOT_FOUND": "Module manifest not found for package '{packageName}': expected '{manifestPath}' but the file does not exist.",
410
+ "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.",
411
+ "MODULE_MANIFEST_INVALID": "Module manifest is invalid for package '{packageName}' at '{manifestPath}': {reason}.",
412
+ "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.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "Module manifest for package '{packageName}' contains unrecognized top-level field '{field}'. Unknown fields are rejected; use the dedicated 'metadata' block for developer-defined extras.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "If '{field}' is a typo, fix it. If it is intentional developer metadata, move it inside the 'metadata' object.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "Module manifest for package '{packageName}' declares name '{manifestName}' which does not match package.json name '{packageName}'.",
416
+ "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.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "Module manifest for package '{packageName}' declares version '{manifestVersion}' which does not match package.json version '{packageVersion}'.",
418
+ "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.",
419
+ "MODULE_PATH_TRAVERSAL": "Module package '{packageName}' has apiDir '{apiDir}' that resolves outside the package root ('{resolvedPath}' is not under '{packageRoot}').",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir must be a relative path that stays inside the package. Remove '..' segments and absolute paths.",
421
+ "MODULE_VERSION_UNSUPPORTED": "Module manifest for package '{packageName}' uses unsupported schemaVersion '{schemaVersion}'. Supported: 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Upgrade slothlet to a version that supports schemaVersion {schemaVersion}, or update the manifest to use schemaVersion 1.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "Module package '{packageName}' was not found in the discovery cache. {hint}",
424
+ "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.",
425
+ "MODULE_RESERVED_MOUNTPATH": "Module package '{packageName}' declares reserved mountPath root '{mountPathRoot}' (from mountPath '{mountPath}'). Reserved roots: slothlet, shutdown, destroy.",
426
+ "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.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Module package '{packageName}' version '{version}' was found at multiple distinct real paths: {paths}.",
428
+ "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.",
429
+ "MODULE_MOUNT_COLLISION": "Module package '{packageName}' cannot mount at '{mountPath}': path is already occupied by module '{existingModuleID}' and collisionMode is '{collisionMode}'.",
430
+ "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
431
  },
410
432
  "metadata": {
411
433
  "code": "en-us",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition debe ser un objeto plano, una función o un arreglo donde cada entrada sea un objeto plano o una función",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "La expansión de llaves superó la profundidad máxima de {maxDepth}",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Reduce el anidamiento en tus patrones de llaves o aumenta la opción maxDepth.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "El administrador de permisos no está disponible en esta instancia de Slothlet"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "El administrador de permisos no está disponible en esta instancia de Slothlet",
409
+ "MODULE_MANIFEST_NOT_FOUND": "Manifiesto de módulo no encontrado para el paquete '{packageName}': se esperaba '{manifestPath}' pero el archivo no existe.",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Los módulos plugin deben incluir un 'slothlet.module.json' en la raíz del paquete (o el archivo/clave especificado mediante la sobrescritura `manifest`). Verifique que el archivo exista en el paquete y que el localizador de sobrescritura sea correcto.",
411
+ "MODULE_MANIFEST_INVALID": "El manifiesto del módulo no es válido para el paquete '{packageName}' en '{manifestPath}': {reason}.",
412
+ "HINT_MODULE_MANIFEST_INVALID": "Abra el manifiesto y asegúrese de que sea JSON válido y coincida con el esquema del módulo slothlet (consulte schemas/slothlet.module.schema.json). Campos requeridos: schemaVersion, mountPath, apiDir.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "El manifiesto del módulo para el paquete '{packageName}' contiene un campo de nivel superior no reconocido '{field}'. Los campos desconocidos son rechazados; use el bloque 'metadata' dedicado para extras definidos por el desarrollador.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Si '{field}' es un error tipográfico, corríjalo. Si son metadatos intencionales del desarrollador, muévalos dentro del objeto 'metadata'.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "El manifiesto del módulo para el paquete '{packageName}' declara el nombre '{manifestName}' que no coincide con el nombre en package.json '{packageName}'.",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "El campo 'name' en slothlet.module.json es opcional pero debe coincidir con package.json cuando está presente. Elimine el campo 'name' del manifiesto o alinéelo con package.json.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "El manifiesto del módulo para el paquete '{packageName}' declara la versión '{manifestVersion}' que no coincide con la versión en package.json '{packageVersion}'.",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "El campo 'version' en slothlet.module.json es opcional pero debe coincidir con package.json cuando está presente. Elimine el campo 'version' del manifiesto o alinéelo con package.json.",
419
+ "MODULE_PATH_TRAVERSAL": "El paquete de módulo '{packageName}' tiene apiDir '{apiDir}' que se resuelve fuera de la raíz del paquete ('{resolvedPath}' no está bajo '{packageRoot}').",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir debe ser una ruta relativa que permanezca dentro del paquete. Elimine los segmentos '..' y rutas absolutas.",
421
+ "MODULE_VERSION_UNSUPPORTED": "El manifiesto del módulo para el paquete '{packageName}' utiliza una schemaVersion no compatible '{schemaVersion}'. Compatibles: 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Actualice slothlet a una versión que sea compatible con schemaVersion {schemaVersion}, o actualice el manifiesto para usar schemaVersion 1.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "Paquete de módulo '{packageName}' no encontrado en la caché de descubrimiento. {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "El paquete no está instalado, scanRoot no cubre su ubicación, o aún no se ha realizado una llamada a discover(). addModule(name) ejecutará discover() de forma diferida con scanRoot=process.cwd() si la caché está vacía.",
425
+ "MODULE_RESERVED_MOUNTPATH": "El paquete de módulo '{packageName}' declara la raíz reservada de mountPath '{mountPathRoot}' (de mountPath '{mountPath}'). Raíces reservadas: slothlet, shutdown, destroy.",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "Las raíces reservadas de mountPath son utilizadas por la superficie integrada de slothlet y no pueden ser reclamadas por módulos. Elija un segmento raíz diferente.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "El paquete de módulo '{packageName}' versión '{version}' se encontró en múltiples rutas reales distintas: {paths}.",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Esto es casi con certeza una configuración incorrecta — el mismo paquete en la misma versión instalado en dos ubicaciones no relacionadas. Investigue cuál instalación es la deseada y elimine la otra.",
429
+ "MODULE_MOUNT_COLLISION": "El paquete de módulo '{packageName}' no se puede montar en '{mountPath}': la ruta ya está ocupada por el módulo '{existingModuleID}' y collisionMode es '{collisionMode}'.",
430
+ "HINT_MODULE_MOUNT_COLLISION": "Cambie el mountPath del manifiesto, pase `collisionMode: \"merge\"` a `addModule()` / `addModules()` para permitir la coexistencia, o llame primero a `removeModule()` en el módulo existente."
409
431
  },
410
432
  "metadata": {
411
433
  "code": "es-es",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition debe ser un objeto plano, una función o un arreglo donde cada entrada sea un objeto plano o una función",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "La expansión de llaves superó la profundidad máxima de {maxDepth}",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Reduce el anidamiento en tus patrones de llaves o aumenta la opción maxDepth.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "El administrador de permisos no está disponible en esta instancia de Slothlet"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "El administrador de permisos no está disponible en esta instancia de Slothlet",
409
+ "MODULE_MANIFEST_NOT_FOUND": "Manifiesto de módulo no encontrado para el paquete '{packageName}': se esperaba '{manifestPath}' pero el archivo no existe.",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Los módulos plugin deben incluir un 'slothlet.module.json' en la raíz del paquete (o el archivo/clave especificado mediante la sobrescritura `manifest`). Verifica que el archivo exista en el paquete y que el localizador de sobrescritura sea correcto.",
411
+ "MODULE_MANIFEST_INVALID": "El manifiesto del módulo no es válido para el paquete '{packageName}' en '{manifestPath}': {reason}.",
412
+ "HINT_MODULE_MANIFEST_INVALID": "Abre el manifiesto y asegúrate de que sea JSON válido y coincida con el esquema del módulo slothlet (consulta schemas/slothlet.module.schema.json). Campos requeridos: schemaVersion, mountPath, apiDir.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "El manifiesto del módulo para el paquete '{packageName}' contiene un campo de nivel superior no reconocido '{field}'. Los campos desconocidos son rechazados; usa el bloque 'metadata' dedicado para extras definidos por el desarrollador.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Si '{field}' es un error tipográfico, corrígelo. Si son metadatos intencionales del desarrollador, muévelos dentro del objeto 'metadata'.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "El manifiesto del módulo para el paquete '{packageName}' declara el nombre '{manifestName}' que no coincide con el nombre en package.json '{packageName}'.",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "El campo 'name' en slothlet.module.json es opcional pero debe coincidir con package.json cuando está presente. Elimina el campo 'name' del manifiesto o alinéalo con package.json.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "El manifiesto del módulo para el paquete '{packageName}' declara la versión '{manifestVersion}' que no coincide con la versión en package.json '{packageVersion}'.",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "El campo 'version' en slothlet.module.json es opcional pero debe coincidir con package.json cuando está presente. Elimina el campo 'version' del manifiesto o alinéalo con package.json.",
419
+ "MODULE_PATH_TRAVERSAL": "El paquete de módulo '{packageName}' tiene apiDir '{apiDir}' que se resuelve fuera de la raíz del paquete ('{resolvedPath}' no está bajo '{packageRoot}').",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir debe ser una ruta relativa que permanezca dentro del paquete. Elimina los segmentos '..' y rutas absolutas.",
421
+ "MODULE_VERSION_UNSUPPORTED": "El manifiesto del módulo para el paquete '{packageName}' utiliza una schemaVersion no compatible '{schemaVersion}'. Compatibles: 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Actualiza slothlet a una versión que sea compatible con schemaVersion {schemaVersion}, o actualiza el manifiesto para usar schemaVersion 1.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "Paquete de módulo '{packageName}' no encontrado en la caché de descubrimiento. {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "El paquete no está instalado, scanRoot no cubre su ubicación, o aún no se ha realizado una llamada a discover(). addModule(name) ejecutará discover() de forma diferida con scanRoot=process.cwd() si la caché está vacía.",
425
+ "MODULE_RESERVED_MOUNTPATH": "El paquete de módulo '{packageName}' declara la raíz reservada de mountPath '{mountPathRoot}' (de mountPath '{mountPath}'). Raíces reservadas: slothlet, shutdown, destroy.",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "Las raíces reservadas de mountPath son utilizadas por la superficie integrada de slothlet y no pueden ser reclamadas por módulos. Elige un segmento raíz diferente.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "El paquete de módulo '{packageName}' versión '{version}' se encontró en múltiples rutas reales distintas: {paths}.",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Esto es casi con certeza una configuración incorrecta — el mismo paquete en la misma versión instalado en dos ubicaciones no relacionadas. Investiga cuál instalación es la deseada y elimina la otra.",
429
+ "MODULE_MOUNT_COLLISION": "El paquete de módulo '{packageName}' no se puede montar en '{mountPath}': la ruta ya está ocupada por el módulo '{existingModuleID}' y collisionMode es '{collisionMode}'.",
430
+ "HINT_MODULE_MOUNT_COLLISION": "Cambia el mountPath del manifiesto, pasa `collisionMode: \"merge\"` a `addModule()` / `addModules()` para permitir la coexistencia, o llama primero a `removeModule()` en el módulo existente."
409
431
  },
410
432
  "metadata": {
411
433
  "code": "es-mx",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition doit être un objet simple, une fonction, ou un tableau dont chaque entrée est un objet simple ou une fonction",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "L'expansion des accolades a dépassé la profondeur maximale de {maxDepth}",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Réduisez le niveau d'imbrication dans vos motifs d'accolades ou augmentez l'option maxDepth.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "Le gestionnaire de permissions n'est pas disponible dans cette instance Slothlet"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "Le gestionnaire de permissions n'est pas disponible dans cette instance Slothlet",
409
+ "MODULE_MANIFEST_NOT_FOUND": "Manifeste de module introuvable pour le paquet '{packageName}' : '{manifestPath}' attendu mais le fichier n'existe pas.",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Les modules plugin doivent fournir un 'slothlet.module.json' à la racine du paquet (ou le fichier/clé spécifié via la surcharge `manifest`). Vérifiez que le fichier existe dans le paquet et que le localisateur de surcharge est correct.",
411
+ "MODULE_MANIFEST_INVALID": "Le manifeste de module est invalide pour le paquet '{packageName}' à '{manifestPath}' : {reason}.",
412
+ "HINT_MODULE_MANIFEST_INVALID": "Ouvrez le manifeste et assurez-vous qu'il est en JSON valide et correspond au schéma de module slothlet (voir schemas/slothlet.module.schema.json). Champs requis : schemaVersion, mountPath, apiDir.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "Le manifeste de module pour le paquet '{packageName}' contient un champ de niveau supérieur non reconnu '{field}'. Les champs inconnus sont rejetés ; utilisez le bloc 'metadata' dédié pour les ajouts définis par le développeur.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Si '{field}' est une faute de frappe, corrigez-la. S'il s'agit de métadonnées intentionnelles du développeur, déplacez-les dans l'objet 'metadata'.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "Le manifeste de module pour le paquet '{packageName}' déclare le nom '{manifestName}' qui ne correspond pas au nom dans package.json '{packageName}'.",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "Le champ 'name' dans slothlet.module.json est optionnel mais doit correspondre à package.json lorsqu'il est présent. Supprimez le champ 'name' du manifeste ou alignez-le avec package.json.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "Le manifeste de module pour le paquet '{packageName}' déclare la version '{manifestVersion}' qui ne correspond pas à la version dans package.json '{packageVersion}'.",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "Le champ 'version' dans slothlet.module.json est optionnel mais doit correspondre à package.json lorsqu'il est présent. Supprimez le champ 'version' du manifeste ou alignez-le avec package.json.",
419
+ "MODULE_PATH_TRAVERSAL": "Le paquet de module '{packageName}' a un apiDir '{apiDir}' qui se résout en dehors de la racine du paquet ('{resolvedPath}' n'est pas sous '{packageRoot}').",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir doit être un chemin relatif qui reste à l'intérieur du paquet. Supprimez les segments '..' et les chemins absolus.",
421
+ "MODULE_VERSION_UNSUPPORTED": "Le manifeste de module pour le paquet '{packageName}' utilise une schemaVersion non prise en charge '{schemaVersion}'. Prises en charge : 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Mettez à jour slothlet vers une version prenant en charge schemaVersion {schemaVersion}, ou mettez à jour le manifeste pour utiliser schemaVersion 1.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "Paquet de module '{packageName}' introuvable dans le cache de découverte. {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "Soit le paquet n'est pas installé, soit scanRoot ne couvre pas son emplacement, soit aucun appel à discover() n'a encore été effectué. addModule(name) exécutera discover() de manière paresseuse avec scanRoot=process.cwd() si le cache est vide.",
425
+ "MODULE_RESERVED_MOUNTPATH": "Le paquet de module '{packageName}' déclare une racine mountPath réservée '{mountPathRoot}' (à partir de mountPath '{mountPath}'). Racines réservées : slothlet, shutdown, destroy.",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "Les racines mountPath réservées sont utilisées par la surface intégrée de slothlet et ne peuvent pas être revendiquées par des modules. Choisissez un segment racine différent.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Le paquet de module '{packageName}' version '{version}' a été trouvé à plusieurs chemins réels distincts : {paths}.",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Il s'agit presque certainement d'une mauvaise configuration — le même paquet à la même version installé dans deux emplacements non liés. Identifiez quelle installation est prévue et supprimez l'autre.",
429
+ "MODULE_MOUNT_COLLISION": "Le paquet de module '{packageName}' ne peut pas être monté à '{mountPath}' : le chemin est déjà occupé par le module '{existingModuleID}' et collisionMode est '{collisionMode}'.",
430
+ "HINT_MODULE_MOUNT_COLLISION": "Changez le mountPath du manifeste, passez `collisionMode: \"merge\"` à `addModule()` / `addModules()` pour permettre la coexistence, ou appelez d'abord `removeModule()` sur le module existant."
409
431
  },
410
432
  "metadata": {
411
433
  "code": "fr-fr",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition एक साधारण ऑब्जेक्ट, एक फ़ंक्शन, या ऐसा ऐरे होना चाहिए जिसमें प्रत्येक प्रविष्टि एक साधारण ऑब्जेक्ट या फ़ंक्शन हो",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "ब्रेस विस्तार ने {maxDepth} की अधिकतम गहराई पार कर दी",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "अपने ब्रेस पैटर्न में नेस्टिंग कम करें या maxDepth विकल्प बढ़ाएं।",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "अनुमति प्रबंधक इस Slothlet इंस्टेंस में उपलब्ध नहीं है"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "अनुमति प्रबंधक इस Slothlet इंस्टेंस में उपलब्ध नहीं है",
409
+ "MODULE_MANIFEST_NOT_FOUND": "पैकेज '{packageName}' के लिए मॉड्यूल मेनिफ़ेस्ट नहीं मिला: '{manifestPath}' की अपेक्षा थी लेकिन फ़ाइल मौजूद नहीं है।",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "प्लगइन मॉड्यूल को पैकेज रूट पर 'slothlet.module.json' (या `manifest` ओवरराइड के माध्यम से निर्दिष्ट फ़ाइल/कुंजी) शिप करना चाहिए। जाँचें कि फ़ाइल पैकेज में मौजूद है और ओवरराइड लोकेटर सही है।",
411
+ "MODULE_MANIFEST_INVALID": "पैकेज '{packageName}' के लिए मॉड्यूल मेनिफ़ेस्ट '{manifestPath}' पर अमान्य है: {reason}।",
412
+ "HINT_MODULE_MANIFEST_INVALID": "मेनिफ़ेस्ट खोलें और सुनिश्चित करें कि यह वैध JSON है और slothlet मॉड्यूल स्कीमा से मेल खाता है (schemas/slothlet.module.schema.json देखें)। आवश्यक फ़ील्ड: schemaVersion, mountPath, apiDir।",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "पैकेज '{packageName}' के लिए मॉड्यूल मेनिफ़ेस्ट में अपरिचित शीर्ष-स्तरीय फ़ील्ड '{field}' है। अज्ञात फ़ील्ड अस्वीकार किए जाते हैं; डेवलपर-परिभाषित अतिरिक्त के लिए समर्पित 'metadata' ब्लॉक का उपयोग करें।",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "यदि '{field}' टाइपो है, तो इसे ठीक करें। यदि यह जानबूझकर डेवलपर मेटाडेटा है, तो इसे 'metadata' ऑब्जेक्ट के अंदर ले जाएँ।",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "पैकेज '{packageName}' के लिए मॉड्यूल मेनिफ़ेस्ट नाम '{manifestName}' घोषित करता है जो package.json के नाम '{packageName}' से मेल नहीं खाता।",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "slothlet.module.json में 'name' फ़ील्ड वैकल्पिक है लेकिन उपस्थित होने पर package.json से मेल खाना चाहिए। या तो मेनिफ़ेस्ट 'name' फ़ील्ड हटाएँ या इसे package.json के साथ संरेखित करें।",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "पैकेज '{packageName}' के लिए मॉड्यूल मेनिफ़ेस्ट संस्करण '{manifestVersion}' घोषित करता है जो package.json के संस्करण '{packageVersion}' से मेल नहीं खाता।",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "slothlet.module.json में 'version' फ़ील्ड वैकल्पिक है लेकिन उपस्थित होने पर package.json से मेल खाना चाहिए। या तो मेनिफ़ेस्ट 'version' फ़ील्ड हटाएँ या इसे package.json के साथ संरेखित करें।",
419
+ "MODULE_PATH_TRAVERSAL": "मॉड्यूल पैकेज '{packageName}' में apiDir '{apiDir}' है जो पैकेज रूट के बाहर हल होता है ('{resolvedPath}' '{packageRoot}' के अंतर्गत नहीं है)।",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir एक सापेक्ष पथ होना चाहिए जो पैकेज के अंदर रहे। '..' खंड और निरपेक्ष पथ हटाएँ।",
421
+ "MODULE_VERSION_UNSUPPORTED": "पैकेज '{packageName}' के लिए मॉड्यूल मेनिफ़ेस्ट असमर्थित schemaVersion '{schemaVersion}' का उपयोग करता है। समर्थित: 1।",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "schemaVersion {schemaVersion} का समर्थन करने वाले संस्करण में slothlet अपग्रेड करें, या मेनिफ़ेस्ट को schemaVersion 1 का उपयोग करने के लिए अपडेट करें।",
423
+ "MODULE_PACKAGE_NOT_FOUND": "मॉड्यूल पैकेज '{packageName}' खोज कैश में नहीं मिला। {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "या तो पैकेज स्थापित नहीं है, scanRoot इसके स्थान को कवर नहीं करता है, या अभी तक कोई discover() कॉल नहीं किया गया है। यदि कैश खाली है, तो addModule(name) scanRoot=process.cwd() के साथ discover() को आलसी रूप से चलाएगा।",
425
+ "MODULE_RESERVED_MOUNTPATH": "मॉड्यूल पैकेज '{packageName}' आरक्षित mountPath रूट '{mountPathRoot}' घोषित करता है (mountPath '{mountPath}' से)। आरक्षित रूट: slothlet, shutdown, destroy।",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "आरक्षित mountPath रूट slothlet के अंतर्निहित सतह द्वारा उपयोग किए जाते हैं और मॉड्यूल द्वारा दावा नहीं किए जा सकते। एक अलग रूट खंड चुनें।",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "मॉड्यूल पैकेज '{packageName}' संस्करण '{version}' कई अलग-अलग वास्तविक पथों पर मिला: {paths}।",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "यह लगभग निश्चित रूप से गलत कॉन्फ़िगरेशन है — एक ही संस्करण का एक ही पैकेज दो असंबंधित स्थानों पर स्थापित है। जाँच करें कि कौन सा इंस्टॉल इरादा है और दूसरे को हटा दें।",
429
+ "MODULE_MOUNT_COLLISION": "मॉड्यूल पैकेज '{packageName}' को '{mountPath}' पर माउंट नहीं किया जा सकता: पथ पहले से ही मॉड्यूल '{existingModuleID}' द्वारा अधिकृत है और collisionMode '{collisionMode}' है।",
430
+ "HINT_MODULE_MOUNT_COLLISION": "मेनिफ़ेस्ट का mountPath बदलें, सह-अस्तित्व की अनुमति देने के लिए `addModule()` / `addModules()` में `collisionMode: \"merge\"` पास करें, या पहले मौजूदा मॉड्यूल पर `removeModule()` कॉल करें।"
409
431
  },
410
432
  "metadata": {
411
433
  "code": "hi-in",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition はプレーンオブジェクト、関数、または各要素がプレーンオブジェクトか関数である配列である必要があります",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "ブレース展開が最大深度 {maxDepth} を超えました",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "波括弧パターンのネストを減らすか、maxDepthオプションを増やしてください。",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "権限マネージャーはこのSlothletインスタンスで利用できません"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "権限マネージャーはこのSlothletインスタンスで利用できません",
409
+ "MODULE_MANIFEST_NOT_FOUND": "パッケージ '{packageName}' のモジュールマニフェストが見つかりません: '{manifestPath}' を期待しましたが、ファイルが存在しません。",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "プラグインモジュールはパッケージのルートに 'slothlet.module.json'(または `manifest` オーバーライドで指定されたファイル/キー)を含める必要があります。ファイルがパッケージ内に存在し、オーバーライドロケーターが正しいか確認してください。",
411
+ "MODULE_MANIFEST_INVALID": "パッケージ '{packageName}' のモジュールマニフェストが '{manifestPath}' で無効です: {reason}。",
412
+ "HINT_MODULE_MANIFEST_INVALID": "マニフェストを開き、有効なJSONであり、slothletモジュールスキーマ(schemas/slothlet.module.schema.json を参照)に一致することを確認してください。必須フィールド: schemaVersion、mountPath、apiDir。",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "パッケージ '{packageName}' のモジュールマニフェストに認識されないトップレベルフィールド '{field}' が含まれています。未知のフィールドは拒否されます。開発者定義の追加項目には専用の 'metadata' ブロックを使用してください。",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "'{field}' がタイプミスの場合は修正してください。意図的な開発者メタデータの場合は、'metadata' オブジェクト内に移動してください。",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "パッケージ '{packageName}' のモジュールマニフェストは名前 '{manifestName}' を宣言していますが、package.json の名前 '{packageName}' と一致しません。",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "slothlet.module.json の 'name' フィールドはオプションですが、存在する場合は package.json と一致する必要があります。マニフェストの 'name' フィールドを削除するか、package.json と揃えてください。",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "パッケージ '{packageName}' のモジュールマニフェストはバージョン '{manifestVersion}' を宣言していますが、package.json のバージョン '{packageVersion}' と一致しません。",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "slothlet.module.json の 'version' フィールドはオプションですが、存在する場合は package.json と一致する必要があります。マニフェストの 'version' フィールドを削除するか、package.json と揃えてください。",
419
+ "MODULE_PATH_TRAVERSAL": "モジュールパッケージ '{packageName}' の apiDir '{apiDir}' がパッケージルートの外側に解決されます('{resolvedPath}' は '{packageRoot}' の下にありません)。",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir はパッケージ内に留まる相対パスである必要があります。'..' セグメントと絶対パスを削除してください。",
421
+ "MODULE_VERSION_UNSUPPORTED": "パッケージ '{packageName}' のモジュールマニフェストはサポートされていない schemaVersion '{schemaVersion}' を使用しています。サポートされているバージョン: 1。",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "schemaVersion {schemaVersion} をサポートするバージョンに slothlet を更新するか、マニフェストを schemaVersion 1 を使用するように更新してください。",
423
+ "MODULE_PACKAGE_NOT_FOUND": "モジュールパッケージ '{packageName}' は検出キャッシュ内で見つかりませんでした。{hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "パッケージがインストールされていない、scanRoot がその場所をカバーしていない、または discover() の呼び出しがまだ行われていない可能性があります。キャッシュが空の場合、addModule(name) は scanRoot=process.cwd() で discover() を遅延実行します。",
425
+ "MODULE_RESERVED_MOUNTPATH": "モジュールパッケージ '{packageName}' は予約された mountPath ルート '{mountPathRoot}'(mountPath '{mountPath}' から)を宣言しています。予約されたルート: slothlet、shutdown、destroy。",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "予約された mountPath ルートは slothlet の組み込みサーフェスで使用されており、モジュールが請求することはできません。別のルートセグメントを選択してください。",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "モジュールパッケージ '{packageName}' バージョン '{version}' が複数の異なる実パスで見つかりました: {paths}。",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "これはほぼ確実に設定ミスです — 同じパッケージの同じバージョンが2つの無関係な場所にインストールされています。どのインストールが意図されたものかを調査し、もう一方を削除してください。",
429
+ "MODULE_MOUNT_COLLISION": "モジュールパッケージ '{packageName}' は '{mountPath}' にマウントできません: パスは既にモジュール '{existingModuleID}' によって占有されており、collisionMode は '{collisionMode}' です。",
430
+ "HINT_MODULE_MOUNT_COLLISION": "マニフェストの mountPath を変更するか、共存を許可するために `addModule()` / `addModules()` に `collisionMode: \"merge\"` を渡すか、まず既存のモジュールに対して `removeModule()` を呼び出してください。"
409
431
  },
410
432
  "metadata": {
411
433
  "code": "ja-jp",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition은 일반 객체, 함수 또는 각 항목이 일반 객체 또는 함수인 배열이어야 합니다",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "중괄호 확장이 최대 깊이 {maxDepth}을(를) 초과했습니다",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "중괄호 패턴의 중첩을 줄이거나 maxDepth 옵션을 늘리세요.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "권한 관리자가 이 Slothlet 인스턴스에서 사용할 수 없습니다"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "권한 관리자가 이 Slothlet 인스턴스에서 사용할 수 없습니다",
409
+ "MODULE_MANIFEST_NOT_FOUND": "패키지 '{packageName}'의 모듈 매니페스트를 찾을 수 없습니다: '{manifestPath}'를 예상했지만 파일이 존재하지 않습니다.",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "플러그인 모듈은 패키지 루트에 'slothlet.module.json'(또는 `manifest` 재정의로 지정된 파일/키)을 포함해야 합니다. 파일이 패키지에 존재하고 재정의 로케이터가 올바른지 확인하세요.",
411
+ "MODULE_MANIFEST_INVALID": "패키지 '{packageName}'의 모듈 매니페스트가 '{manifestPath}'에서 유효하지 않습니다: {reason}.",
412
+ "HINT_MODULE_MANIFEST_INVALID": "매니페스트를 열고 유효한 JSON이며 slothlet 모듈 스키마(schemas/slothlet.module.schema.json 참조)와 일치하는지 확인하세요. 필수 필드: schemaVersion, mountPath, apiDir.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "패키지 '{packageName}'의 모듈 매니페스트에 인식되지 않은 최상위 필드 '{field}'가 포함되어 있습니다. 알 수 없는 필드는 거부됩니다. 개발자 정의 추가 항목에는 전용 'metadata' 블록을 사용하세요.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "'{field}'가 오타인 경우 수정하세요. 의도적인 개발자 메타데이터인 경우 'metadata' 객체 안으로 이동하세요.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "패키지 '{packageName}'의 모듈 매니페스트가 이름 '{manifestName}'을(를) 선언하는데 package.json의 이름 '{packageName}'과(와) 일치하지 않습니다.",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "slothlet.module.json의 'name' 필드는 선택 사항이지만 존재하는 경우 package.json과 일치해야 합니다. 매니페스트의 'name' 필드를 제거하거나 package.json과 맞추세요.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "패키지 '{packageName}'의 모듈 매니페스트가 버전 '{manifestVersion}'을(를) 선언하는데 package.json의 버전 '{packageVersion}'과(와) 일치하지 않습니다.",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "slothlet.module.json의 'version' 필드는 선택 사항이지만 존재하는 경우 package.json과 일치해야 합니다. 매니페스트의 'version' 필드를 제거하거나 package.json과 맞추세요.",
419
+ "MODULE_PATH_TRAVERSAL": "모듈 패키지 '{packageName}'의 apiDir '{apiDir}'이(가) 패키지 루트 외부로 해석됩니다('{resolvedPath}'은(는) '{packageRoot}' 아래에 없음).",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir은 패키지 내부에 머무르는 상대 경로여야 합니다. '..' 세그먼트와 절대 경로를 제거하세요.",
421
+ "MODULE_VERSION_UNSUPPORTED": "패키지 '{packageName}'의 모듈 매니페스트가 지원되지 않는 schemaVersion '{schemaVersion}'을(를) 사용합니다. 지원: 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "schemaVersion {schemaVersion}을(를) 지원하는 버전으로 slothlet을 업그레이드하거나 매니페스트를 schemaVersion 1을 사용하도록 업데이트하세요.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "모듈 패키지 '{packageName}'을(를) 검색 캐시에서 찾을 수 없습니다. {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "패키지가 설치되지 않았거나, scanRoot가 해당 위치를 포함하지 않거나, 아직 discover() 호출이 이루어지지 않았습니다. 캐시가 비어 있으면 addModule(name)이 scanRoot=process.cwd()로 discover()를 지연 실행합니다.",
425
+ "MODULE_RESERVED_MOUNTPATH": "모듈 패키지 '{packageName}'이(가) 예약된 mountPath 루트 '{mountPathRoot}'(mountPath '{mountPath}'에서)을(를) 선언합니다. 예약된 루트: slothlet, shutdown, destroy.",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "예약된 mountPath 루트는 slothlet의 내장 표면에서 사용되며 모듈이 청구할 수 없습니다. 다른 루트 세그먼트를 선택하세요.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "모듈 패키지 '{packageName}' 버전 '{version}'이(가) 여러 개의 다른 실제 경로에서 발견되었습니다: {paths}.",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "이것은 거의 확실히 잘못된 구성입니다 — 동일한 버전의 동일한 패키지가 관련 없는 두 위치에 설치되어 있습니다. 어떤 설치가 의도된 것인지 조사하고 다른 것을 제거하세요.",
429
+ "MODULE_MOUNT_COLLISION": "모듈 패키지 '{packageName}'을(를) '{mountPath}'에 마운트할 수 없습니다: 경로가 이미 모듈 '{existingModuleID}'에 의해 점유되어 있고 collisionMode는 '{collisionMode}'입니다.",
430
+ "HINT_MODULE_MOUNT_COLLISION": "매니페스트의 mountPath를 변경하거나, 공존을 허용하기 위해 `addModule()` / `addModules()`에 `collisionMode: \"merge\"`를 전달하거나, 먼저 기존 모듈에서 `removeModule()`을 호출하세요."
409
431
  },
410
432
  "metadata": {
411
433
  "code": "ko-kr",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition deve ser um objeto simples, uma função ou um array em que cada entrada seja um objeto simples ou uma função",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "Expansão de chaves excedeu a profundidade máxima de {maxDepth}",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Reduza o aninhamento em seus padrões de chaves ou aumente a opção maxDepth.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "Gerenciador de permissões não está disponível nesta instância do Slothlet"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "Gerenciador de permissões não está disponível nesta instância do Slothlet",
409
+ "MODULE_MANIFEST_NOT_FOUND": "Manifesto do módulo não encontrado para o pacote '{packageName}': '{manifestPath}' esperado, mas o arquivo não existe.",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Os módulos plugin devem incluir um 'slothlet.module.json' na raiz do pacote (ou o arquivo/chave especificado via a sobrescrita `manifest`). Verifique se o arquivo existe no pacote e se o localizador de sobrescrita está correto.",
411
+ "MODULE_MANIFEST_INVALID": "O manifesto do módulo é inválido para o pacote '{packageName}' em '{manifestPath}': {reason}.",
412
+ "HINT_MODULE_MANIFEST_INVALID": "Abra o manifesto e certifique-se de que seja JSON válido e corresponda ao esquema do módulo slothlet (veja schemas/slothlet.module.schema.json). Campos obrigatórios: schemaVersion, mountPath, apiDir.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "O manifesto do módulo para o pacote '{packageName}' contém um campo de nível superior não reconhecido '{field}'. Campos desconhecidos são rejeitados; use o bloco 'metadata' dedicado para extras definidos pelo desenvolvedor.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Se '{field}' é um erro de digitação, corrija-o. Se forem metadados intencionais do desenvolvedor, mova-os para dentro do objeto 'metadata'.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "O manifesto do módulo para o pacote '{packageName}' declara o nome '{manifestName}' que não corresponde ao nome em package.json '{packageName}'.",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "O campo 'name' em slothlet.module.json é opcional, mas deve corresponder a package.json quando presente. Remova o campo 'name' do manifesto ou alinhe-o com package.json.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "O manifesto do módulo para o pacote '{packageName}' declara a versão '{manifestVersion}' que não corresponde à versão em package.json '{packageVersion}'.",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "O campo 'version' em slothlet.module.json é opcional, mas deve corresponder a package.json quando presente. Remova o campo 'version' do manifesto ou alinhe-o com package.json.",
419
+ "MODULE_PATH_TRAVERSAL": "O pacote de módulo '{packageName}' tem apiDir '{apiDir}' que se resolve fora da raiz do pacote ('{resolvedPath}' não está sob '{packageRoot}').",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir deve ser um caminho relativo que permaneça dentro do pacote. Remova os segmentos '..' e caminhos absolutos.",
421
+ "MODULE_VERSION_UNSUPPORTED": "O manifesto do módulo para o pacote '{packageName}' usa uma schemaVersion não suportada '{schemaVersion}'. Suportadas: 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Atualize o slothlet para uma versão que suporte schemaVersion {schemaVersion}, ou atualize o manifesto para usar schemaVersion 1.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "Pacote de módulo '{packageName}' não encontrado no cache de descoberta. {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "Ou o pacote não está instalado, ou scanRoot não cobre sua localização, ou nenhuma chamada a discover() foi feita ainda. addModule(name) executará discover() de forma preguiçosa com scanRoot=process.cwd() se o cache estiver vazio.",
425
+ "MODULE_RESERVED_MOUNTPATH": "O pacote de módulo '{packageName}' declara a raiz reservada de mountPath '{mountPathRoot}' (a partir de mountPath '{mountPath}'). Raízes reservadas: slothlet, shutdown, destroy.",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "As raízes reservadas de mountPath são usadas pela superfície integrada do slothlet e não podem ser reivindicadas por módulos. Escolha um segmento raiz diferente.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "O pacote de módulo '{packageName}' versão '{version}' foi encontrado em vários caminhos reais distintos: {paths}.",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Isso é quase certamente uma configuração incorreta — o mesmo pacote na mesma versão instalado em dois locais não relacionados. Investigue qual instalação é a pretendida e remova a outra.",
429
+ "MODULE_MOUNT_COLLISION": "O pacote de módulo '{packageName}' não pode ser montado em '{mountPath}': o caminho já está ocupado pelo módulo '{existingModuleID}' e collisionMode é '{collisionMode}'.",
430
+ "HINT_MODULE_MOUNT_COLLISION": "Altere o mountPath do manifesto, passe `collisionMode: \"merge\"` para `addModule()` / `addModules()` para permitir a coexistência, ou chame primeiro `removeModule()` no módulo existente."
409
431
  },
410
432
  "metadata": {
411
433
  "code": "pt-br",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition должно быть обычным объектом, функцией или массивом, в котором каждый элемент является обычным объектом или функцией",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "Расширение фигурных скобок превысило максимальную глубину {maxDepth}",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "Уменьшите вложенность в ваших шаблонах скобок или увеличьте параметр maxDepth.",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "Менеджер разрешений недоступен в этом экземпляре Slothlet"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "Менеджер разрешений недоступен в этом экземпляре Slothlet",
409
+ "MODULE_MANIFEST_NOT_FOUND": "Манифест модуля не найден для пакета '{packageName}': ожидался '{manifestPath}', но файл не существует.",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "Модули плагинов должны поставляться с 'slothlet.module.json' в корне пакета (или файлом/ключом, указанным через переопределение `manifest`). Проверьте, что файл существует в пакете и локатор переопределения корректен.",
411
+ "MODULE_MANIFEST_INVALID": "Манифест модуля недействителен для пакета '{packageName}' в '{manifestPath}': {reason}.",
412
+ "HINT_MODULE_MANIFEST_INVALID": "Откройте манифест и убедитесь, что это валидный JSON и он соответствует схеме модуля slothlet (см. schemas/slothlet.module.schema.json). Обязательные поля: schemaVersion, mountPath, apiDir.",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "Манифест модуля для пакета '{packageName}' содержит нераспознанное поле верхнего уровня '{field}'. Неизвестные поля отклоняются; используйте выделенный блок 'metadata' для определяемых разработчиком дополнений.",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Если '{field}' — это опечатка, исправьте её. Если это намеренные метаданные разработчика, переместите их внутрь объекта 'metadata'.",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "Манифест модуля для пакета '{packageName}' объявляет имя '{manifestName}', которое не совпадает с именем в package.json '{packageName}'.",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "Поле 'name' в slothlet.module.json является необязательным, но должно совпадать с package.json при наличии. Либо удалите поле 'name' из манифеста, либо приведите его в соответствие с package.json.",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "Манифест модуля для пакета '{packageName}' объявляет версию '{manifestVersion}', которая не совпадает с версией в package.json '{packageVersion}'.",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "Поле 'version' в slothlet.module.json является необязательным, но должно совпадать с package.json при наличии. Либо удалите поле 'version' из манифеста, либо приведите его в соответствие с package.json.",
419
+ "MODULE_PATH_TRAVERSAL": "Пакет модуля '{packageName}' имеет apiDir '{apiDir}', который разрешается за пределами корня пакета ('{resolvedPath}' не находится под '{packageRoot}').",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir должен быть относительным путём, остающимся внутри пакета. Удалите сегменты '..' и абсолютные пути.",
421
+ "MODULE_VERSION_UNSUPPORTED": "Манифест модуля для пакета '{packageName}' использует неподдерживаемую schemaVersion '{schemaVersion}'. Поддерживаемые: 1.",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "Обновите slothlet до версии, поддерживающей schemaVersion {schemaVersion}, или обновите манифест для использования schemaVersion 1.",
423
+ "MODULE_PACKAGE_NOT_FOUND": "Пакет модуля '{packageName}' не найден в кэше обнаружения. {hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "Либо пакет не установлен, либо scanRoot не охватывает его местоположение, либо вызов discover() ещё не был выполнен. addModule(name) лениво запустит discover() с scanRoot=process.cwd(), если кэш пуст.",
425
+ "MODULE_RESERVED_MOUNTPATH": "Пакет модуля '{packageName}' объявляет зарезервированный корень mountPath '{mountPathRoot}' (из mountPath '{mountPath}'). Зарезервированные корни: slothlet, shutdown, destroy.",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "Зарезервированные корни mountPath используются встроенным интерфейсом slothlet и не могут быть востребованы модулями. Выберите другой корневой сегмент.",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Пакет модуля '{packageName}' версии '{version}' был найден по нескольким различным реальным путям: {paths}.",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Это почти наверняка ошибка конфигурации — один и тот же пакет той же версии установлен в двух несвязанных местах. Выясните, какая установка является целевой, и удалите другую.",
429
+ "MODULE_MOUNT_COLLISION": "Пакет модуля '{packageName}' не может быть смонтирован в '{mountPath}': путь уже занят модулем '{existingModuleID}' и collisionMode имеет значение '{collisionMode}'.",
430
+ "HINT_MODULE_MOUNT_COLLISION": "Измените mountPath в манифесте, передайте `collisionMode: \"merge\"` в `addModule()` / `addModules()` для разрешения сосуществования или сначала вызовите `removeModule()` для существующего модуля."
409
431
  },
410
432
  "metadata": {
411
433
  "code": "ru-ru",
@@ -405,7 +405,29 @@
405
405
  "PERM_RULE_CONDITION_INVALID": "rule.condition 必须是普通对象、函数,或一个数组且其中每个条目都必须是普通对象或函数",
406
406
  "BRACE_EXPANSION_MAX_DEPTH": "花括号展开超过了最大深度 {maxDepth}",
407
407
  "HINT_BRACE_EXPANSION_MAX_DEPTH": "减少括号模式中的嵌套层数或增加 maxDepth 选项。",
408
- "PERMISSION_MANAGER_NOT_AVAILABLE": "权限管理器在此 Slothlet 实例中不可用"
408
+ "PERMISSION_MANAGER_NOT_AVAILABLE": "权限管理器在此 Slothlet 实例中不可用",
409
+ "MODULE_MANIFEST_NOT_FOUND": "未找到包 '{packageName}' 的模块清单:预期为 '{manifestPath}' 但文件不存在。",
410
+ "HINT_MODULE_MANIFEST_NOT_FOUND": "插件模块必须在包根目录提供 'slothlet.module.json'(或通过 `manifest` 覆盖指定的文件/键)。请检查文件是否存在于包中以及覆盖定位符是否正确。",
411
+ "MODULE_MANIFEST_INVALID": "包 '{packageName}' 的模块清单在 '{manifestPath}' 处无效:{reason}。",
412
+ "HINT_MODULE_MANIFEST_INVALID": "打开清单并确保它是有效的 JSON 且符合 slothlet 模块架构(参见 schemas/slothlet.module.schema.json)。必需字段:schemaVersion、mountPath、apiDir。",
413
+ "MODULE_MANIFEST_UNKNOWN_FIELD": "包 '{packageName}' 的模块清单包含无法识别的顶层字段 '{field}'。未知字段将被拒绝;请使用专用的 'metadata' 块来存放开发者定义的附加项。",
414
+ "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "如果 '{field}' 是拼写错误,请修正。如果是有意的开发者元数据,请将其移到 'metadata' 对象内。",
415
+ "MODULE_MANIFEST_NAME_MISMATCH": "包 '{packageName}' 的模块清单声明名称 '{manifestName}',与 package.json 中的名称 '{packageName}' 不匹配。",
416
+ "HINT_MODULE_MANIFEST_NAME_MISMATCH": "slothlet.module.json 中的 'name' 字段是可选的,但存在时必须与 package.json 匹配。请删除清单中的 'name' 字段或使其与 package.json 一致。",
417
+ "MODULE_MANIFEST_VERSION_MISMATCH": "包 '{packageName}' 的模块清单声明版本 '{manifestVersion}',与 package.json 中的版本 '{packageVersion}' 不匹配。",
418
+ "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "slothlet.module.json 中的 'version' 字段是可选的,但存在时必须与 package.json 匹配。请删除清单中的 'version' 字段或使其与 package.json 一致。",
419
+ "MODULE_PATH_TRAVERSAL": "模块包 '{packageName}' 的 apiDir '{apiDir}' 解析到包根目录之外('{resolvedPath}' 不在 '{packageRoot}' 之下)。",
420
+ "HINT_MODULE_PATH_TRAVERSAL": "apiDir 必须是保持在包内部的相对路径。请删除 '..' 段和绝对路径。",
421
+ "MODULE_VERSION_UNSUPPORTED": "包 '{packageName}' 的模块清单使用了不支持的 schemaVersion '{schemaVersion}'。支持的版本:1。",
422
+ "HINT_MODULE_VERSION_UNSUPPORTED": "将 slothlet 升级到支持 schemaVersion {schemaVersion} 的版本,或将清单更新为使用 schemaVersion 1。",
423
+ "MODULE_PACKAGE_NOT_FOUND": "在发现缓存中未找到模块包 '{packageName}'。{hint}",
424
+ "HINT_MODULE_PACKAGE_NOT_FOUND": "可能是包未安装、scanRoot 未覆盖其位置,或尚未进行 discover() 调用。如果缓存为空,addModule(name) 将使用 scanRoot=process.cwd() 延迟运行 discover()。",
425
+ "MODULE_RESERVED_MOUNTPATH": "模块包 '{packageName}' 声明了保留的 mountPath 根 '{mountPathRoot}'(来自 mountPath '{mountPath}')。保留的根:slothlet、shutdown、destroy。",
426
+ "HINT_MODULE_RESERVED_MOUNTPATH": "保留的 mountPath 根由 slothlet 的内置接口使用,模块不能占用。请选择不同的根段。",
427
+ "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "模块包 '{packageName}' 版本 '{version}' 在多个不同的真实路径中被发现:{paths}。",
428
+ "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "这几乎肯定是配置错误 — 同一版本的同一包安装在两个不相关的位置。请调查哪个安装是预期的并删除另一个。",
429
+ "MODULE_MOUNT_COLLISION": "模块包 '{packageName}' 无法挂载在 '{mountPath}':路径已被模块 '{existingModuleID}' 占用且 collisionMode 为 '{collisionMode}'。",
430
+ "HINT_MODULE_MOUNT_COLLISION": "更改清单的 mountPath,向 `addModule()` / `addModules()` 传递 `collisionMode: \"merge\"` 以允许共存,或先在现有模块上调用 `removeModule()`。"
409
431
  },
410
432
  "metadata": {
411
433
  "code": "zh-cn",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cldmv/slothlet",
3
- "version": "3.6.0",
3
+ "version": "3.8.0",
4
4
  "moduleVersions": {
5
5
  "lazy": "3.0.0",
6
6
  "eager": "3.0.0",
@@ -126,7 +126,8 @@
126
126
  },
127
127
  "types": "./types/dist/lib/i18n/translations.d.mts",
128
128
  "import": "./dist/lib/i18n/translations.mjs"
129
- }
129
+ },
130
+ "./schemas/slothlet.module.schema.json": "./schemas/slothlet.module.schema.json"
130
131
  },
131
132
  "types": "./types/index.d.mts",
132
133
  "scripts": {
@@ -281,7 +282,6 @@
281
282
  "@eslint/js": "^10.0.1",
282
283
  "@eslint/json": "^1.2.0",
283
284
  "@eslint/markdown": "^8.0.1",
284
- "@html-eslint/parser": "^0.59.0",
285
285
  "@types/node": "^25.6.0",
286
286
  "@vitest/coverage-v8": "^4.1.5",
287
287
  "acorn": "^8.16.0",
@@ -304,11 +304,6 @@
304
304
  "optionalDependencies": {
305
305
  "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17"
306
306
  },
307
- "overrides": {
308
- "minimatch": "^10.2.3",
309
- "rollup": "^4.59.0",
310
- "rolldown": "1.0.0-rc.17"
311
- },
312
307
  "repository": {
313
308
  "type": "git",
314
309
  "url": "git+https://github.com/CLDMV/slothlet.git"
@@ -331,7 +326,8 @@
331
326
  "types/index.d.mts",
332
327
  "types/index.d.mts.map",
333
328
  "dist/",
334
- "bin/"
329
+ "bin/",
330
+ "schemas/"
335
331
  ],
336
332
  "sideEffects": false
337
333
  }
@@ -0,0 +1,98 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://cldmv.github.io/slothlet/schemas/slothlet.module.schema.json",
4
+ "title": "Slothlet Module Manifest",
5
+ "description": "Manifest shipped by a slothlet module package at `slothlet.module.json` (default) or via an override locator. Describes how the module mounts into a host slothlet api tree.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["schemaVersion", "mountPath", "apiDir"],
9
+ "properties": {
10
+ "schemaVersion": {
11
+ "description": "Manifest schema version. Only `1` is supported in this release.",
12
+ "type": "integer",
13
+ "const": 1
14
+ },
15
+ "name": {
16
+ "description": "Package identity. Optional in the manifest — slothlet always reads this from package.json. If present, MUST match package.json's `name` exactly; mismatch throws MODULE_MANIFEST_NAME_MISMATCH and the module does not load.",
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "version": {
21
+ "description": "Semver. Optional in the manifest — slothlet always reads this from package.json (and uses it for multi-version mounting via versionConfig). If present, MUST match package.json's `version` exactly; mismatch throws MODULE_MANIFEST_VERSION_MISMATCH.",
22
+ "type": "string",
23
+ "minLength": 1
24
+ },
25
+ "description": {
26
+ "description": "Free-form human-readable description. Optional. Falls back to package.json's `description` if absent. If present, overrides package.json silently (no mismatch error, unlike `name` and `version`).",
27
+ "type": "string"
28
+ },
29
+ "mountPath": {
30
+ "description": "Where the module mounts in the api tree. Same shape `api.add()` accepts. Reserved roots (`slothlet`, `shutdown`, `destroy`) are rejected with MODULE_RESERVED_MOUNTPATH.",
31
+ "oneOf": [
32
+ {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ "minItems": 1
43
+ }
44
+ ]
45
+ },
46
+ "apiDir": {
47
+ "description": "Path inside the package to the slothlet folder. Resolved relative to the package root. Path traversal (resolving outside the package root) is rejected with MODULE_PATH_TRAVERSAL.",
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ "kind": {
52
+ "description": "Free-form category (driver, reranker, model-provider, etc.). Slothlet stores it but does not interpret it. Hosts use it via `discover()`'s `filter` callback.",
53
+ "type": "string"
54
+ },
55
+ "priority": {
56
+ "description": "Default-comparator key for `sort()`. Higher first. Defaults to 0. Ties broken alphabetically by `packageName` (from `package.json` / `DiscoverResult.packageName`).",
57
+ "type": "number",
58
+ "default": 0
59
+ },
60
+ "dependencies": {
61
+ "description": "Other slothlet modules this module expects to be mounted. Slothlet does NOT enforce semver — values are passed through to metadata for the host to consume (e.g., a custom topological-sort comparator).",
62
+ "type": "object",
63
+ "additionalProperties": {
64
+ "type": "string"
65
+ }
66
+ },
67
+ "permissions": {
68
+ "description": "Module's declared access expectations. Integrates with slothlet's permission system (see permission-system docs). The discovery + mount pipeline reads these entries into per-module metadata under `_module.manifest.permissions` (retrievable via `api.slothlet.metadata.getFor(mountPath)._module.manifest.permissions`); the host applies them to the live permission system by passing each entry to `api.slothlet.permissions.addRule()` manually.",
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": ["caller", "target", "effect"],
74
+ "properties": {
75
+ "caller": {
76
+ "description": "Glob pattern matching caller api path.",
77
+ "type": "string",
78
+ "minLength": 1
79
+ },
80
+ "target": {
81
+ "description": "Glob pattern matching target api path.",
82
+ "type": "string",
83
+ "minLength": 1
84
+ },
85
+ "effect": {
86
+ "description": "Rule effect.",
87
+ "type": "string",
88
+ "enum": ["allow", "deny"]
89
+ }
90
+ }
91
+ }
92
+ },
93
+ "metadata": {
94
+ "description": "Dedicated opt-in block for developer-defined extras. The only place arbitrary project-specific data goes — unknown top-level fields are NOT auto-passed through (they throw MODULE_MANIFEST_UNKNOWN_FIELD). Round-tripped via metadata.getFor(mountPath)._module.manifest.metadata.",
95
+ "type": "object"
96
+ }
97
+ }
98
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAAm/C;IAAuC,gCAAqC;IAAsC,0CAA66C;IAAA,oDAAi40B;IAAA,6CAAqR;IAAA,uFAA0vB;IAAA,sDAA8sJ;IAAA,qDAAmkB;IAAA,kDAA2Z;CAAC;8BAA1goC,0CAA0C"}
1
+ {"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAAm/C;IAAuC,gCAAqC;IAAsC,0CAA66C;IAAA,oDAAys6B;IAAA,6CAAqR;IAAA,uFAA0vB;IAAA,sDAA8sJ;IAAA,qDAAmkB;IAAA,kDAA2Z;CAAC;8BAAl1tC,0CAA0C"}
@@ -0,0 +1,29 @@
1
+ export class ModuleManager extends ComponentBase {
2
+ static slothletProperty: string;
3
+ discover(options?: {}): Promise<Readonly<{
4
+ packageName: any;
5
+ packageRoot: any;
6
+ mountPath: readonly any[];
7
+ apiDir: any;
8
+ manifest: any;
9
+ }>[]>;
10
+ sort(results: any, comparator: any): any[];
11
+ getDiscoveryCache(): any[];
12
+ clearDiscoveryCache(): void;
13
+ getStaleMounts(): any[];
14
+ addModule(nameOrResult: any, options?: {}): Promise<{
15
+ packageName: any;
16
+ mountPath: any;
17
+ moduleID: any;
18
+ discoverResult: any;
19
+ versionConfig: any;
20
+ }>;
21
+ addModules(items: any, options?: {}): Promise<any[] | {
22
+ mounted: any[];
23
+ failed: any[];
24
+ }>;
25
+ removeModule(name: any, opts?: {}): Promise<boolean>;
26
+ #private;
27
+ }
28
+ import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
29
+ //# sourceMappingURL=module-manager.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-manager.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/module-manager.mjs"],"names":[],"mappings":"AAAqS;IAA0C,gCAAwC;IAAsE;;;;;;UAA4X;IAAA,2CAAgE;IAAA,2BAAoD;IAAA,4BAA0C;IAAA,wBAA4I;IAAA;;;;;;OAAma;IAAA;;;OAAosC;IAAA,qDAAuc;;CAA43J;8BAAp/P,0CAA0C"}
@@ -35,6 +35,8 @@ export class PermissionManager extends ComponentBase {
35
35
  enable(): void;
36
36
  disable(): void;
37
37
  isEnabled(): boolean;
38
+ isReadGatingEnabled(): boolean;
39
+ setReadGating(value: any): void;
38
40
  exportRules(): {
39
41
  rule: {
40
42
  caller: any;
@@ -1 +1 @@
1
- {"version":3,"file":"permission-manager.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/permission-manager.mjs"],"names":[],"mappings":"AAAwM;IAA8C,gCAA4C;IAAiiB,gEAAsc;IAAA,wDAAqc;IAAA,wIAAqwB;IAAA,iEAAgN;IAA4Q,0HAAoS;IAAA;;;;;;;;QAA2O;IAAA;;;;;;;;QAAoL;IAAA;;;;;;;;QAA6O;IAAA,eAA+C;IAAA,gBAAiD;IAAA,qBAAiC;IAAA;;;;;;;QAAsM;IAAA,sCAA6I;IAAA,0BAAmK;IAAiwL,sCAAwD;;CAAC;8BAAvvU,0CAA0C"}
1
+ {"version":3,"file":"permission-manager.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/permission-manager.mjs"],"names":[],"mappings":"AAAwM;IAA8C,gCAA4C;IAAwwB,gEAAsc;IAAA,wDAAqc;IAAA,wIAAqwB;IAAA,iEAAgN;IAA4Q,0HAAoS;IAAA;;;;;;;;QAA2O;IAAA;;;;;;;;QAAoL;IAAA;;;;;;;;QAA6O;IAAA,eAA+C;IAAA,gBAAiD;IAAA,qBAAiC;IAAA,+BAA8C;IAAA,gCAA2M;IAAA;;;;;;;QAAsM;IAAA,sCAA6I;IAAA,0BAA0L;IAAiwL,sCAAwD;;CAAC;8BAA9uV,0CAA0C"}
@@ -1 +1 @@
1
- {"version":3,"file":"unified-wrapper.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/unified-wrapper.mjs"],"names":[],"mappings":";;;;AAA+vC;IAAyjH,mCAAsc;IAAA,2CAAy/B;IAAv2J;;;;;;;;;;OAAq1F;IAA56F,6CAAuF;IAAq1F,2EAAgiB;IAAA,kBAAmD;IAA+7C,gEAAqyB;IAAA,8EAAgsC;IAAA,4CAA2kC;IAAA,+BAAs4D;IAAA,6BAA4C;IAAA,sBAA8T;IAAA,yDAAq6P;IAAA,iDAA2sG;IAAA,8CAA20Y;IAAA,mBAAs1wB;IAA3oO,uBAAwB;;CAAonO;AAAwK,gDAA8N;8BAApj3D,0CAA0C"}
1
+ {"version":3,"file":"unified-wrapper.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/unified-wrapper.mjs"],"names":[],"mappings":";;;;AAAk8E;IAAymH,mCAAsc;IAAA,2CAAy/B;IAAv5J;;;;;;;;;;OAAq4F;IAA59F,6CAAuF;IAAq4F,2EAAgiB;IAAA,kBAAmD;IAA+7C,gEAAqyB;IAAA,8EAAgsC;IAAA,4CAA4oC;IAAA,+BAAs4D;IAAA,6BAA4C;IAAA,sBAA8T;IAAA,yDAAq6P;IAAA,iDAAwuG;IAAA,8CAAira;IAAA,mBAAkhxB;IAA3oO,uBAAwB;;CAAonO;AAAwK,gDAA8N;8BAAv67D,0CAA0C"}