@cldmv/slothlet 3.10.0 → 3.11.1

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 (174) hide show
  1. package/README.md +9 -11
  2. package/dist/lib/builders/builder.mjs +1 -1
  3. package/dist/lib/builders/modes-processor.mjs +1 -1
  4. package/dist/lib/handlers/api-cache-manager.mjs +1 -1
  5. package/dist/lib/handlers/api-manager.mjs +1 -1
  6. package/dist/lib/handlers/unified-wrapper.mjs +1 -1
  7. package/dist/lib/helpers/generate-manifest.mjs +1 -1
  8. package/dist/lib/helpers/platform.mjs +1 -1
  9. package/dist/lib/i18n/languages/en-us.json +2 -0
  10. package/dist/lib/i18n/translations.mjs +1 -1
  11. package/dist/lib/modes/eager.mjs +1 -1
  12. package/dist/lib/modes/lazy.mjs +1 -1
  13. package/dist/lib/processors/loader.mjs +1 -1
  14. package/dist/slothlet.mjs +1 -1
  15. package/package.json +58 -31
  16. package/types/stub/devcheck.d.mts +3 -0
  17. package/types/stub/index.d.mts +4 -0
  18. package/types/stub/lib/builders/api-assignment.d.mts +3 -0
  19. package/types/stub/lib/builders/api_builder.d.mts +3 -0
  20. package/types/stub/lib/builders/builder.d.mts +3 -0
  21. package/types/stub/lib/builders/modes-processor.d.mts +3 -0
  22. package/types/stub/lib/errors.d.mts +3 -0
  23. package/types/stub/lib/factories/component-base.d.mts +3 -0
  24. package/types/stub/lib/factories/context.d.mts +3 -0
  25. package/types/stub/lib/handlers/api-cache-manager.d.mts +3 -0
  26. package/types/stub/lib/handlers/api-manager.d.mts +3 -0
  27. package/types/stub/lib/handlers/context-async.d.mts +3 -0
  28. package/types/stub/lib/handlers/context-live.d.mts +3 -0
  29. package/types/stub/lib/handlers/hook-manager.d.mts +3 -0
  30. package/types/stub/lib/handlers/lifecycle-token.d.mts +3 -0
  31. package/types/stub/lib/handlers/lifecycle.d.mts +3 -0
  32. package/types/stub/lib/handlers/materialize-manager.d.mts +3 -0
  33. package/types/stub/lib/handlers/metadata.d.mts +3 -0
  34. package/types/stub/lib/handlers/module-manager.d.mts +3 -0
  35. package/types/stub/lib/handlers/ownership.d.mts +3 -0
  36. package/types/stub/lib/handlers/permission-manager.d.mts +3 -0
  37. package/types/stub/lib/handlers/unified-wrapper.d.mts +3 -0
  38. package/types/stub/lib/handlers/version-manager.d.mts +3 -0
  39. package/types/stub/lib/helpers/class-instance-wrapper.d.mts +3 -0
  40. package/types/stub/lib/helpers/config.d.mts +3 -0
  41. package/types/stub/lib/helpers/eventemitter-context.d.mts +3 -0
  42. package/types/stub/lib/helpers/generate-manifest.d.mts +3 -0
  43. package/types/stub/lib/helpers/hint-detector.d.mts +3 -0
  44. package/types/stub/lib/helpers/manifest-resolver.d.mts +3 -0
  45. package/types/stub/lib/helpers/modes-utils.d.mts +3 -0
  46. package/types/stub/lib/helpers/module-discovery.d.mts +3 -0
  47. package/types/stub/lib/helpers/module-manifest-validator.d.mts +3 -0
  48. package/types/stub/lib/helpers/module-sort.d.mts +3 -0
  49. package/types/stub/lib/helpers/pattern-matcher.d.mts +3 -0
  50. package/types/stub/lib/helpers/platform.d.mts +3 -0
  51. package/types/stub/lib/helpers/resolve-from-caller.d.mts +3 -0
  52. package/types/stub/lib/helpers/sanitize.d.mts +3 -0
  53. package/types/stub/lib/helpers/utilities.d.mts +3 -0
  54. package/types/stub/lib/i18n/translations.d.mts +3 -0
  55. package/types/stub/lib/modes/eager.d.mts +3 -0
  56. package/types/stub/lib/modes/lazy.d.mts +3 -0
  57. package/types/stub/lib/processors/flatten.d.mts +3 -0
  58. package/types/stub/lib/processors/loader.d.mts +3 -0
  59. package/types/stub/lib/processors/type-generator.d.mts +3 -0
  60. package/types/stub/lib/processors/typescript.d.mts +3 -0
  61. package/types/stub/lib/runtime/runtime-asynclocalstorage.d.mts +3 -0
  62. package/types/stub/lib/runtime/runtime-livebindings.d.mts +3 -0
  63. package/types/stub/lib/runtime/runtime.d.mts +3 -0
  64. package/types/stub/lib/typegen/typegen.d.mts +3 -0
  65. package/types/stub/slothlet.d.mts +4 -0
  66. package/dist/lib/i18n/languages/de-de.json +0 -470
  67. package/dist/lib/i18n/languages/en-gb.json +0 -470
  68. package/dist/lib/i18n/languages/es-es.json +0 -470
  69. package/dist/lib/i18n/languages/es-mx.json +0 -470
  70. package/dist/lib/i18n/languages/fr-fr.json +0 -470
  71. package/dist/lib/i18n/languages/hi-in.json +0 -470
  72. package/dist/lib/i18n/languages/ja-jp.json +0 -470
  73. package/dist/lib/i18n/languages/ko-kr.json +0 -470
  74. package/dist/lib/i18n/languages/pt-br.json +0 -470
  75. package/dist/lib/i18n/languages/ru-ru.json +0 -470
  76. package/dist/lib/i18n/languages/zh-cn.json +0 -470
  77. package/types/dist/lib/builders/api-assignment.d.mts +0 -8
  78. package/types/dist/lib/builders/api-assignment.d.mts.map +0 -1
  79. package/types/dist/lib/builders/api_builder.d.mts +0 -12
  80. package/types/dist/lib/builders/api_builder.d.mts.map +0 -1
  81. package/types/dist/lib/builders/builder.d.mts +0 -6
  82. package/types/dist/lib/builders/builder.d.mts.map +0 -1
  83. package/types/dist/lib/builders/modes-processor.d.mts +0 -8
  84. package/types/dist/lib/builders/modes-processor.d.mts.map +0 -1
  85. package/types/dist/lib/errors.d.mts +0 -28
  86. package/types/dist/lib/errors.d.mts.map +0 -1
  87. package/types/dist/lib/factories/component-base.d.mts +0 -12
  88. package/types/dist/lib/factories/component-base.d.mts.map +0 -1
  89. package/types/dist/lib/factories/context.d.mts +0 -8
  90. package/types/dist/lib/factories/context.d.mts.map +0 -1
  91. package/types/dist/lib/handlers/api-cache-manager.d.mts +0 -25
  92. package/types/dist/lib/handlers/api-cache-manager.d.mts.map +0 -1
  93. package/types/dist/lib/handlers/api-manager.d.mts +0 -47
  94. package/types/dist/lib/handlers/api-manager.d.mts.map +0 -1
  95. package/types/dist/lib/handlers/context-async.d.mts +0 -28
  96. package/types/dist/lib/handlers/context-async.d.mts.map +0 -1
  97. package/types/dist/lib/handlers/context-live.d.mts +0 -28
  98. package/types/dist/lib/handlers/context-live.d.mts.map +0 -1
  99. package/types/dist/lib/handlers/hook-manager.d.mts +0 -69
  100. package/types/dist/lib/handlers/hook-manager.d.mts.map +0 -1
  101. package/types/dist/lib/handlers/lifecycle-token.d.mts +0 -4
  102. package/types/dist/lib/handlers/lifecycle-token.d.mts.map +0 -1
  103. package/types/dist/lib/handlers/lifecycle.d.mts +0 -13
  104. package/types/dist/lib/handlers/lifecycle.d.mts.map +0 -1
  105. package/types/dist/lib/handlers/materialize-manager.d.mts +0 -13
  106. package/types/dist/lib/handlers/materialize-manager.d.mts.map +0 -1
  107. package/types/dist/lib/handlers/metadata.d.mts +0 -26
  108. package/types/dist/lib/handlers/metadata.d.mts.map +0 -1
  109. package/types/dist/lib/handlers/module-manager.d.mts +0 -29
  110. package/types/dist/lib/handlers/module-manager.d.mts.map +0 -1
  111. package/types/dist/lib/handlers/ownership.d.mts +0 -57
  112. package/types/dist/lib/handlers/ownership.d.mts.map +0 -1
  113. package/types/dist/lib/handlers/permission-manager.d.mts +0 -56
  114. package/types/dist/lib/handlers/permission-manager.d.mts.map +0 -1
  115. package/types/dist/lib/handlers/unified-wrapper.d.mts +0 -37
  116. package/types/dist/lib/handlers/unified-wrapper.d.mts.map +0 -1
  117. package/types/dist/lib/handlers/version-manager.d.mts +0 -37
  118. package/types/dist/lib/handlers/version-manager.d.mts.map +0 -1
  119. package/types/dist/lib/helpers/class-instance-wrapper.d.mts +0 -4
  120. package/types/dist/lib/helpers/class-instance-wrapper.d.mts.map +0 -1
  121. package/types/dist/lib/helpers/config.d.mts +0 -153
  122. package/types/dist/lib/helpers/config.d.mts.map +0 -1
  123. package/types/dist/lib/helpers/eventemitter-context.d.mts +0 -5
  124. package/types/dist/lib/helpers/eventemitter-context.d.mts.map +0 -1
  125. package/types/dist/lib/helpers/generate-manifest.d.mts +0 -12
  126. package/types/dist/lib/helpers/generate-manifest.d.mts.map +0 -1
  127. package/types/dist/lib/helpers/hint-detector.d.mts +0 -7
  128. package/types/dist/lib/helpers/hint-detector.d.mts.map +0 -1
  129. package/types/dist/lib/helpers/manifest-resolver.d.mts +0 -2
  130. package/types/dist/lib/helpers/manifest-resolver.d.mts.map +0 -1
  131. package/types/dist/lib/helpers/modes-utils.d.mts +0 -8
  132. package/types/dist/lib/helpers/modes-utils.d.mts.map +0 -1
  133. package/types/dist/lib/helpers/module-discovery.d.mts +0 -8
  134. package/types/dist/lib/helpers/module-discovery.d.mts.map +0 -1
  135. package/types/dist/lib/helpers/module-manifest-validator.d.mts +0 -14
  136. package/types/dist/lib/helpers/module-manifest-validator.d.mts.map +0 -1
  137. package/types/dist/lib/helpers/module-sort.d.mts +0 -2
  138. package/types/dist/lib/helpers/module-sort.d.mts.map +0 -1
  139. package/types/dist/lib/helpers/pattern-matcher.d.mts +0 -4
  140. package/types/dist/lib/helpers/pattern-matcher.d.mts.map +0 -1
  141. package/types/dist/lib/helpers/platform.d.mts +0 -12
  142. package/types/dist/lib/helpers/platform.d.mts.map +0 -1
  143. package/types/dist/lib/helpers/resolve-from-caller.d.mts +0 -9
  144. package/types/dist/lib/helpers/resolve-from-caller.d.mts.map +0 -1
  145. package/types/dist/lib/helpers/sanitize.d.mts +0 -10
  146. package/types/dist/lib/helpers/sanitize.d.mts.map +0 -1
  147. package/types/dist/lib/helpers/utilities.d.mts +0 -9
  148. package/types/dist/lib/helpers/utilities.d.mts.map +0 -1
  149. package/types/dist/lib/i18n/translations.d.mts +0 -7
  150. package/types/dist/lib/i18n/translations.d.mts.map +0 -1
  151. package/types/dist/lib/modes/eager.d.mts +0 -15
  152. package/types/dist/lib/modes/eager.d.mts.map +0 -1
  153. package/types/dist/lib/modes/lazy.d.mts +0 -17
  154. package/types/dist/lib/modes/lazy.d.mts.map +0 -1
  155. package/types/dist/lib/processors/flatten.d.mts +0 -63
  156. package/types/dist/lib/processors/flatten.d.mts.map +0 -1
  157. package/types/dist/lib/processors/loader.d.mts +0 -12
  158. package/types/dist/lib/processors/loader.d.mts.map +0 -1
  159. package/types/dist/lib/processors/type-generator.d.mts +0 -5
  160. package/types/dist/lib/processors/type-generator.d.mts.map +0 -1
  161. package/types/dist/lib/processors/typescript.d.mts +0 -18
  162. package/types/dist/lib/processors/typescript.d.mts.map +0 -1
  163. package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts +0 -4
  164. package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts.map +0 -1
  165. package/types/dist/lib/runtime/runtime-livebindings.d.mts +0 -3
  166. package/types/dist/lib/runtime/runtime-livebindings.d.mts.map +0 -1
  167. package/types/dist/lib/runtime/runtime.d.mts +0 -4
  168. package/types/dist/lib/runtime/runtime.d.mts.map +0 -1
  169. package/types/dist/lib/typegen/typegen.d.mts +0 -5
  170. package/types/dist/lib/typegen/typegen.d.mts.map +0 -1
  171. package/types/dist/slothlet.d.mts +0 -4
  172. package/types/dist/slothlet.d.mts.map +0 -1
  173. package/types/index.d.mts +0 -18
  174. package/types/index.d.mts.map +0 -1
@@ -1,470 +0,0 @@
1
- {
2
- "translations": {
3
- "INVALID_CONFIG": "Неверная конфигурация: {option} имеет значение {value}, ожидалось {expected}. {hint}",
4
- "HINT_INVALID_CONFIG": "Проверьте значение конфигурации и убедитесь, что оно соответствует ожидаемому формату.",
5
- "INVALID_CONFIG_SYNTHETIC_EXPORTS_SHAPE": "Ошибка конфигурации: встроенные exports должны быть простым объектом вида { default?, ...named }; получено {received}.",
6
- "HINT_INVALID_CONFIG_SYNTHETIC_EXPORTS_SHAPE": "Передайте exports как простой объект, например { default: fn } или { name: fn } — либо обёртку { exports: { default?, ...named } }, либо функцию напрямую.",
7
- "INVALID_CONFIG_SYNTHETIC_INPUT": "Ошибка конфигурации: встроенное содержимое должно быть простым объектом exports вида { default?, ...named }, обёрткой { exports: … } или функцией напрямую; получено {received}.",
8
- "HINT_INVALID_CONFIG_SYNTHETIC_INPUT": "Передайте встроенные exports как простой объект или функцию напрямую; для монтирования файловой системы используйте строковый путь.",
9
- "INVALID_CONFIG_SYNTHETIC_NAME": "Ошибка конфигурации: syntheticName должен быть непустой строкой; получено {received}.",
10
- "HINT_INVALID_CONFIG_SYNTHETIC_NAME": "Укажите строковое имя ключа для синтетической сборки, например \"synthetic\".",
11
- "INVALID_CONFIG_PRELOADED_STRUCTURE": "Ошибка конфигурации: preloadedStructure должен быть простым объектом с массивами files и directories, получено {received}.",
12
- "HINT_INVALID_CONFIG_PRELOADED_STRUCTURE": "preloadedStructure создаётся внутренне; передайте объект с массивами files и directories или опустите его, чтобы просканировать директорию.",
13
- "INVALID_CONFIG_DIR_MISSING": "Ошибка конфигурации: параметр 'dir' обязателен. Укажите путь к директории для загрузки API.",
14
- "HINT_INVALID_CONFIG_DIR_MISSING": "Необходимо указать путь к директории, но он не был передан.",
15
- "INVALID_CONFIG_BROWSER_REQUIRES_MANIFEST": "Ошибка конфигурации: 'manifest' обязателен, когда env равно 'browser'. Предоставьте заранее сгенерированный объект манифеста с массивами 'files' и 'directories'.",
16
- "INVALID_CONFIG_BROWSER_MANIFEST_INVALID": "Ошибка конфигурации: 'manifest' должен быть простым объектом с массивами 'files' и 'directories'. Получено: {received}",
17
- "INVALID_CONFIG_BROWSER_RESOLVE_SPECIFIER_INVALID": "Ошибка конфигурации: 'resolveModuleSpecifier' должен быть функцией, когда env равно 'browser'. Получено: {received}",
18
- "INVALID_CONFIG_DIR_INVALID": "Ошибка конфигурации: 'dir' должен быть непустой строкой-путем. Получено: {dir}",
19
- "HINT_INVALID_CONFIG_DIR_INVALID": "Убедитесь, что путь к директории является корректной строкой и указывает на существующую директорию.",
20
- "INVALID_CONFIG_MODE_INVALID": "Ошибка конфигурации: 'mode' должен быть либо 'eager', либо 'lazy'. Получено: {value}",
21
- "HINT_INVALID_CONFIG_MODE_INVALID": "Режим должен быть 'eager' или 'lazy'.",
22
- "INVALID_CONFIG_NOT_LOADED": "Невозможно выполнить операцию '{operation}' - экземпляр не загружен. Сначала вызовите load().",
23
- "HINT_INVALID_CONFIG_NOT_LOADED": "Экземпляр должен быть загружен перед выполнением операции — вызовите load().",
24
- "INVALID_CONFIG_LAZY_MATERIALIZATION_FAILED": "Не удалось материализовать lazy-прокси для '{apiPath}'. Проверьте корректность модуля.",
25
- "INVALID_CONFIG_NOT_A_FUNCTION": "Невозможно вызвать '{apiPath}' — не функция (получено {actualType}). Проверьте экспорт модуля.",
26
- "INVALID_CONFIG_API_PATH_INVALID": "Неверный путь API '{apiPath}': {reason}. Пути должны быть непустыми строками в точечной нотации и не конфликтовать с зарезервированными именами. Сегмент {index}: '{segment}'.",
27
- "HINT_INVALID_CONFIG_API_PATH_INVALID": "Убедитесь, что путь API — корректная точечная нотация без пустых сегментов и зарезервированных имён.",
28
- "INVALID_CONFIG_FORCE_OVERWRITE_REQUIRES_MODULE_ID": "Ошибка конфигурации: forceOverwrite/allowOverwrite требует moduleID. Укажите уникальный moduleID для перезаписи пути API '{apiPath}'.",
29
- "HINT_INVALID_CONFIG_FORCE_OVERWRITE_REQUIRES_MODULE_ID": "При использовании forceOverwrite/allowOverwrite необходим уникальный moduleID для отслеживания владельца.",
30
- "INVALID_METADATA_TARGET": "Неверная цель метаданных: ожидалось {expected}, получено {target}. Операции с метаданными требуют функцию или объект.",
31
- "HINT_INVALID_METADATA_TARGET": "Цель должна быть функцией или объектом, загруженным через Slothlet. Передавайте реальную ссылку.",
32
- "METADATA_NO_MODULE_ID": "Невозможно установить пользовательские метаданные: moduleID не найден. Убедитесь, что цель загружена через Slothlet.",
33
- "HINT_METADATA_NO_MODULE_ID": "Убедитесь, что функция/объект загружены через Slothlet; только такие объекты имеют метаданные.",
34
- "METADATA_LIFECYCLE_BYPASS": "tagSystemMetadata() должен вызываться через систему жизненного цикла. Используйте lifecycle.emit('impl:created') или lifecycle.emit('impl:changed').",
35
- "HINT_METADATA_LIFECYCLE_BYPASS": "Не вызывайте tagSystemMetadata() напрямую; триггерите события lifecycle для корректного вызова.",
36
- "INVALID_METADATA_KEY": "Неверный ключ метаданных: ожидалось {expected}, получено {type} для ключа '{key}'.",
37
- "HINT_INVALID_METADATA_KEY": "Ключи метаданных должны быть строками, массивами строк или объектами с массивами; проверьте формат.",
38
- "WARNING_METADATA_MISMATCH": "Предупреждение: путь файла метаданных для '{apiPath}' не совпадает. Stack: '{stackFile}', metadata: '{metadataFile}'. Это может указывать на hot-reload или вмешательство.",
39
- "HINT_WARNING_METADATA_MISMATCH": "Предупреждение о несоответствии метаданных — возможно из-за hot-reload или вмешательства.",
40
- "COLLISION_ERROR": "Ошибка конфликта на '{key}' (контекст: {collisionContext}, режим: {collisionMode}). Установите режим 'merge', 'replace', 'warn' или 'skip'.",
41
- "HINT_COLLISION_ERROR": "Режим столкновения 'error' предотвращает перезапись; используйте 'merge'/'replace'/'warn'/'skip' по необходимости.",
42
- "COLLISION_DEFAULT_EXPORT_ERROR": "Обнаружен конфликт: свойство '{key}' уже существует в default export по пути '{apiPath}'. Режим — 'error'.",
43
- "HINT_COLLISION_DEFAULT_EXPORT_ERROR": "Именованный экспорт конфликтует со свойством default export. Измените режим или переименуйте экспорт.",
44
- "INVALID_ARGUMENT": "Неверный аргумент '{argument}': ожидалось {expected}, получено {received}.",
45
- "HINT_INVALID_ARGUMENT": "Путь должен быть строкой в точечной нотации, например 'math.add'.",
46
- "RUNTIME_NO_ACTIVE_CONTEXT": "Активный контекст не найден. Операция должна выполняться внутри Slothlet API-функции.",
47
- "HINT_RUNTIME_NO_ACTIVE_CONTEXT": "metadata.self() должен вызываться внутри Slothlet API-функции.",
48
- "INVALID_CONFIG_MUTATIONS_DISABLED": "Невозможно выполнить '{operation}' — мутации отключены. Установите allowMutation: true для разрешения изменений API (add/remove/reload).",
49
- "HINT_INVALID_CONFIG_MUTATIONS_DISABLED": "Операции мутации требуют allowMutation: true; используйте diagnostics: true для тестирования без реальных мутаций.",
50
- "CACHE_MODULEID_MISMATCH": "Несоответствие moduleID в кеше: ожидался '{cacheKey}', но запись имеет '{entryModuleID}'. Это внутренняя несогласованность кеша.",
51
- "HINT_CACHE_MODULEID_MISMATCH": "Внутренняя ошибка: повреждение кеша. Пожалуйста, сообщите с шагами воспроизведения.",
52
- "CACHE_NOT_FOUND": "Запись кеша не найдена для moduleID '{moduleID}' при операции '{operation}'. Модуль может быть не загружен или кеш очищен.",
53
- "HINT_CACHE_NOT_FOUND": "Убедитесь, что модуль загружен перед перезагрузкой/восстановлением кеша; проверьте moduleID.",
54
- "CACHE_MANAGER_NOT_AVAILABLE": "Менеджер кеша недоступен. Нельзя выполнить '{operation}'. Убедитесь, что менеджер инициализирован.",
55
- "HINT_CACHE_MANAGER_NOT_AVAILABLE": "Менеджер кеша должен инициализироваться автоматически. Если он отсутствует — это внутренняя проблема.",
56
- "MODULE_LOAD_FAILED": "Не удалось загрузить модуль '{modulePath}' (ID: {moduleID}): {error}",
57
- "HINT_MODULE_LOAD_FAILED": "Проверьте файл модуля на ошибки синтаксиса и экспорты.",
58
- "MODULE_NOT_FOUND": "Модуль не найден: {modulePath}. {hint}",
59
- "HINT_MODULE_NOT_FOUND": "Убедитесь, что модуль существует и путь указан верно. Проверьте опечатки в import-пути.",
60
- "MODULE_IMPORT_FAILED": "Не удалось импортировать модуль '{modulePath}': {error}. Проверьте, существует ли файл и корректен ли синтаксис.",
61
- "HINT_MODULE_IMPORT_FAILED": "Проверьте существование файла и корректность импорта. Проверьте зависимости.",
62
- "CONTEXT_ALREADY_EXISTS": "Контекст для экземпляра '{instanceID}' уже существует. Невозможно инициализировать дважды.",
63
- "HINT_CONTEXT_ALREADY_EXISTS": "Контекст уже существует. Проверьте, не инициализируется ли один и тот же экземпляр дважды.",
64
- "CONTEXT_NOT_FOUND": "Контекст для экземпляра '{instanceID}' не найден. Экземпляр мог быть завершён. Доступные экземпляры: {availableInstances}",
65
- "HINT_CONTEXT_NOT_FOUND": "Убедитесь, что Slothlet-экземпляр инициализирован и контекст создан, прежде чем обращаться к нему.",
66
- "CONTEXT_EXECUTION_FAILED": "Не удалось выполнить в контексте для экземпляра '{instanceID}': {error}",
67
- "HINT_CONTEXT_EXECUTION_FAILED": "Произошла ошибка при выполнении функции — проверьте детали ошибки.",
68
- "NO_ACTIVE_CONTEXT_LIVE": "Нет активного контекста — в режиме живых привязок нет активного экземпляра.",
69
- "HINT_NO_ACTIVE_CONTEXT_LIVE": "Активный контекст не найден. Вызывайте функцию внутри live-контекста Slothlet.",
70
- "NO_ACTIVE_CONTEXT_ASYNC": "Нет активного контекста — функцию нужно вызывать внутри slothlet API-контекста.",
71
- "HINT_NO_ACTIVE_CONTEXT_ASYNC": "Активный контекст не найден. Вызывайте функцию внутри асинхронного slothlet-контекста.",
72
- "RUNTIME_NO_ACTIVE_CONTEXT_SELF": "Нет активного контекста — доступ к 'self' невозможен. Вызывайте внутри Slothlet API-функции.",
73
- "HINT_RUNTIME_NO_ACTIVE_CONTEXT_SELF": "Нельзя использовать 'self' вне Slothlet API-функции.",
74
- "RUNTIME_NO_ACTIVE_CONTEXT_CONTEXT": "Нет активного контекста — 'context' можно менять только внутри Slothlet API-вызовов.",
75
- "HINT_RUNTIME_NO_ACTIVE_CONTEXT_CONTEXT": "Нельзя менять 'context' вне Slothlet API-вызовов.",
76
- "OWNERSHIP_INVALID_MODULE_ID": "Недействительная регистрация владения: moduleID '{moduleID}' недействителен.",
77
- "HINT_OWNERSHIP_INVALID_MODULE_ID": "Идентификатор модуля недействителен. Убедитесь, что модуль загружен корректно и ID верен.",
78
- "OWNERSHIP_INVALID_API_PATH": "Недействительная регистрация владения: apiPath '{apiPath}' недействителен.",
79
- "HINT_OWNERSHIP_INVALID_API_PATH": "Неверный формат пути API. Убедитесь в корректности формата.",
80
- "OWNERSHIP_CONFLICT": "Конфликт владения: путь '{apiPath}' уже принадлежит модулю '{existingModuleId}', нельзя назначить '{newModuleId}'. Используйте forceOverwrite: true или предварительно вызовите removeApi.",
81
- "HINT_OWNERSHIP_CONFLICT": "Путь уже принадлежит другому модулю. Варианты: forceOverwrite: true, collision: 'merge'/'replace', или предварительно вызвать api.slothlet.api.remove().",
82
- "LOOSE_SET_NOT_OWNED": "Модуль {callerApiPath} не может писать в {apiPath}. Модуль может писать только в пределах своего apiPath; используйте api.slothlet.api.add() для регистрации в другом пути.",
83
- "HINT_LOOSE_SET_NOT_OWNED": "Модуль с apiPath \"P\" может писать только в \"P.*\". Чтобы зарегистрировать код в другом пространстве имён, вызовите api.slothlet.api.add().",
84
- "LOOSE_SET_RESERVED_KEY": "Невозможно присвоить значение зарезервированному сегменту ключа '{segment}' в apiPath '{apiPath}'. Имена вроде __proto__, prototype и constructor заблокированы, чтобы предотвратить загрязнение прототипа дерева API.",
85
- "HINT_LOOSE_SET_RESERVED_KEY": "Сегменты __proto__, prototype и constructor нельзя использовать как имена apiPath, поскольку запись в них изменит цепочку прототипов JavaScript. Выберите другое имя.",
86
- "INVALID_DIRECTORY": "Неверная директория '{dir}': {error}. Убедитесь, что директория существует и доступна.",
87
- "HINT_INVALID_DIRECTORY": "Проверьте путь к директории — он должен быть корректным и существовать.",
88
- "WARN_DIRECTORY_EMPTY": "Директория '{dir}' (разрешено: '{resolvedPath}') пуста или не содержит загружаемых модулей (.mjs, .cjs, .js). Это допустимо для add-api, но может указывать на неверный путь.",
89
- "HINT_WARN_DIRECTORY_EMPTY": "Проверьте путь; пустые директории допустимы для add-api workflows.",
90
- "WARN_SYNTHETIC_ROOT_EMPTY": "Синтетическое добавление по пути API '{apiPath}' не дало ни одного листа; ничего не было смонтировано.",
91
- "HINT_WARN_SYNTHETIC_ROOT_EMPTY": "Укажите хотя бы один экспорт — именованную функцию по умолчанию или именованные экспорты — чтобы синтетическому добавлению было что монтировать.",
92
- "WARN_SYNTHETIC_ROOT_UNNAMED": "Синтетическое добавление в корне API содержит анонимный экспорт по умолчанию; его нельзя привязать к корню, и он был пропущен.",
93
- "HINT_WARN_SYNTHETIC_ROOT_UNNAMED": "Назовите функцию по умолчанию (её имя становится корневым ключом), укажите именованные экспорты или смонтируйте лист по именованному apiPath.",
94
- "WARN_SYNTHETIC_ROOT_COLLISION": "Синтетическое добавление в корне API переназначает свой экспорт по умолчанию на '{name}', но именованный экспорт уже использует '{name}'; приоритет имеет именованный экспорт.",
95
- "HINT_WARN_SYNTHETIC_ROOT_COLLISION": "Переименуйте функцию по умолчанию или конфликтующий именованный экспорт, чтобы каждый занимал отдельный корневой ключ.",
96
- "INTERNAL_HOOK_STATE_CORRUPT": "[ВНУТРИ] Состояние HookManager повреждено: hook \"{hookId}\" ({type}/{subset}/{pattern}) — {detail}. Пожалуйста, сообщите.",
97
- "HINT_INTERNAL_HOOK_STATE_CORRUPT": "Состояние HookManager неконсистентно — отправьте баг-репорт с примером вызовов hook.on()/hook.remove().",
98
- "WARNING_RESERVED_PROPERTY_CONFLICT": "Пользовательский API конфликтует с зарезервированными свойствами: {properties}",
99
- "HINT_WARNING_RESERVED_PROPERTY_CONFLICT": "Имя 'slothlet' зарезервировано — переименуйте модуль/свойство.",
100
- "WARNING_LANGUAGE_LOAD_FAILED": "Не удалось загрузить язык '{lang}', используется английский по умолчанию.",
101
- "WARNING_LANGUAGE_UNAVAILABLE": "Язык '{lang}' недоступен, используется английский.",
102
- "WARNING_OWNERSHIP_CONFLICT": "Конфликт владения на '{apiPath}': уже принадлежит '{existingModuleId}', регистрировать '{newModuleId}' невозможно.",
103
- "HINT_WARNING_OWNERSHIP_CONFLICT": "Путь принадлежит другому модулю — используйте forceOverwrite: true или вызовите api.slothlet.api.remove().",
104
- "WARNING_HOT_RELOAD_PATH_COLLISION": "Конфликт пути при hot-reload на {apiPath} — сохраняется существующее значение (режим: warn).",
105
- "HINT_WARNING_HOT_RELOAD_PATH_COLLISION": "Конфликт при hot-reload — существующее значение сохранено. Для принудительной замены используйте collision mode 'replace'.",
106
- "WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "Нельзя объединить примитивы на {apiPath} — сохранено существующее значение. Для перезаписи используйте collision mode 'replace' или убедитесь, что оба значения являются объектами.",
107
- "HINT_WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "Нельзя объединить примитивы — используйте 'replace' для перезаписи или оставьте 'warn' для сохранения существующего.",
108
- "WARNING_COLLISION_FILE_FOLDER_MERGE": "Обнаружен конфликт на '{key}' — файлы и папки объединяются (режим: 'warn').",
109
- "HINT_WARNING_COLLISION_FILE_FOLDER_MERGE": "Файл и папка имеют одинаковое имя '{key}'. Их экспорты объединяются. Переименуйте один из них или установите collisionMode: 'replace'/'error'.",
110
- "WARNING_COLLISION_DEFAULT_EXPORT_OVERWRITE": "Конфликт: свойство '{key}' уже существует в default export функции на {apiPath}. Именованный экспорт перезапишет его.",
111
- "HINT_WARNING_COLLISION_DEFAULT_EXPORT_OVERWRITE": "Именованный экспорт '{key}' в '{apiPath}' перезаписывает существующее свойство default export. Переименуйте экспорт или используйте другой apiPath.",
112
- "WARNING_COLLISION_TRIGGER_MATERIALIZE_ERROR": "Ранняя материализация для lazy-папки '{apiPath}' не удалась. Замена при конфликте может быть неполной.",
113
- "HINT_WARNING_COLLISION_TRIGGER_MATERIALIZE_ERROR": "Это некритическая фоновая ошибка при обработке конфликтов. Lazy-папка по этому пути не смогла материализоваться. Проверьте модуль по указанному пути.",
114
- "WARNING_LIFECYCLE_HANDLER_ERROR": "Обработчик lifecycle-события выбросил ошибку для события '{event}'. Другие обработчики продолжили выполнение.",
115
- "HINT_WARNING_LIFECYCLE_HANDLER_ERROR": "Один из обработчиков lifecycle для события '{event}' выдал ошибку. Проверьте lifecycle.on('{event}', ...) на наличие багов. Другие обработчики в том же событии не затронуты.",
116
- "WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Обнаружено несколько default экспортов корневого уровня: {rootContributors}. Каждый был помещён в namespace по имени файла (например api.{firstContributor}()). Рассмотрите вариант объединения.",
117
- "HINT_WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Несколько файлов экспортируют default функции на корневом уровне — рассмотрите консолидацию или перенос в подкаталоги.",
118
- "WARN_SUPPRESS_FIX_ACTIVE": "Исправление правила '{rule}' подавлено через 'suppressFixes'. Подробности см. по адресу {url}. Это временное переопределение, которое будет удалено в v4. Исправленное поведение '{rule}' будет применено постоянно.",
119
- "HINT_WARN_SUPPRESS_FIX_ACTIVE": "Удалите '{rule}' из 'suppressFixes' и обновите структуру директорий API для поддержки исправленного поведения перед обновлением до v4.",
120
- "V3_CONFIG_DEPRECATED": "Параметр конфигурации '{option}' устарел и будет удалён в v4. Используйте вместо него '{replacement}'.",
121
- "HINT_V3_CONFIG_DEPRECATED": "Этот параметр конфигурации был переименован для ясности. Обновите код на новое имя параметра для совместимости с v4.",
122
- "V2_CONFIG_UNSUPPORTED": "Опция конфигурации '{option}' из v2 не поддерживается в v3. {hint} Используйте '{replacement}'.",
123
- "HINT_V2_CONFIG_UNSUPPORTED": "Опция v2 не поддерживается в v3 — обновите конфигурацию.",
124
- "DEBUG_MODE_ROOT_CONTRIBUTOR": "[{mode}] Обнаружен root-contributor: {functionName}",
125
- "DEBUG_MODE_ROOT_CONTRIBUTOR_APPLIED": "[{mode}] Применён шаблон root-contributor — API-функция с {properties} дополнительными свойствами",
126
- "DEBUG_MODE_PROCESSING_DIRECTORY": "[{mode}] Обработка каталога: {categoryName} (глубина {currentDepth})",
127
- "DEBUG_MODE_MODULE_DECISION": "[{mode}] Модуль {moduleName}: {reason}",
128
- "DEBUG_MODE_FLATTENING": "[{mode}] Выравнивание (flatten) {moduleName}: {flattenType}",
129
- "DEBUG_MODE_ASSIGN_TO_API": "ПРИСВОЕНИЕ-К-API",
130
- "DEBUG_MODE_COLLISION_CHECK": "ПРОВЕРКА-СТОЛКНОВЕНИЙ",
131
- "DEBUG_MODE_COLLISION_DETECT": "ОБНАРУЖЕНИЕ-СТОЛКНОВЕНИЯ",
132
- "DEBUG_MODE_COLLISION_WRAPPER_DETECTION": "СТОЛКНОВЕНИЕ: обнаружение обёртки",
133
- "DEBUG_MODE_COLLISION_LAZY_DETECTION": "СТОЛКНОВЕНИЕ: обнаружение lazy",
134
- "DEBUG_MODE_COLLISION_SET_MODE_EXISTING_WRAPPER": "СТОЛКНОВЕНИЕ: установка режима для СУЩЕСТВУЮЩЕЙ обёртки",
135
- "DEBUG_MODE_COLLISION_VERIFIED_EXISTING_WRAPPER_MODE": "СТОЛКНОВЕНИЕ: подтверждён режим существующей обёртки",
136
- "DEBUG_MODE_COLLISION_SET_MODE_VALUE_WRAPPER": "СТОЛКНОВЕНИЕ: установка режима для обёртки-значения",
137
- "DEBUG_MODE_COLLISION_VERIFIED_VALUE_WRAPPER_MODE": "СТОЛКНОВЕНИЕ: подтверждён режим обёртки-значения",
138
- "DEBUG_MODE_COLLISION_REPLACE_MATERIALIZE": "СТОЛКНОВЕНИЕ-ЗАМЕНА: инициирование немедленной материализации",
139
- "DEBUG_MODE_COLLISION_REPLACE_NO_COPY": "СТОЛКНОВЕНИЕ-ЗАМЕНА: свойства файла не копируются — replace очистит всё при материализации",
140
- "DEBUG_MODE_COLLISION_REPLACE_BEFORE": "СТОЛКНОВЕНИЕ-ЗАМЕНА: перед присвоением",
141
- "DEBUG_MODE_COLLISION_ASSIGN_REPLACING_WITH_LAZY": "СТОЛКНОВЕНИЕ-ПРИСВОЕНИЕ: замена существующего на lazy-папку",
142
- "DEBUG_MODE_COLLISION_REPLACE_AFTER": "СТОЛКНОВЕНИЕ-ЗАМЕНА: после присвоения",
143
- "DEBUG_MODE_COLLISION_REPLACE_VERIFY": "СТОЛКНОВЕНИЕ-ЗАМЕНА: проверка",
144
- "DEBUG_MODE_COLLISION_COPY_CHILD_KEYS": "СТОЛКНОВЕНИЕ-КОПИРОВАНИЕ: копирование дочерних ключей",
145
- "DEBUG_MODE_COLLISION_COPY_INDIVIDUAL_KEY": "СТОЛКНОВЕНИЕ-КОПИРОВАНИЕ: копирование отдельного ключа",
146
- "DEBUG_MODE_COLLISION_TRIGGER_EARLY_MAT": "СТОЛКНОВЕНИЕ-ЗАПУСК-ИНСТАНЦИРОВАНИЯ: ранняя материализация (запустил-и-забыл)",
147
- "DEBUG_MODE_MERGE_API_OBJECTS_ENTRY": "mergeApiObjects: вход",
148
- "DEBUG_MODE_MERGE_API_OBJECTS_SOURCE_KEYS": "mergeApiObjects: ключи sourceApi",
149
- "DEBUG_MODE_MERGE_API_OBJECTS_EXIT_INVALID_SOURCE": "mergeApiObjects: выход — sourceApi не объект/функция",
150
- "DEBUG_MODE_MERGE_API_OBJECTS_PROCESSING_KEY": "mergeApiObjects: обработка ключа",
151
- "DEBUG_MODE_MERGE_API_OBJECTS_RECURSING": "mergeApiObjects — оба простые object, рекурсивно",
152
- "DEBUG_MODE_MERGE_API_OBJECTS_CALLING_ASSIGN": "mergeApiObjects: вызов assignToApiPath",
153
- "DEBUG_MODE_BUILD_FINAL_API_CALLED": "Вызван buildFinalAPI",
154
- "DEBUG_MODE_SLOTHLET_NAMESPACE_CREATED": "Создано пространство имён Slothlet",
155
- "DEBUG_MODE_BUILT_INS_ATTACHED": "Встроенные функции подключены",
156
- "DEBUG_MODE_CATEGORY_REUSE_EXISTING_WRAPPER": "Повторное использование категории — используется существующая обёртка",
157
- "DEBUG_MODE_CATEGORY_WRAPPER_CREATED": "Создана обёртка категории",
158
- "DEBUG_MODE_CATEGORY_WRAPPER_ASSIGNED": "Обёртка категории назначена в API",
159
- "DEBUG_MODE_CATEGORY_CREATED": "Категория создана",
160
- "DEBUG_MODE_CATEGORY_TARGET_API_STATUS": "Статус targetApi категории",
161
- "DEBUG_MODE_PROCESSING_FILE": "Обработка файла",
162
- "DEBUG_MODE_PROCESSING_MODULE": "Обработка модуля",
163
- "DEBUG_MODE_FILE_PROCESSING": "Файл обрабатывается",
164
- "DEBUG_MODE_SINGLE_FILE_FOLDER_DETECTED": "Обнаружена single-file папка",
165
- "DEBUG_MODE_SINGLE_FILE_FOLDER_WRAPPED": "Single-file папка отмечена как свойство-обёртка",
166
- "DEBUG_MODE_FLATTEN_MULTI_EXPORT_FILE": "Выравнивание много-экспортного файла",
167
- "DEBUG_MODE_FLATTEN_MULTI_EXPORT_TARGET_STATUS": "Статус targetApi при выравнивании",
168
- "DEBUG_MODE_FLATTEN_MULTI_EXPORT_ASSIGNING": "Назначение ключа при выравнивании",
169
- "DEBUG_MODE_FLATTEN_MULTI_EXPORT_ASSIGNED": "Ключ выравнивания успешно назначен",
170
- "DEBUG_MODE_FLATTEN_MULTI_EXPORT_BLOCKED": "Ключ выравнивания заблокирован safeAssign",
171
- "DEBUG_MODE_FILE_WRAPPER_ASSIGNMENT": "Назначение обёртки файла",
172
- "DEBUG_MODE_AFTER_ASSIGNMENT_STATUS": "Статус после назначения",
173
- "DEBUG_MODE_SUBDIRECTORY_CHECK": "Проверка подкаталога",
174
- "DEBUG_MODE_DIRECTORY_CHECK": "Проверка каталога",
175
- "DEBUG_MODE_DIRECTORY_CHECK_PASSED": "Проверка каталога пройдена",
176
- "DEBUG_MODE_SUBDIRECTORIES_FOUND": "Найдены подкаталоги",
177
- "DEBUG_MODE_SUBDIRECTORY_LOOP_START": "Начало цикла подкаталога",
178
- "DEBUG_MODE_PROCESSING_SUBDIRECTORY": "Обработка подкаталога",
179
- "DEBUG_MODE_FOLDER_LEVEL_FLATTEN_CHECK": "Проверка выравнивания на уровне папки",
180
- "DEBUG_MODE_FOLDER_LEVEL_FLATTEN_SKIP_RECURSION": "Пропуск рекурсии при выравнивании папки",
181
- "DEBUG_MODE_FILE_FOLDER_COLLISION_MERGED": "Конфликт файл-папка: экспорты файла объединены в реализацию папки",
182
- "DEBUG_MODE_CREATING_LAZY_SUBDIRECTORY": "Создание lazy-подкаталога",
183
- "DEBUG_MODE_MATERIALIZE_FUNCTION_STARTING": "Запуск материализации функции",
184
- "DEBUG_MODE_MATERIALIZE_FUNCTION_RETURNING_IMPL": "Материализация функции вернула реализацию",
185
- "DEBUG_MODE_FOLDER_PATTERN_MATCH": "Совпадение шаблона папки",
186
- "DEBUG_MODE_FOLDER_PATTERN_ATTACH_PROPERTY": "Шаблон папки: прикрепление свойства",
187
- "DEBUG_MODE_FOLDER_PATTERN_RETURN": "Шаблон папки: возврат",
188
- "DEBUG_MODE_CACHE_ENTRY_STORED": "Запись кеша сохранена",
189
- "DEBUG_MODE_CACHE_ENTRY_DELETED": "Запись кеша удалена",
190
- "DEBUG_MODE_ALL_CACHES_CLEARED": "Все кеши очищены",
191
- "DEBUG_MODE_REBUILDING_CACHE_FROM_DISK": "Восстановление кеша с диска",
192
- "DEBUG_MODE_CACHE_REBUILT_SUCCESSFULLY": "Кеш успешно восстановлен",
193
- "DEBUG_MODE_SYNC_WRAPPER_ENTRY_EXISTING": "syncWrapper: вход — existingProxy",
194
- "DEBUG_MODE_SYNC_WRAPPER_ENTRY_NEXT": "syncWrapper: вход — nextProxy",
195
- "DEBUG_MODE_SYNC_WRAPPER_EXISTING": "syncWrapper: существующая обёртка",
196
- "DEBUG_MODE_SYNC_WRAPPER_NEXT": "syncWrapper: следующая обёртка",
197
- "DEBUG_MODE_SYNC_WRAPPER_BEFORE_MERGE": "syncWrapper: перед слиянием",
198
- "DEBUG_MODE_SYNC_WRAPPER_NEXT_IMPL_KEYS": "syncWrapper: ключи реализации следующей обёртки",
199
- "DEBUG_MODE_SYNC_WRAPPER_NEXT_CHILDCACHE_KEYS": "syncWrapper: ключи childCache следующей обёртки",
200
- "DEBUG_MODE_MUTATE_API_VALUE_CALLED": "mutateApiValue вызвано",
201
- "DEBUG_MODE_MUTATE_API_VALUE_WRAPPER_STATUS": "mutateApiValue: статус обёртки",
202
- "DEBUG_MODE_MUTATE_API_VALUE_NEXT_VALUE": "mutateApiValue: следующее значение",
203
- "DEBUG_MODE_MUTATE_API_VALUE_NEXT_VALUE_KEYS": "mutateApiValue: ключи следующего значения",
204
- "DEBUG_MODE_MUTATE_API_VALUE_SYNC_WRAPPERS": "mutateApiValue — оба являются обёртками, вызывается syncWrapper",
205
- "DEBUG_MODE_MUTATE_API_VALUE_MERGE_INTO_WRAPPER": "mutateApiValue — слияние свойств в существующую обёртку",
206
- "DEBUG_MODE_MUTATE_API_VALUE_MERGE_KEYS": "mutateApiValue: ключи для слияния",
207
- "DEBUG_MODE_MUTATE_API_VALUE_SETIMPL_FALLBACK": "mutateApiValue — использование резервного ___setImpl",
208
- "DEBUG_MODE_SET_VALUE_AT_PATH": "установить-значение-на-пути",
209
- "DEBUG_MODE_SET_VALUE_AT_PATH_SKIP_COLLISION": "setValueAtPath — пропуск столкновения",
210
- "DEBUG_MODE_SET_VALUE_AT_PATH_REPLACE_MERGE": "setValueAtPath — замена слиянием (сохраняет обёртку)",
211
- "DEBUG_MODE_SET_VALUE_AT_PATH_MERGE_PROPS": "setValueAtPath — слияние свойств",
212
- "DEBUG_MODE_SET_VALUE_AT_PATH_ASSIGN": "setValueAtPath — без столкновения, присваивание",
213
- "DEBUG_MODE_ADD_API_COMPONENT_BUILD_RETURN": "addApiComponent: возвращаемая структура buildAPI",
214
- "DEBUG_MODE_RULE_13_DEDUP_HOISTED_KEY": "Правило 13 C34: AddApi — удаление дубликатов путей, поднят дублирующийся ключ",
215
- "DEBUG_MODE_ADD_API_COMPONENT_MERGE_KEYS": "addApiComponent: ключи apiToMerge",
216
- "DEBUG_MODE_AWAITING_PENDING_MATERIALIZATIONS": "Ожидание {count} ожидающих материализаций перед завершением add",
217
- "DEBUG_MODE_CACHE_DELETED_MODULE_REMOVED": "Кеш удалён для удалённого модуля",
218
- "DEBUG_MODE_RELOADING_MODULE_BY_ID": "Перезагрузка модуля по ID",
219
- "DEBUG_MODE_FRESH_API_KEYS_BEFORE_RESTORE": "Новые ключи API до восстановления",
220
- "DEBUG_MODE_FRESH_API_KEYS_AFTER_RESTORE": "Новые ключи API после восстановления",
221
- "DEBUG_MODE_MODULE_RELOAD_COMPLETE": "Перезагрузка модуля завершена",
222
- "DEBUG_MODE_RELOADING_BY_API_PATH": "Перезагрузка по API пути",
223
- "DEBUG_MODE_NO_CACHES_ATTEMPTING_RESTORE": "Для пути не найдено кешей, попытка базового восстановления",
224
- "DEBUG_MODE_API_PATH_RELOAD_COMPLETE": "Перезагрузка API пути завершена",
225
- "DEBUG_MODE_RESTORE_ROOT_KEY_INSPECT": "ВОССТАНОВЛЕНИЕ-ИНСПЕКЦИЯ-КОРНЯ",
226
- "DEBUG_MODE_ROOT_KEY_RESET_LAZY": "Корневой ключ сброшен в lazy через ___resetLazy",
227
- "DEBUG_MODE_ROOT_KEY_UPDATED_SETIMPL": "Корневой ключ обновлён через ___setImpl",
228
- "DEBUG_MODE_RESTORE_NESTED_PATH": "ВОССТАНОВЛЕНИЕ: вложенный путь",
229
- "DEBUG_MODE_RESTORE_FORCING_REPLACE": "ВОССТАНОВЛЕНИЕ: принудительная замена (replace)",
230
- "DEBUG_MODE_UPDATED_WRAPPER_IMPL": "Обновлена реализация существующей обёртки",
231
- "DEBUG_MODE_CREATED_NEW_WRAPPER_UNEXPECTED": "Создана новая обёртка (неожиданно при перезагрузке)",
232
- "DEBUG_MODE_LIFECYCLE_EVENT": "Событие: {event}",
233
- "DEBUG_MODE_WRAPPER_CONSTRUCTOR_IMPL_KEYS": "Конструктор UnifiedWrapper — ключи реализации",
234
- "DEBUG_MODE_WRAPPER_CONSTRUCTOR_AFTER_ADOPT": "Конструктор UnifiedWrapper — после adopt",
235
- "DEBUG_MODE_BACKGROUND_MATERIALIZE_ERROR": "Фоновая ошибка материализации",
236
- "DEBUG_MODE_APPLY_IMPL_UPDATE_PATH": "[APPLY-IMPL-UPDATE-PATH]: обновлён filePath из null",
237
- "DEBUG_MODE_SETIMPL_CALLED": "___setImpl вызван",
238
- "DEBUG_MODE_RESETLAZY_CALLED": "___resetLazy вызван",
239
- "DEBUG_MODE_RESETLAZY_COMPLETE": "___resetLazy завершён — обёртка теперь не материализована",
240
- "DEBUG_MODE_MATERIALIZE_AWAIT": "ОЖИДАНИЕ-ИНСТАНЦИРОВАНИЯ: ожидание существующего promise материализации",
241
- "DEBUG_MODE_MATERIALIZE_START": "_materialize: начало",
242
- "DEBUG_MODE_MATERIALIZE_CALLING_FUNC": "_materialize: вызов materializeFunc",
243
- "DEBUG_MODE_MATERIALIZE_COMPLETE": "_materialize: завершено",
244
- "DEBUG_MODE_MATERIALIZE_ERROR": "_materialize: ошибка",
245
- "DEBUG_MODE_ADOPT_START": "[ADOPT]: начало",
246
- "DEBUG_MODE_ADOPT_REPLACE_CLEARING": "[ADOPT]: режим REPLACE — очистка существующих свойств",
247
- "DEBUG_MODE_ADOPT_PROCESS": "[ADOPT]: процесс",
248
- "DEBUG_MODE_ADOPT_CHECK": "[ADOPT]: проверка",
249
- "DEBUG_MODE_ADOPT_SKIP_COLLISION_MERGED": "[ADOPT]: пропуск — столкновение объединено, сохраняется версия из файла",
250
- "DEBUG_MODE_ADOPT_SKIP_NON_CONFIGURABLE": "[ADOPT]: пропуск — свойство неконфигурируемо (унаследовано)",
251
- "DEBUG_MODE_ADOPT_SKIP_SAME_WRAPPER": "[ADOPT]: пропуск — свойство уже существует с той же обёрткой",
252
- "DEBUG_MODE_ADOPT_ALLOW_NOT_COLLISION_MERGED": "[ADOPT]: разрешено — не было объединения",
253
- "DEBUG_MODE_ADOPT_REUSE_CHILD_WRAPPER": "[ADOPT]: повторное использование дочерней обёртки",
254
- "DEBUG_MODE_ADOPT_WRAP": "[ADOPT]: обёртывание",
255
- "DEBUG_MODE_ADOPT_DEFINE": "[ADOPT]: определение на обёртке",
256
- "DEBUG_MODE_ADOPT_DEFINED": "[ADOPT]: успешно определено на обёртке",
257
- "DEBUG_MODE_WRAP_CHILD_PATH_CHECK": "[WRAP-CHILD-PATH]: проверка пути дочернего файла",
258
- "DEBUG_MODE_WRAP_CHILD_PATH_AVAILABLE": "[WRAP-CHILD-PATH]: __childFilePaths доступны",
259
- "DEBUG_MODE_WRAP_CHILD_PATH_USING": "[WRAP-CHILD-PATH]: использование __childFilePaths",
260
- "DEBUG_MODE_WRAP_CHILD_PATH_PRE_MAT": "[WRAP-CHILD-PATH]: использование __childFilePathsPreMaterialize",
261
- "DEBUG_MODE_WRAP_CHILD_PATH_FALLBACK": "[WRAP-CHILD-PATH]: использование запасного parentMetadata?.filePath",
262
- "DEBUG_MODE_WAITING_TYPE": "ОЖИДАЕТ-ТИП",
263
- "DEBUG_MODE_WAITING_TYPE_WALK_WRAPPER": "[WAITING-TYPE-WALK]: найдено в обёртке",
264
- "DEBUG_MODE_WAITING_TYPE_WALK_IMPL": "[WAITING-TYPE-WALK]: найдено в _impl",
265
- "DEBUG_MODE_WAITING_TYPE_WALK_DIRECT": "[WAITING-TYPE-WALK]: доступ напрямую",
266
- "DEBUG_MODE_WAITING_TYPE_RESOLVED": "ОЖИДАЕТ-ТИП: разрешено",
267
- "DEBUG_MODE_WAITING_TYPE_INFLIGHT": "[WAITING-TYPE-INFLIGHT]: возвращает IN_FLIGHT",
268
- "DEBUG_MODE_WAITING_GET_PREMATURE": "[WAITING-GET-PREMATURE]: найдено до материализации",
269
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT": "[WAITING-GET-IMMEDIATE-MAT]: инициирована немедленная материализация для объединённой при коллизии папки",
270
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_ERROR": "[WAITING-GET-IMMEDIATE-MAT-ERROR]: материализация не удалась",
271
- "DEBUG_MODE_WAITING_GET_IMMEDIATE_MAT_SUCCESS": "[WAITING-GET-IMMEDIATE-MAT-SUCCESS]: теперь доступно в обёртке",
272
- "DEBUG_MODE_WAITING_APPLY_ENTRY": "ОЖИДАЕТ-АНДЕР-ЗАПИСЬ",
273
- "DEBUG_MODE_WAITING_APPLY_MATERIALIZE": "[WAITING-APPLY-MATERIALIZE]: запуск материализации",
274
- "DEBUG_MODE_WAITING_APPLY_MATERIALIZED": "[WAITING-APPLY-MATERIALIZED]: материализация завершена",
275
- "DEBUG_MODE_WAITING_APPLY_START_WALK": "[WAITING-APPLY-START-WALK]: начало обхода propChain",
276
- "DEBUG_MODE_WAITING_APPLY_WALK": "ОЖИДАЕТ-ОБХОД-АНДЕР",
277
- "DEBUG_MODE_WAITING_APPLY": "ОЖИДАЕТ-АНДЕР",
278
- "DEBUG_MODE_GET_START": "[GET]: начало",
279
- "DEBUG_MODE_INSPECT_LAZY_UNMATERIALIZED": "util.inspect.custom: lazy не материализовано",
280
- "DEBUG_MODE_GET_CACHED_REPLACE": "ПОЛУЧИТЬ-ИЗ-КЭША-ЗАМЕНИТЬ",
281
- "DEBUG_MODE_GET_CACHED": "ПОЛУЧЕНО-ИЗ-КЭША",
282
- "DEBUG_MODE_ADOPT": "ПРИНЯТЬ",
283
- "DEBUG_MODE_GET_PROXYGET_ACCESSING": "[GET-PROXYGET]: доступ",
284
- "DEBUG_MODE_GET_PROXYGET_FOUND": "[GET-PROXYGET]: найдено в обёртке",
285
- "DEBUG_MODE_LAZY_GET_CREATE_WAITING_PROXY": "[LAZY-GET]: будет создан ожид. прокси",
286
- "DEBUG_MODE_BUILD_LAZY_API_CALLED": "buildLazyAPI вызван",
287
- "DEBUG_MODE_COMPONENT_INITIALIZED": "Компонент инициализирован: {component} → this.{category}.{propertyName}",
288
- "DEBUG_MODE_LAZY_WRAPPER_REGISTERED": "Lazy-обёртка зарегистрирована",
289
- "DEBUG_MODE_LAZY_WRAPPER_MATERIALIZED": "Lazy-обёртка материализована",
290
- "DEBUG_MODE_ALL_LAZY_WRAPPERS_MATERIALIZED": "Все lazy-обёртки материализованы",
291
- "HINT_REFERENCE_REMOVED": "Экспорт 'reference' удалён из '@cldmv/slothlet/runtime'. Доступ через 'self.*' (например, 'self.myRefProperty').",
292
- "HINT_SYNTAX_ERROR": "Проверьте синтаксис файла модуля. Частые ошибки: пропущенные скобки, незакрытые строки или неверный JavaScript.",
293
- "INVALID_HOOK_HANDLER": "Обработчик hook должен быть функцией. Получен: {receivedType}.",
294
- "HINT_INVALID_HOOK_HANDLER": "Передайте функцию как обработчик hook, не строку.",
295
- "DUPLICATE_HOOK_ID": "Hook с ID \"{id}\" уже существует. Используйте уникальную ID или опустите опцию id.",
296
- "HINT_DUPLICATE_HOOK_ID": "Используйте другую ID или удалите опцию id, чтобы сгенерировать автоматически.",
297
- "INVALID_HOOK_SUBSET": "Неверный subset hook \"{subset}\". Должен быть \"before\", \"primary\" или \"after\".",
298
- "HINT_INVALID_HOOK_SUBSET": "Subsets управляют порядком выполнения: 'before', 'primary', 'after'.",
299
- "INVALID_TYPE_PATTERN": "Неверный паттерн типа \"{typePattern}\". {expected}",
300
- "HINT_INVALID_TYPE_PATTERN": "Шаблоны хуков используют форму 'pattern:type', например 'math.*:before' или '**:error'. Прежняя форма 'type:pattern' всё ещё работает, но устарела.",
301
- "HOOK_BEFORE_RETURNED_PROMISE": "Before-hook '{id}' для пути '{path}' вернул Promise. Before-hooks должны быть синхронными.",
302
- "HINT_HOOK_BEFORE_RETURNED_PROMISE": "Before-hooks выполняются синхронно до вызова API. Уберите async/await или сделайте hook 'after'.",
303
- "HOOK_BRACE_EXPANSION_MAX_DEPTH": "Развёртывание скобок в паттерне hook превысило максимальную глубину {maxDepth}.",
304
- "HINT_HOOK_BRACE_EXPANSION_MAX_DEPTH": "Упростите паттерн пути, чтобы уменьшить вложенность.",
305
- "SCOPE_DISABLED": "Per-request context isolation отключена. Установите 'scope: {}' в конфигурации Slothlet для включения.",
306
- "HINT_SCOPE_DISABLED": "Добавьте 'scope: {}' (или объект конфигурации) для включения изоляции контекста по запросу.",
307
- "SCOPE_INVALID_CONTEXT": "Данные контекста должны быть простым объектом. Получено: {received}.",
308
- "HINT_SCOPE_INVALID_CONTEXT": "Передайте простой объект как первый аргумент в run(), например api.slothlet.run({ userId: 1 }, callback).",
309
- "SCOPE_INVALID_CALLBACK": "Callback должен быть функцией. Получено: {received}.",
310
- "HINT_SCOPE_INVALID_CALLBACK": "Передайте функцию как второй аргумент в run().",
311
- "SCOPE_INVALID_OPTIONS": "Опции должны быть простым объектом. Получено: {received}.",
312
- "HINT_SCOPE_INVALID_OPTIONS": "Передайте простой объект опций в scope().",
313
- "SCOPE_INVALID_FN": "'fn' должен быть функцией. Получено: {received}.",
314
- "HINT_SCOPE_INVALID_FN": "Установите options.fn на функцию, которую нужно выполнить в изолированном контексте.",
315
- "SCOPE_INVALID_CONTEXT_OBJECT": "'context' должен быть простым объектом. Получено: {received}.",
316
- "HINT_SCOPE_INVALID_CONTEXT_OBJECT": "Установите options.context на простой объект со данными по запросу.",
317
- "SCOPE_INVALID_MERGE_STRATEGY": "Неверная стратегия объединения '{merge}'. Должна быть 'shallow' или 'deep'.",
318
- "HINT_SCOPE_INVALID_MERGE_STRATEGY": "Используйте merge: 'shallow' (по умолчанию) или merge: 'deep' для рекурсивного объединения.",
319
- "SCOPE_INVALID_ISOLATION_MODE": "Неверный режим изоляции '{isolationMode}'. Должен быть 'partial' или 'full'.",
320
- "HINT_SCOPE_INVALID_ISOLATION_MODE": "Используйте isolation: 'partial' (наследует родительский контекст) или 'full' (новый контекст).",
321
- "CHAIN_ACCESS_UNDEFINED": "Невозможно получить доступ к '{prop}' на undefined при обходе '{apiPath}.{chainLabel}'.",
322
- "HINT_CHAIN_ACCESS_UNDEFINED": "Свойство цепочки оказалось undefined до достижения цели. Проверьте промежуточные пути.",
323
- "CHAIN_MATERIALIZE_FAILED": "Не удалось материализовать '{prop}' при обходе '{apiPath}.{chainLabel}'.",
324
- "HINT_CHAIN_MATERIALIZE_FAILED": "Lazy-модуль по этому пути не загрузился. Проверьте файл и экспорты.",
325
- "CHAIN_NOT_CALLABLE": "'{apiPath}.{chainLabel}' не является вызываемым или не существует.",
326
- "HINT_CHAIN_NOT_CALLABLE": "Убедитесь, что путь API указывает на функцию или модуль экспортирует ожидаемую функцию.",
327
- "TYPESCRIPT_ESBUILD_NOT_INSTALLED": "Для режима TypeScript {mode} требуется 'esbuild'.",
328
- "HINT_TYPESCRIPT_ESBUILD_NOT_INSTALLED": "Установите: npm install esbuild",
329
- "TYPESCRIPT_TSC_NOT_INSTALLED": "Для режима TypeScript {mode} требуется 'typescript'.",
330
- "HINT_TYPESCRIPT_TSC_NOT_INSTALLED": "Установите: npm install typescript",
331
- "TYPESCRIPT_NOT_INSTALLED": "Генерация типов ({feature}) требует 'typescript'.",
332
- "HINT_TYPESCRIPT_NOT_INSTALLED": "Подсказка: для генерации типов установите: npm install typescript",
333
- "TS_STRICT_REQUIRES_OUTPUT": "Режим TS strict требует настройки 'types.output' в конфигурации.",
334
- "HINT_TS_STRICT_REQUIRES_OUTPUT": "Добавьте 'types: { output: './types/api.d.ts', interfaceName: 'MyAPI' }'.",
335
- "TS_STRICT_REQUIRES_INTERFACE_NAME": "TS strict требует 'types.interfaceName'.",
336
- "HINT_TS_STRICT_REQUIRES_INTERFACE_NAME": "Добавьте 'interfaceName' в конфигурацию 'types'.",
337
- "TS_TYPE_GENERATION_FAILED": "Ошибка генерации типов: {error}",
338
- "HINT_TS_TYPE_GENERATION_FAILED": "Дочерний процесс генерации типов завершился с ошибкой. Проверьте вывод.",
339
- "TS_TYPE_GENERATION_FORK_FAILED": "Не удалось форкнуть процесс генерации типов: {error}",
340
- "HINT_TS_TYPE_GENERATION_FORK_FAILED": "Убедитесь, что Node.js может форкать процессы и существует tools/build/generate-types-worker.mjs.",
341
- "TS_TYPE_GENERATION_PROCESS_EXITED": "Процесс генерации типов завершился с кодом {code}: {output}",
342
- "HINT_TS_TYPE_GENERATION_PROCESS_EXITED": "Проверьте вывод дочернего процесса на ошибки компилятора.",
343
- "TS_TYPE_CHECK_ERRORS": "Ошибки типов TypeScript в '{filePath}':\n{errors}",
344
- "HINT_TS_TYPE_CHECK_ERRORS": "Исправьте ошибки типов в файле или установите typescript.strict в false.",
345
- "FLATTEN_REASON_MULTI_DEFAULT_WITH_DEFAULT": "Множественный default с default export",
346
- "FLATTEN_REASON_MULTI_DEFAULT_WITHOUT_DEFAULT": "Множественный default без default export",
347
- "FLATTEN_REASON_ADDAPI_METADATA_DEFAULT": "Специальный AddApi-файл с метаданными по умолчанию",
348
- "FLATTEN_REASON_ADDAPI_SPECIAL_FILE": "Специальный AddApi-файл — всегда flatten",
349
- "FLATTEN_REASON_ADDAPI_SPECIAL_FILE_PARENT": "Специальный AddApi-файл с метаданными — flatten именованных экспортов в родителя",
350
- "FLATTEN_REASON_SELF_REFERENTIAL": "Обнаружен self-referential экспорт",
351
- "FLATTEN_REASON_SINGLE_EXPORT_MATCHES_FILENAME": "Единственный именованный экспорт совпадает с именем файла",
352
- "FLATTEN_REASON_FILENAME_MATCHES_CATEGORY": "Имя файла совпадает с именем категории",
353
- "FLATTEN_REASON_PRESERVING_FUNCTION_NAME": "Сохранение имени функции вместо имени файла",
354
- "FLATTEN_REASON_DEFAULT_PRESERVE_NAMESPACE": "Поведение по умолчанию — сохранить namespace",
355
- "FLATTEN_REASON_NO_CONDITIONS_MET": "Условия для flatten не выполнены",
356
- "FLATTEN_REASON_FUNCTION_FOLDER_MATCH": "Имя функции совпадает с именем папки",
357
- "FLATTEN_REASON_DEFAULT_OBJECT_EXPORT_FLATTEN": "Объектный экспорт по умолчанию совпадает с именем папки",
358
- "FLATTEN_REASON_BASENAME_MATCHES_CATEGORY": "Базовое имя файла совпадает с именем категории",
359
- "FLATTEN_REASON_GENERIC_FILENAME_SINGLE_EXPORT": "Общий имя файла с единственным экспортом",
360
- "FLATTEN_REASON_DEFAULT_FUNCTION_EXPORT": "Экспорт функции по умолчанию",
361
- "FLATTEN_REASON_SINGLE_EXPORT_MATCHES_MODULE": "Единственный именованный экспорт совпадает с именем модуля (финальная проверка)",
362
- "INVALID_CONFIG_PATH_TYPE": "Путь должен быть директорией или поддерживаемым типом файла (.mjs, .cjs, .js). Получено: {path}",
363
- "HINT_INVALID_CONFIG_PATH_TYPE": "Убедитесь, что путь указывает на директорию или модульный файл с расширением .mjs/.cjs/.js.",
364
- "INVALID_CONFIG_FILE_TYPE": "Файл должен иметь расширение .mjs, .cjs или .js. Получено: {extension} для {path}",
365
- "HINT_INVALID_CONFIG_FILE_TYPE": "Переименуйте файл с поддерживаемым расширением (.mjs, .cjs, .js).",
366
- "API_PATH_REASON_ARRAY_ELEMENTS": "Элементы массива должны быть строками",
367
- "API_PATH_REASON_ARRAY_EMPTY_SEGMENTS": "Массив содержит пустые сегменты",
368
- "API_PATH_REASON_RESERVED_NAME": "Конфликт с зарезервированными именами (slothlet, shutdown, destroy)",
369
- "API_PATH_REASON_INVALID_TYPE": "Должно быть строкой, массивом строк, пустой строкой (root) или null/undefined (root)",
370
- "API_PATH_REASON_EMPTY_SEGMENTS": "Содержит пустые сегменты пути",
371
- "API_PATH_REASON_COLLISION_ERROR": "Путь уже существует и режим столкновения 'error'",
372
- "API_PATH_REASON_NOT_TRAVERSABLE": "Сегмент пути не существует или не может быть пройден",
373
- "API_PATH_REASON_REQUIRED": "apiPath обязателен для операции removeApi",
374
- "API_PATH_REASON_VERSIONED_ROOT": "Версионированные API-компоненты нельзя монтировать в корневом пути; укажите путь через точку, например 'auth' или 'v1.auth'",
375
- "INVALID_API_PATH": "Неверный API-путь: '{apiPath}' не существует в загруженной API.",
376
- "HINT_INVALID_API_PATH": "Убедитесь, что путь API существует перед использованием. Используйте точечную нотацию, напр. 'math.add'.",
377
- "HOOKS_NOT_INITIALIZED": "Невозможно использовать hooks: менеджер hook не инициализирован.",
378
- "HINT_HOOKS_NOT_INITIALIZED": "Поддержка hook требует 'hooks: true' в конфигурации Slothlet.",
379
- "METADATA_NOT_AVAILABLE": "Метаданные недоступны: обработчик метаданных не инициализирован. Доступные обработчики: {handlersKeys}.",
380
- "HINT_METADATA_NOT_AVAILABLE": "Поддержка метаданных встроена. Если обработчик отсутствует — это внутренняя ошибка.",
381
- "NO_CONTEXT_MANAGER": "Для этого экземпляра Slothlet не настроен менеджер контекста.",
382
- "HINT_NO_CONTEXT_MANAGER": "Инициализируйте Slothlet с 'contextManager: new AsyncContextManager()' или 'new LiveContextManager()'.",
383
- "UNSUPPORTED_CONTEXT_MANAGER": "Неподдерживаемый менеджер контекста: '{manager}'. Поддерживаются AsyncContextManager и LiveContextManager.",
384
- "HINT_UNSUPPORTED_CONTEXT_MANAGER": "Используйте AsyncContextManager для async/ALS или LiveContextManager для live-binding.",
385
- "INVALID_CONFIG_VERSION_DISPATCHER": "config.versionDispatcher должен быть строкой (ключ метаданных) или функцией; получено: {received}",
386
- "INVALID_CONFIG_VERSION_TAG": "versionConfig.version должен быть непустой строкой; получено: {received}",
387
- "VERSION_NOT_FOUND": "Версия '{version}' не зарегистрирована по пути '{apiPath}'.",
388
- "HINT_VERSION_NOT_FOUND": "Вызовите api.slothlet.versioning.list('{apiPath}'), чтобы увидеть, какие теги версий зарегистрированы по этому пути.",
389
- "VERSION_NO_DEFAULT": "Для пути '{apiPath}' не настроена версия по умолчанию, и версия не может быть определена из метаданных вызывающего.",
390
- "VERSION_DISPATCH_NOT_CALLABLE": "Версионированный диспетчер по пути '{apiPath}' является пространством имён, а не вызываемой функцией.",
391
- "VERSION_REGISTER_DUPLICATE": "Версия '{version}' уже зарегистрирована по пути '{apiPath}'. Используйте collisionMode 'replace' для замены.",
392
- "HINT_VERSION_REGISTER_DUPLICATE": "Сначала вызовите api.slothlet.versioning.unregister('{apiPath}', '{version}') или зарегистрируйте с другим тегом версии.",
393
- "VERSION_DISCRIMINATOR_INVALID_RETURN": "Функция versionDispatcher вернула '{returned}', что не является зарегистрированным тегом версии для пути '{apiPath}'.",
394
- "DEBUG_VERSION_RESOLVED": "Версия определена: {version} для пути {apiPath} (вызывающий: {callerModule})",
395
- "DEBUG_VERSION_DEFAULT_USED": "Нет совпадения дискриминатора для пути {apiPath}; используется версия по умолчанию {version}.",
396
- "DEBUG_VERSION_REGISTERED": "Версия {version} зарегистрирована в {logicalPath} (moduleID: {moduleID})",
397
- "DEBUG_VERSION_UNREGISTERED": "Версия {version} удалена из {logicalPath}",
398
- "PERMISSION_DENIED": "Доступ запрещён: вызывающий '{caller}' не имеет права доступа к '{target}'",
399
- "HINT_PERMISSION_DENIED": "Проверьте правила разрешений для этой пары вызывающий/цель. Используйте api.slothlet.permissions.global.rulesForPath('{target}') для просмотра активных правил.",
400
- "PERMISSION_SELF_MODIFY": "Модуль '{moduleID}' не может удалить собственное правило разрешений '{ruleId}'",
401
- "HINT_PERMISSION_SELF_MODIFY": "Правила разрешений неизменяемы для модуля-владельца. Другой модуль должен удалить это правило.",
402
- "INVALID_PERMISSION_RULE": "Недопустимое правило разрешений: {reason} (получено: {received})",
403
- "HINT_INVALID_PERMISSION_RULE": "Правила разрешений требуют: caller (string glob), target (string glob) и effect ('allow' или 'deny').",
404
- "DEBUG_PERMISSION_DENIED": "Разрешение отклонено: вызывающий '{caller}' -> цель '{target}'",
405
- "DEBUG_PERMISSION_ALLOWED": "Разрешение предоставлено: вызывающий '{caller}' -> цель '{target}'",
406
- "DEBUG_PERMISSION_SELF_BYPASS": "Самообход разрешений: вызывающий и цель имеют общий moduleID '{moduleID}'",
407
- "DEBUG_PERMISSION_DEFAULT": "Применена политика разрешений по умолчанию: вызывающий '{caller}' -> цель '{target}' -> {effect}",
408
- "DEBUG_PERMISSION_RULE_ADDED": "Правило разрешений добавлено: {ruleId} ({caller} -> {target}: {effect}, владелец: {ownerModuleID})",
409
- "DEBUG_PERMISSION_RULE_REMOVED": "Правило разрешений удалено: {ruleId} ({caller} -> {target}: {effect})",
410
- "PERM_RULE_NOT_OBJECT": "правило должно быть ненулевым объектом",
411
- "PERM_RULE_CALLER_REQUIRED": "rule.caller должно быть непустой строкой",
412
- "PERM_RULE_TARGET_REQUIRED": "rule.target должно быть непустой строкой",
413
- "PERM_RULE_EFFECT_INVALID": "rule.effect должно быть 'allow' или 'deny'",
414
- "PERM_RULE_CONDITION_INVALID": "rule.condition должно быть обычным объектом, функцией или массивом, в котором каждый элемент является обычным объектом или функцией",
415
- "BRACE_EXPANSION_MAX_DEPTH": "Расширение фигурных скобок превысило максимальную глубину {maxDepth}",
416
- "HINT_BRACE_EXPANSION_MAX_DEPTH": "Уменьшите вложенность в ваших шаблонах скобок или увеличьте параметр maxDepth.",
417
- "PERMISSION_MANAGER_NOT_AVAILABLE": "Менеджер разрешений недоступен в этом экземпляре Slothlet",
418
- "MODULE_MANIFEST_NOT_FOUND": "Манифест модуля не найден для пакета '{packageName}': ожидался '{manifestPath}', но файл не существует.",
419
- "HINT_MODULE_MANIFEST_NOT_FOUND": "Модули плагинов должны поставляться с 'slothlet.module.json' в корне пакета (или файлом/ключом, указанным через переопределение `manifest`). Проверьте, что файл существует в пакете и локатор переопределения корректен.",
420
- "MODULE_MANIFEST_INVALID": "Манифест модуля недействителен для пакета '{packageName}' в '{manifestPath}': {reason}.",
421
- "HINT_MODULE_MANIFEST_INVALID": "Откройте манифест и убедитесь, что это валидный JSON и он соответствует схеме модуля slothlet (см. schemas/slothlet.module.schema.json). Обязательные поля: schemaVersion, mountPath, apiDir.",
422
- "MODULE_MANIFEST_REASON_NOT_OBJECT": "манифест должен быть объектом JSON",
423
- "MODULE_MANIFEST_REASON_MISSING_FIELD": "отсутствует обязательное поле '{field}'",
424
- "MODULE_MANIFEST_REASON_FIELD_TYPE": "поле '{field}' должно быть {expected}",
425
- "EXPECTED_NON_EMPTY_STRING": "непустой строкой",
426
- "EXPECTED_STRING": "строкой",
427
- "EXPECTED_FINITE_NUMBER": "конечным числом",
428
- "EXPECTED_PLAIN_OBJECT": "простым объектом",
429
- "EXPECTED_ARRAY_OF_RULE_OBJECTS": "массивом объектов правил",
430
- "MODULE_MANIFEST_REASON_MOUNTPATH_SHAPE": "поле 'mountPath' должно быть непустой строкой или непустым массивом непустых строк",
431
- "MODULE_MANIFEST_REASON_MOUNTPATH_ENTRIES": "все элементы массива поля 'mountPath' должны быть непустыми строками",
432
- "MODULE_MANIFEST_REASON_DEPENDENCY_TYPE": "зависимость '{dependency}' должна быть строкой диапазона версий",
433
- "MODULE_MANIFEST_REASON_PERMISSION_RULE": "permissions[{index}] должен быть объектом правила",
434
- "MODULE_MANIFEST_REASON_PERMISSION_CALLER": "permissions[{index}].caller должен быть непустой строкой",
435
- "MODULE_MANIFEST_REASON_PERMISSION_TARGET": "permissions[{index}].target должен быть непустой строкой",
436
- "MODULE_MANIFEST_REASON_PERMISSION_EFFECT": "permissions[{index}].effect должен быть \"allow\" или \"deny\"",
437
- "MODULE_MANIFEST_REASON_JSON_PARSE": "ошибка разбора JSON: {error}",
438
- "GENERATE_MANIFEST_DIR_INVALID": "generateManifest: dir должен быть непустой строкой, получено {received}",
439
- "GENERATE_MANIFEST_DIR_UNREADABLE": "generateManifest: не удаётся прочитать директорию \"{dir}\": {reason}",
440
- "GENERATE_MANIFEST_NOT_DIRECTORY": "generateManifest: \"{dir}\" не является директорией",
441
- "GENERATE_BROWSER_ASSETS_SLOTHLET_BASE_INVALID": "generateBrowserAssets: options.slothletBase должен быть строкой (путь, по которому @cldmv/slothlet подключается в браузере), получено {received}",
442
- "MODULE_MANIFEST_UNKNOWN_FIELD": "Манифест модуля для пакета '{packageName}' в '{manifestPath}' содержит нераспознанное поле верхнего уровня '{field}'. Неизвестные поля отклоняются; используйте выделенный блок 'metadata' для определяемых разработчиком дополнений.",
443
- "HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Если '{field}' — это опечатка, исправьте её. Если это намеренные метаданные разработчика, переместите их внутрь объекта 'metadata'.",
444
- "MODULE_MANIFEST_NAME_MISMATCH": "Манифест модуля для пакета '{packageName}' объявляет имя '{manifestName}', которое не совпадает с именем в package.json '{packageName}'.",
445
- "HINT_MODULE_MANIFEST_NAME_MISMATCH": "Поле 'name' в slothlet.module.json является необязательным, но должно совпадать с package.json при наличии. Либо удалите поле 'name' из манифеста, либо приведите его в соответствие с package.json.",
446
- "MODULE_MANIFEST_VERSION_MISMATCH": "Манифест модуля для пакета '{packageName}' объявляет версию '{manifestVersion}', которая не совпадает с версией в package.json '{packageVersion}'.",
447
- "HINT_MODULE_MANIFEST_VERSION_MISMATCH": "Поле 'version' в slothlet.module.json является необязательным, но должно совпадать с package.json при наличии. Либо удалите поле 'version' из манифеста, либо приведите его в соответствие с package.json.",
448
- "MODULE_PATH_TRAVERSAL": "Пакет модуля '{packageName}' имеет apiDir '{apiDir}', который разрешается за пределами корня пакета ('{resolvedPath}' не находится под '{packageRoot}').",
449
- "HINT_MODULE_PATH_TRAVERSAL": "apiDir должен быть относительным путём, остающимся внутри пакета. Удалите сегменты '..' и абсолютные пути.",
450
- "MODULE_VERSION_UNSUPPORTED": "Манифест модуля для пакета '{packageName}' использует неподдерживаемую schemaVersion '{schemaVersion}'. Поддерживаемые: 1.",
451
- "HINT_MODULE_VERSION_UNSUPPORTED": "Обновите slothlet до версии, поддерживающей schemaVersion {schemaVersion}, или обновите манифест для использования schemaVersion 1.",
452
- "MODULE_PACKAGE_NOT_FOUND": "Пакет модуля '{packageName}' не найден в кэше обнаружения. {hint}",
453
- "HINT_MODULE_PACKAGE_NOT_FOUND": "Либо пакет не установлен, либо scanRoot не охватывает его местоположение, либо вызов discover() ещё не был выполнен. addModule(name) лениво запустит discover() с scanRoot=process.cwd(), если кэш пуст.",
454
- "MODULE_RESERVED_MOUNTPATH": "Пакет модуля '{packageName}' объявляет зарезервированный корень mountPath '{mountPathRoot}' (из mountPath '{mountPath}'). Зарезервированные корни: slothlet, shutdown, destroy.",
455
- "HINT_MODULE_RESERVED_MOUNTPATH": "Зарезервированные корни mountPath используются встроенным интерфейсом slothlet и не могут быть востребованы модулями. Выберите другой корневой сегмент.",
456
- "MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Пакет модуля '{packageName}' версии '{version}' был найден по нескольким различным реальным путям: {paths}.",
457
- "HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Это почти наверняка ошибка конфигурации — один и тот же пакет той же версии установлен в двух несвязанных местах. Выясните, какая установка является целевой, и удалите другую.",
458
- "MODULE_MOUNT_COLLISION": "Пакет модуля '{packageName}' не может быть смонтирован в '{mountPath}': путь уже занят модулем '{existingModuleID}' и collisionMode имеет значение '{collisionMode}'.",
459
- "HINT_MODULE_MOUNT_COLLISION": "Измените mountPath в манифесте, передайте `collisionMode: \"merge\"` в `addModule()` / `addModules()` для разрешения сосуществования или сначала вызовите `removeModule()` для существующего модуля.",
460
- "HOOK_TYPEPATTERN_PREFIX_DEPRECATED": "Форма регистрации хука '{given}' устарела и будет удалена в v4. Используйте вместо неё форму «путь сначала» '{suggested}' (например, 'math.*:before').",
461
- "HINT_HOOK_TYPEPATTERN_PREFIX_DEPRECATED": "Переместите тип хука в конец в виде суффикса: перепишите селектор «тип сначала», например 'before:math.add', в форму «путь сначала» 'math.add:before'.",
462
- "HOOK_UNPINNED_IGNORED": "lockCaller:false был проигнорирован для хука '{pattern}'; хуки привязываются к регистрирующему их модулю. Установите hook.pin:false (инициализация) или вызовите api.slothlet.hook.pin.disable(), чтобы разрешить непривязанные хуки.",
463
- "HINT_HOOK_UNPINNED_IGNORED": "Хуки, зарегистрированные модулем, всегда привязываются к своему владельцу в целях безопасности. Чтобы разрешить непривязанные хуки, установите hook.pin:false в конфигурации slothlet или вызовите api.slothlet.hook.pin.disable() во время выполнения."
464
- },
465
- "metadata": {
466
- "code": "ru-ru",
467
- "name": "Russian (Russia)",
468
- "nativeName": "Русский (Россия)"
469
- }
470
- }