@vnejs/docs 0.2.51 → 0.2.53

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 (43) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/architecture.md +1 -1
  3. package/package.json +1 -1
  4. package/plugins/canvas/bg.md +0 -1
  5. package/plugins/canvas/bg.speak.md +1 -1
  6. package/plugins/canvas/sprite.md +0 -1
  7. package/plugins/canvas/sprite.speak.md +1 -1
  8. package/plugins/canvas/text.md +0 -1
  9. package/plugins/canvas/video.md +0 -1
  10. package/plugins/controls/cursor.md +2 -3
  11. package/plugins/core/components.md +2 -1
  12. package/plugins/core/interact.md +1 -1
  13. package/plugins/core/logs.md +10 -7
  14. package/plugins/core/media.md +1 -1
  15. package/plugins/core/scenario.md +2 -1
  16. package/plugins/core/settings.md +1 -1
  17. package/plugins/core/stack.md +12 -13
  18. package/plugins/core/state.md +1 -2
  19. package/plugins/core/storage.md +2 -2
  20. package/plugins/core/system.md +2 -1
  21. package/plugins/core/vendors.md +1 -3
  22. package/plugins/rpg/skills.md +2 -2
  23. package/plugins/save/save.md +2 -2
  24. package/plugins/scenario/autoread.md +2 -2
  25. package/plugins/scenario/choose.md +13 -14
  26. package/plugins/scenario/history.md +1 -1
  27. package/plugins/scenario/pause.md +2 -2
  28. package/plugins/scenario/point_and_click.md +10 -11
  29. package/plugins/scenario/qte.md +3 -3
  30. package/plugins/scenario/random.md +2 -2
  31. package/plugins/settings/ratio.md +2 -2
  32. package/plugins/text/meet.md +2 -2
  33. package/plugins/text/text.md +13 -14
  34. package/plugins/text/wall.md +0 -1
  35. package/plugins/views/achievement.md +1 -1
  36. package/plugins/views/cursor.md +1 -1
  37. package/plugins/views.scenario/choose.md +0 -1
  38. package/plugins/views.scenario/point_and_click.md +0 -1
  39. package/plugins/views.scenario/qte.md +1 -1
  40. package/plugins/views.screens/disclaimer.md +3 -2
  41. package/plugins/views.screens/history.md +1 -1
  42. package/plugins/views.screens/intro.md +2 -2
  43. package/plugins/views.screens/loading.md +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
4
4
 
5
+ ## 0.2.53
6
+
7
+ - `controls/cursor` — DOM-клик с тача эмитит `CURSOR.HIDE` (сам клик с `pointerType === "touch"`, клик после `pointerdown` с тача, либо `sourceCapabilities.firesTouchEvents`).
8
+ - `uis.react` — `vne-cursor-target` ставится только на узлы с `vne-cursor-target-possible` (тот же момент, что непустой `vne-cursor-type`). API: `vne-cursor-target-possible`.
9
+ - `views.screens/checkers`, `views.scenario/qte` — клетки доски и dial QTE помечаются `vne-cursor-target-possible`.
10
+ - `module` — `setStateFromGlobalState` → `setClonedState`: `setState(structuredClone(getStateSlice(payload)))`. `getStateSlice`: нет слайса в payload → `getDefaultState()` (пустые модули вырезаются из сейва). API: `setClonedState`, `getStateSlice`.
11
+ - `module.core` — снят `onSetStateClone`; вместо него `setClonedState`. Снят `emitClone`; вместо него `structuredClone`. Снят `emitInteractPushPop`; вместо него `emit(EVENTS.INTERACT.PUSH_POP, …)`. API: снято `ModuleCore.onSetStateClone`, `ModuleCore.emitClone`, `ModuleCore.emitInteractPushPop`.
12
+ - `core/logs` — доп. поля `LogsValue` — `LogsCloneable` (строки, числа, boolean, bigint, null, массивы, plain-object), не `unknown`. API: `LogsCloneable`, `LogsValue`.
13
+ - `core/vendors` — снято событие `CLONE` и модуль `vendors` (lodash `cloneDeep`). API: снято `EVENTS.VENDORS.CLONE`.
14
+
15
+ ## 0.2.52
16
+
17
+ - `core/logs` — `LogsEmitPayload` = `LogsValue` + опциональный `level` (без обёртки `value`); `module` в payload нет (имя эмиттера из `EmitParams`). API: `LogsValue`, `LogsEmitPayload`, `LogsPushPayload.log`.
18
+ - `module.core` — снят `emitLog`; логи через `emit(EVENTS.LOGS.EMIT, { action, … })`. API: снято `ModuleCore.emitLog`.
19
+ - Плагины с логами — `action` только из `CONST.*.LOGS_ACTIONS` (legacy `type` снят у stack/components/save/random); расширены/добавлены `LOGS_ACTIONS` у scenario, components, system, skills, storage, intro, loading, meet, ratio, random, disclaimer.
20
+
5
21
  ## 0.2.51
6
22
 
7
23
  - `observer` / `module` — `Observer.emit(event, payload, params)` вместо rest-args; `Module.emit(event, payload?)` сам собирает `params = { module: this.name }`. API: `EmitParams`, `EmitPayload`.
package/architecture.md CHANGED
@@ -169,7 +169,7 @@ flowchart TD
169
169
  | Пакет | Назначение |
170
170
  | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
171
171
  | **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
172
- | **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам**; `emitLog`, `emitClone`, … |
172
+ | **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам** |
173
173
  | **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
174
174
  | **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
175
175
  | **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vnejs/docs",
3
- "version": "0.2.51",
3
+ "version": "0.2.53",
4
4
  "description": "VNEJS documentation for engine consumers and coding agents",
5
5
  "files": [
6
6
  "*.md",
@@ -77,7 +77,6 @@ Payloads и результаты хендлеров типизированы ч
77
77
  - [media.md](../core/media.md) — `MEDIA`: EVENTS.LOAD, CONST.PRIORITIES.BACKGROUND, CONST.TYPES.IMAGE, EVENTS.GET
78
78
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
79
79
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.PRELOAD
80
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone, EVENTS.UID
81
80
 
82
81
  ### Остальные
83
82
 
@@ -49,7 +49,7 @@ Payloads и результаты хендлеров типизированы ч
49
49
 
50
50
  ### plugins/core/
51
51
 
52
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
52
+ — нет
53
53
 
54
54
  ### Остальные
55
55
 
@@ -80,7 +80,6 @@ Payloads и результаты хендлеров типизированы ч
80
80
  - [media.md](../core/media.md) — `MEDIA`: EVENTS.LOAD, CONST.TYPES.IMAGE, EVENTS.GET
81
81
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
82
82
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.PRELOAD
83
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
84
83
 
85
84
  ### Остальные
86
85
 
@@ -48,7 +48,7 @@ Payloads и результаты хендлеров типизированы ч
48
48
 
49
49
  ### plugins/core/
50
50
 
51
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
51
+ — нет
52
52
 
53
53
  ### Остальные
54
54
 
@@ -56,7 +56,6 @@ Payloads и результаты хендлеров типизированы ч
56
56
  - [interact.md](../core/interact.md) — `INTERACT`: EVENTS.PUSH_POP
57
57
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
58
58
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.PRELOAD
59
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
60
59
 
61
60
  ### Остальные
62
61
 
@@ -65,7 +65,6 @@ Payloads и результаты хендлеров типизированы ч
65
65
  - [media.md](../core/media.md) — `MEDIA`: EVENTS.LOAD, CONST.PRIORITIES.BACKGROUND, CONST.TYPES.VIDEO, EVENTS.GET
66
66
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
67
67
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.PRELOAD
68
- - [vendors.md](../core/vendors.md) — `VENDORS`: EVENTS.UID, emitClone
69
68
 
70
69
  ### Остальные
71
70
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Пакет: `@vnejs/plugins.controls.cursor` · namespace: `CURSOR`
4
4
 
5
- Кастомный курсор: позиция, сдвиг, скролл под курсором, view и программный клик.
5
+ Кастомный курсор: позиция, сдвиг, скролл под курсором, view и программный клик. DOM-клик с тача эмитит `HIDE`: у события `pointerType === "touch"`, перед кликом был `pointerdown` с тача, либо у клика `sourceCapabilities.firesTouchEvents`.
6
6
 
7
7
  ## События
8
8
 
@@ -54,7 +54,7 @@ Payloads и результаты хендлеров типизированы ч
54
54
  | `cursor.view.set` (`CursorViewSet`) | VIEW_SET + STATE/STARTED для проставления `view`. Имя `view.set`, чтобы не пересечься с `plugins/views/cursor` (`cursor.view`). |
55
55
  | `cursor.move` (`CursorMove`) | MOVE (мышь) → `CONTROLS.DEVICE_SET` (keyboard) + SHOW + SET_X_Y; скрывает системный курсор. |
56
56
  | `cursor.shift` (`CursorShift`) | SHIFT + INIT `SHIFT_SPEED` / `SHIFT_REVERSE_*`. |
57
- | `cursor.click` (`CursorClick`) | CLICK по координатам курсора. |
57
+ | `cursor.click` (`CursorClick`) | CLICK по координатам курсора. DOM-клик с тача эмитит `HIDE`. |
58
58
  | `cursor.scroll` (`CursorScroll`) | SCROLL + INIT `SCROLL_SPEED`. |
59
59
 
60
60
  ## Близкие плагины
@@ -64,7 +64,6 @@ Payloads и результаты хендлеров типизированы ч
64
64
  - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.INIT
65
65
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
66
66
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED, EVENTS.RESIZE
67
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
68
67
 
69
68
  ### Остальные
70
69
 
@@ -18,6 +18,7 @@ Payloads и результаты хендлеров типизированы ч
18
18
  ## Константы
19
19
 
20
20
  - **`LOGS_ACTIONS.RENDER`** — `"render"`: метка действия для логов при рендере.
21
+ - **`LOGS_ACTIONS.SHOW` / `HIDE`** — `"show"` / `"hide"`: метки для `ModuleController` (show/hide view).
21
22
 
22
23
  ## Параметры
23
24
 
@@ -41,7 +42,7 @@ Payloads и результаты хендлеров типизированы ч
41
42
 
42
43
  ### plugins/core/
43
44
 
44
- - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
45
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
45
46
  - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.DOM_IDS` (`APP`, `COMPONENTS`)
46
47
 
47
48
  ### Остальные
@@ -40,7 +40,7 @@ Payloads и результаты хендлеров типизированы ч
40
40
 
41
41
  ### plugins/core/
42
42
 
43
- - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
43
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
44
44
 
45
45
  ### Остальные
46
46
 
@@ -8,12 +8,16 @@
8
8
 
9
9
  Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.core.logs`.
10
10
 
11
- | Ключ | Строка | Смысл |
12
- | ------- | ---------------- | ---------------------------------------------------------------------------------------------------------- |
13
- | `EMIT` | `vne:logs:emit` | Поставить запись в очередь логов (если логирование включено); затем сформировать `PUSH` с uid и timestamp. |
14
- | `PUSH` | `vne:logs:push` | Записать строку в `window.VneLogs` и при необходимости вывести в консоль. |
15
- | `LOAD` | `vne:logs:load` | Скачать накопленные логи как JSON-файл через `SYSTEM.FILE_LOAD`. |
16
- | `CLEAR` | `vne:logs:clear` | Очистить `window.VneLogs`. |
11
+ | Ключ | Строка | Смысл |
12
+ | ------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
13
+ | `EMIT` | `vne:logs:emit` | Поставить запись в очередь логов (если логирование включено); затем сформировать `PUSH` с uid и timestamp. Имя модуля-источника — из `EmitParams.module`, не из payload. |
14
+ | `PUSH` | `vne:logs:push` | Записать строку в `window.VneLogs` и при необходимости вывести в консоль. |
15
+ | `LOAD` | `vne:logs:load` | Скачать накопленные логи как JSON-файл через `SYSTEM.FILE_LOAD`. |
16
+ | `CLEAR` | `vne:logs:clear` | Очистить `window.VneLogs`. |
17
+
18
+ Payload `EMIT` (`LogsEmitPayload`): поля `LogsValue` (`action: string` и прочие `LogsCloneable`: строки, числа, boolean, bigint, null, массивы и plain-object) плюс опционально `level`. `module` в payload нет: `Module.emit(this.EVENTS.LOGS.EMIT, { action, … })` передаёт имя модуля через `EmitParams`.
19
+
20
+ В модулях на базе `ModuleCore`: `this.emit(this.EVENTS.LOGS.EMIT, { action: …, … })`.
17
21
 
18
22
  ## Константы
19
23
 
@@ -41,7 +45,6 @@ Payloads и результаты хендлеров типизированы ч
41
45
 
42
46
  - [settings.md](./settings.md) — `SETTINGS`: `INIT`; `SETTINGS.LOGS.ENABLED`
43
47
  - [system.md](./system.md) — `SYSTEM`: `FILE_LOAD` (скачивание логов)
44
- - [vendors.md](./vendors.md) — `VENDORS`: `UID`, `CLONE` (`emitClone` для записи лога)
45
48
 
46
49
  ### Остальные
47
50
 
@@ -51,7 +51,7 @@ Payloads и результаты хендлеров типизированы ч
51
51
 
52
52
  ### plugins/core/
53
53
 
54
- - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
54
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
55
55
  - [memory.md](./memory.md) — `MEMORY`: `REG`, `GET`, `SET` (через `MEMORY_GET` / `MEMORY_SET`)
56
56
  - [platforms.md](./platforms.md) — `PLATFORMS`: `CONST`, `PARAMS.CURRENT_PLATFORM` (лимит semaphore, mediaNoTimeout)
57
57
  - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.HOST`, `DOM_IDS.MEDIA`
@@ -26,6 +26,7 @@ Payloads и результаты хендлеров типизированы ч
26
26
  - **`LINE_KEYWORDS`** — ключевые слова строки сценария: `skip-if-possible`, `async`, `autonext`. Остальные keywords живут в доменных контрактах (`TEXT.extend`, `VARS.global`, `LAYER_ANIMATION.dangerous`, `QTE.qte-fallback`).
27
27
  - **`LINE_PREFIXES.MODULE`** — `"$"`: префикс вызова модуля.
28
28
  - **`LINE_PREFIXES.BLOCK`** — `"%"`: префикс блока сценария.
29
+ - **`LOGS_ACTIONS`** — метки логов: `goto`, `goto_missing`, `exec start` / `exec end`, `reg`, `loaded start` / `loaded finish`, `load start` / `load end` / `load check` / `load finish`, `next emit start` / `next emit end`, `exec`.
29
30
 
30
31
  ## Параметры
31
32
 
@@ -58,7 +59,7 @@ Payloads и результаты хендлеров типизированы ч
58
59
 
59
60
  ### plugins/core/
60
61
 
61
- - [logs.md](./logs.md) — `LOGS`: `emitLog`
62
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
62
63
  - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload строк и меток)
63
64
  - [memory.md](./memory.md) — `MEMORY`: `REG`, `GET`, `SET` (кэш строк и меток)
64
65
  - [platforms.md](./platforms.md) — `PLATFORMS`: `PARAMS.CURRENT_PLATFORM` (глубина preload метки)
@@ -37,7 +37,7 @@ Payloads и результаты хендлеров типизированы ч
37
37
 
38
38
  ### plugins/core/
39
39
 
40
- - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
40
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
41
41
  - [storage.md](./storage.md) — `STORAGE`: `GET_ALL`, `SET` (персистентность настроек)
42
42
 
43
43
  ### Остальные
@@ -18,7 +18,7 @@ Payloads и результаты хендлеров типизированы ч
18
18
  | `EXEC_ARG` | `vne:stack:exec_arg` | По токену строки вернуть значение аргумента из верхнего frame. Payload: `{ line? }`. |
19
19
  | `PROHIBIT_REPLACE` | `vne:stack:prohibit_replace` | Цепочка `ModuleReplace`: можно ли идти на `label`. Payload: `{ label?, isProhibited? }`. Старт `isProhibited: false`. Возврат — итоговое `isProhibited`. |
20
20
  | `PROHIBIT_REPLACE_REG` | `vne:stack:prohibit_replace_reg` | Зарегистрировать обработчик `PROHIBIT_REPLACE`. `{ handler, priority? }`. Не блокирующий хендлер: `return isProhibited`; запрет: `return isProhibited \|\| ownCheck`. |
21
- | `PROHIBITED` | `vne:stack:prohibited` | Переход запрещён. Payload: `{ label?, args?, event? }` — `event` это `JUMP` / `CALL` / `EMIT`, чтобы повторить переход. `$ stack jump/call` при запрете не делает `emit SCENARIO.NEXT`. |
21
+ | `PROHIBITED` | `vne:stack:prohibited` | Переход запрещён. Payload: `{ label?, args?, event? }` — `event` это `JUMP` / `CALL` / `EMIT`, чтобы повторить переход. `$ stack jump/call` при запрете не делает `emit SCENARIO.NEXT`. |
22
22
 
23
23
  ## Константы
24
24
 
@@ -35,28 +35,27 @@ Payloads и результаты хендлеров типизированы ч
35
35
 
36
36
  ## Модули
37
37
 
38
- | Модуль | Зона ответственности |
39
- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
- | `stack` | State стека; обработка `EMIT` (`PROHIBIT_REPLACE` → переход или `PROHIBITED`); sync на `STATE.SET` / `CLEAR`. |
41
- | `stack.call` | `PROHIBIT_REPLACE`, затем push frame + `EMIT`. |
42
- | `stack.jump` | Jump без сохранения. |
43
- | `stack.pop` | Pop frame. |
44
- | `stack.clear` | Clear state + next. |
45
- | `stack.args` | Резолв аргументов из строки сценария. |
38
+ | Модуль | Зона ответственности |
39
+ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
+ | `stack` | State стека; обработка `EMIT` (`PROHIBIT_REPLACE` → переход или `PROHIBITED`); sync на `STATE.SET` / `CLEAR`. |
41
+ | `stack.call` | `PROHIBIT_REPLACE`, затем push frame + `EMIT`. |
42
+ | `stack.jump` | Jump без сохранения. |
43
+ | `stack.pop` | Pop frame. |
44
+ | `stack.clear` | Clear state + next. |
45
+ | `stack.args` | Резолв аргументов из строки сценария. |
46
46
  | `stack.exec` | Регистрация `$stack` handlers в scenario (jump/call/pop + preload). На `LINE_LOAD` jump/call — `PROHIBIT_REPLACE` до `LABEL_GET`. `onLineExec`: `emit SCENARIO.NEXT` только если jump/call не вернули `false` (запрет); `pop` — как раньше. |
47
- | `stack.replace` | Реестр обработчиков `PROHIBIT_REPLACE_REG`; наследник `@vnejs/module.replace`; `REPLACE_KEY` — `isProhibited`. |
48
- | `stack.logs` | Логирование операций стека, в т.ч. `PROHIBITED`; в `init` регистрирует хендлер `PROHIBIT_REPLACE` (пропускает флаг). |
47
+ | `stack.replace` | Реестр обработчиков `PROHIBIT_REPLACE_REG`; наследник `@vnejs/module.replace`; `REPLACE_KEY` — `isProhibited`. |
48
+ | `stack.logs` | Логирование операций стека, в т.ч. `PROHIBITED`; в `init` регистрирует хендлер `PROHIBIT_REPLACE` (пропускает флаг). |
49
49
 
50
50
  ## Близкие плагины
51
51
 
52
52
  ### plugins/core/
53
53
 
54
- - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
54
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
55
55
  - [media.md](./media.md) — `MEDIA`: `CONST.MEDIA.PRIORITIES` (preload при jump/call)
56
56
  - [memory.md](./memory.md) — `MEMORY`: `CLEAR` (при `EMIT`)
57
57
  - [scenario.md](./scenario.md) — `SCENARIO`: `LABEL_GET`, `LINE_EXEC_REG`, `LINE_LOAD_REG`; `emit SCENARIO.NEXT`
58
58
  - [state.md](./state.md) — `STATE`: `SET`, `CLEAR` (sync стека; `CLEAR` из `stack.clear`)
59
- - [vendors.md](./vendors.md) — `VENDORS`: `CLONE` (`emitClone` для args)
60
59
 
61
60
  ### Остальные
62
61
 
@@ -43,10 +43,9 @@ Payloads и результаты хендлеров типизированы ч
43
43
 
44
44
  ### plugins/core/
45
45
 
46
- - [logs.md](./logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
46
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
47
47
  - [scenario.md](./scenario.md) — `SCENARIO`: `LINES_GET`, `LABEL_GET` (миграция по hash строки)
48
48
  - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR` / `VERSION_MINOR` (проверка версии save)
49
- - [vendors.md](./vendors.md) — `VENDORS`: `HASH`, `CLONE` (`emitClone` state)
50
49
 
51
50
  ### Остальные
52
51
 
@@ -57,7 +57,7 @@ Payloads и результаты хендлеров типизированы ч
57
57
 
58
58
  ## Константы
59
59
 
60
- Нет.
60
+ - **`LOGS_ACTIONS.CHANGED`** — `"changed"`: метка лога при `CHANGED`.
61
61
 
62
62
  ## Параметры
63
63
 
@@ -83,7 +83,7 @@ Payloads и результаты хендлеров типизированы ч
83
83
 
84
84
  ### plugins/core/
85
85
 
86
- - [logs.md](./logs.md) — `LOGS`: `emitLog` (событие `CHANGED`)
86
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …) (событие `CHANGED`)
87
87
  - [system.md](./system.md) — `SYSTEM`: `CONST.SYSTEM.VERSION_MAJOR`; `FILE_LOAD`, `FILE_READ`, `RELOAD` (import/export/clear)
88
88
 
89
89
  ### Остальные
@@ -28,6 +28,7 @@ Payloads и результаты хендлеров типизированы ч
28
28
  | `DOM_IDS.APP` | `"app"` — корневой контейнер |
29
29
  | `DOM_IDS.MEDIA` | `"media"` — скрытый контейнер медиа |
30
30
  | `DOM_IDS.COMPONENTS` | `"components"` — контейнер UI |
31
+ | `LOGS_ACTIONS.RESIZE` | `"resize"` — метка лога при `RESIZE` |
31
32
 
32
33
  ## Параметры
33
34
 
@@ -50,7 +51,7 @@ Payloads и результаты хендлеров типизированы ч
50
51
 
51
52
  ### plugins/core/
52
53
 
53
- - [logs.md](./logs.md) — `LOGS`: `emitLog` (resize)
54
+ - [logs.md](./logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …) (resize)
54
55
 
55
56
  ### Остальные
56
57
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Пакет: `@vnejs/plugins.core.vendors` · namespace: `VENDORS`
4
4
 
5
- Обёртки над сторонними утилитами: clone, скриншот.
5
+ Обёртки над сторонними утилитами: скриншот.
6
6
 
7
7
  ## События
8
8
 
@@ -10,7 +10,6 @@ Payloads и результаты хендлеров типизированы ч
10
10
 
11
11
  | Ключ | Строка | Смысл |
12
12
  | -------- | -------------------- | ---------------------------------------------------------------------------------------------- |
13
- | `CLONE` | `vne:vendors:clone` | Deep clone через lodash (state, stack, args). |
14
13
  | `SCREEN` | `vne:vendors:screen` | Скриншот DOM через html2canvas → webp data URL. Payload: `{ width?, height?, quality?, id? }`. |
15
14
 
16
15
  ## Константы
@@ -29,7 +28,6 @@ Payloads и результаты хендлеров типизированы ч
29
28
 
30
29
  | Модуль | Зона ответственности |
31
30
  | ---------------- | --------------------------------------------------------------- |
32
- | `vendors` | clone. |
33
31
  | `vendors.screen` | html2canvas screenshot; на init помечает media-элементы ignore. |
34
32
 
35
33
  ## Близкие плагины
@@ -19,7 +19,7 @@ Payload `EMIT`: `{ id?, caster?, target? }`. Lifecycle (`EMIT_START` / `EMIT_FIN
19
19
 
20
20
  ## Константы
21
21
 
22
- Нет.
22
+ - **`LOGS_ACTIONS`** — `emit`, `start`, `finish`.
23
23
 
24
24
  ## Параметры
25
25
 
@@ -42,7 +42,7 @@ Payload `EMIT`: `{ id?, caster?, target? }`. Lifecycle (`EMIT_START` / `EMIT_FIN
42
42
 
43
43
  ### plugins/core/
44
44
 
45
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
45
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
46
46
 
47
47
  ### Остальные
48
48
 
@@ -21,7 +21,7 @@ Payloads и результаты хендлеров типизированы ч
21
21
 
22
22
  ## Константы
23
23
 
24
- Нет.
24
+ - **`LOGS_ACTIONS`** — метки логов: `GET`, `SAVE`, `LOAD`, `DELETE`, `PRELOAD`, `CLEAR`, `KEY` (поле value — `action`, не `type`).
25
25
 
26
26
  ## Параметры
27
27
 
@@ -52,7 +52,7 @@ Payloads и результаты хендлеров типизированы ч
52
52
 
53
53
  ### plugins/core/
54
54
 
55
- - [logs.md](../core/logs.md) — `LOGS`: emitLog, CONST.FILTER_FROM_RESULT_OPTIONS
55
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), CONST.FILTER_FROM_RESULT_OPTIONS
56
56
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
57
57
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.LOAD, EVENTS.PRELOAD, EVENTS.MIGRATE, EVENTS.GET
58
58
  - [storage.md](../core/storage.md) — `STORAGE`: EVENTS.GET, EVENTS.SET, EVENTS.RM_ALL, EVENTS.RM
@@ -41,7 +41,7 @@ Payloads и результаты хендлеров типизированы ч
41
41
  | Модуль | Зона ответственности |
42
42
  | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
43
43
  | `autoread` | `SETTINGS.INIT` в `setup`. `SETTINGS.CHANGED` для `ENABLED` эмитит `PUSH` / `POP`. |
44
- | `autoread.logs` | Логи всех событий `AUTOREAD` через `emitLog`. `PUSH` / `POP` пишут `source`. |
44
+ | `autoread.logs` | Логи всех событий `AUTOREAD` через `EVENTS.LOGS.EMIT`. `PUSH` / `POP` пишут `source`. |
45
45
  | `autoread.sources` | В `postinject` — `shared.autoreadDisableSources`. `PUSH` / `POP`. На `STATE.SET` очищает набор. |
46
46
  | `autoread.emit` | `EMIT`: если включено и нет блокировок — `INTERACT.EMIT` по `vne-autoread-allow`, иначе `TIMEOUT_CREATE`. |
47
47
  | `autoread.timeout` | `TIMEOUT_CREATE` / `TIMEOUT_CLEAR`. Таймер на `SETTINGS.AUTOREAD.DELAY`, по нему `EMIT`. `STATE.CLEAR` → `TIMEOUT_CLEAR`. `STATE.SET` → `TIMEOUT_CLEAR`, затем `TIMEOUT_CREATE`. |
@@ -51,7 +51,7 @@ Payloads и результаты хендлеров типизированы ч
51
51
  ### plugins/core/
52
52
 
53
53
  - [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT
54
- - [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
54
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
55
55
  - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
56
56
  - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
57
57
 
@@ -10,7 +10,7 @@
10
10
  | --------------------- | --------------------------------------------------------------------------------------------------------------------------- |
11
11
  | `% choose` | Открыть выбор: собрать `% choose.option`, emit `EMIT`. Если все опции `hided` (или список пуст) — `SKIP` и переход за блок. |
12
12
  | `% choose.option "…"` | Ветка опции; при проходе мимо невыбранной — skip тела по indent. |
13
- | `$ choose repeat` | Вернуться к ближайшему `% choose` **выше** текущей строки в том же label и `emit SCENARIO.NEXT`. |
13
+ | `$ choose repeat` | Вернуться к ближайшему `% choose` **выше** текущей строки в том же label и `emit SCENARIO.NEXT`. |
14
14
 
15
15
  Пример цикла «осмотреть → вернуться в меню»:
16
16
 
@@ -28,19 +28,19 @@
28
28
 
29
29
  Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.scenario.choose`.
30
30
 
31
- | Ключ | Строка | Смысл |
32
- | -------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
33
- | `EMIT` | `vne:choose:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
31
+ | Ключ | Строка | Смысл |
32
+ | -------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | `EMIT` | `vne:choose:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
34
34
  | `OPTION` | `vne:choose:option` | Принять выбор по UI-индексу: прогнать `OPTION_BEFORE`, затем `HIDE`, `OPTION_REPLACE`, установить `curLine`, сброс state, `emit SCENARIO.NEXT`. |
35
- | `OPTION_BEFORE` | `vne:choose:option_before` | Side effects до применения выбора (подписки с `priority` на Observer). |
36
- | `OPTION_REPLACE` | `vne:choose:option_replace` | Подменить UI-индекс принятой опции (цепочка handlers перед переходом по ветке). |
37
- | `OPTION_REPLACE_REG` | `vne:choose:option_replace_reg` | Зарегистрировать обработчик `OPTION_REPLACE`. |
35
+ | `OPTION_BEFORE` | `vne:choose:option_before` | Side effects до применения выбора (подписки с `priority` на Observer). |
36
+ | `OPTION_REPLACE` | `vne:choose:option_replace` | Подменить UI-индекс принятой опции (цепочка handlers перед переходом по ветке). |
37
+ | `OPTION_REPLACE_REG` | `vne:choose:option_replace_reg` | Зарегистрировать обработчик `OPTION_REPLACE`. |
38
38
  | `SKIP` | `vne:choose:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% choose`, `emit SCENARIO.NEXT`. |
39
- | `SHOW` | `vne:choose:show` | Выбор активен (state готов). Слушает view-плагин. |
40
- | `HIDE` | `vne:choose:hide` | Выбор закрыт. Слушает view-плагин. |
41
- | `EXEC_REG` | `vne:choose:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
42
- | `EXEC_GET` | `vne:choose:exec_get` | Получить значение через зарегистрированный exec-обработчик. |
43
- | `STATE_UPDATE` | `vne:choose:state_update` | Обновить накопленное состояние модуля `choose`. |
39
+ | `SHOW` | `vne:choose:show` | Выбор активен (state готов). Слушает view-плагин. |
40
+ | `HIDE` | `vne:choose:hide` | Выбор закрыт. Слушает view-плагин. |
41
+ | `EXEC_REG` | `vne:choose:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
42
+ | `EXEC_GET` | `vne:choose:exec_get` | Получить значение через зарегистрированный exec-обработчик. |
43
+ | `STATE_UPDATE` | `vne:choose:state_update` | Обновить накопленное состояние модуля `choose`. |
44
44
 
45
45
  ## Константы
46
46
 
@@ -96,10 +96,9 @@ Payloads и результаты хендлеров типизированы ч
96
96
 
97
97
  ### plugins/core/
98
98
 
99
- - [logs.md](../core/logs.md) — `LOGS`: emitLog, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
99
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
100
100
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
101
101
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
102
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
103
102
 
104
103
  ### Остальные
105
104
 
@@ -65,7 +65,7 @@ Payloads и результаты хендлеров типизированы ч
65
65
 
66
66
  ### plugins/core/
67
67
 
68
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
68
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
69
69
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.REG, EVENTS.SET, EVENTS.KEYS, EVENTS.GET
70
70
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.LABEL_GET
71
71
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR, EVENTS.GET, EVENTS.LOAD
@@ -34,7 +34,7 @@ Payloads и результаты хендлеров типизированы ч
34
34
  | ---------------- | --------------------------------------------------------------------------------------- |
35
35
  | `pause` | `START` ждёт `END`: клик (`INTERACT`) или таймер `time`. |
36
36
  | `pause.emit` | В `postinject` — `shared.pauseDisableSources`. `EMIT` → `START`, если набор пуст. |
37
- | `pause.logs` | Логи `EMIT` / `START` / `END` через `emitLog`. `EMIT` пишет `time`. |
37
+ | `pause.logs` | Логи `EMIT` / `START` / `END` через `EVENTS.LOGS.EMIT`. `EMIT` пишет `time`. |
38
38
  | `pause.scenario` | `LINE_EXEC_REG` для `$ pause` в `init`. Парсит `time`, эмитит `EMIT`, затем `emit SCENARIO.NEXT`. |
39
39
 
40
40
  ## Близкие плагины
@@ -42,7 +42,7 @@ Payloads и результаты хендлеров типизированы ч
42
42
  ### plugins/core/
43
43
 
44
44
  - [interact.md](../core/interact.md) — `INTERACT`: EVENTS.POP, EVENTS.PUSH
45
- - [logs.md](../core/logs.md) — `LOGS`: `emitLog`, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
45
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
46
46
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
47
47
 
48
48
  ### Остальные
@@ -10,7 +10,7 @@
10
10
  | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
11
11
  | `% point-and-click` | Открыть point-and-click: собрать `% point-and-click.option`, emit `EMIT`. Если все опции `hided` (или список пуст) — `SKIP` и переход за блок. |
12
12
  | `% point-and-click.option {icon} {iconHover} x y` | Hotspot; при проходе мимо невыбранного — skip тела по indent. Опционально args `imgWidth` / `imgHeight` (px canvas). |
13
- | `$ point-and-click repeat` | Вернуться к ближайшему `% point-and-click` **выше** текущей строки в том же label и `emit SCENARIO.NEXT`. |
13
+ | `$ point-and-click repeat` | Вернуться к ближайшему `% point-and-click` **выше** текущей строки в том же label и `emit SCENARIO.NEXT`. |
14
14
 
15
15
  Пример цикла осмотра:
16
16
 
@@ -30,16 +30,16 @@
30
30
 
31
31
  Payloads и результаты хендлеров типизированы через module augmentation контракта (`VneEventPayloadMap` / `VneEventResultMap`); типы — в `@vnejs/contracts.scenario.point_and_click`.
32
32
 
33
- | Ключ | Строка | Смысл |
34
- | -------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------ |
35
- | `EMIT` | `vne:point_and_click:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
33
+ | Ключ | Строка | Смысл |
34
+ | -------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------- |
35
+ | `EMIT` | `vne:point_and_click:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
36
36
  | `OPTION` | `vne:point_and_click:option` | Выбор hotspot: `HIDE`, `curLine` внутрь опции, сброс state через `STATE_UPDATE`, `emit SCENARIO.NEXT`. |
37
37
  | `SKIP` | `vne:point_and_click:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% point-and-click`, `emit SCENARIO.NEXT`. |
38
- | `SHOW` | `vne:point_and_click:show` | Выбор активен (state готов). Слушает view-плагин. |
39
- | `HIDE` | `vne:point_and_click:hide` | Выбор закрыт. Слушает view-плагин. |
40
- | `EXEC_REG` | `vne:point_and_click:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
41
- | `EXEC_GET` | `vne:point_and_click:exec_get` | Получить значение через зарегистрированный exec-обработчик (например `hided:` / `disabled:`). |
42
- | `STATE_UPDATE` | `vne:point_and_click:state_update` | Обновить накопленное состояние модуля `point_and_click`. |
38
+ | `SHOW` | `vne:point_and_click:show` | Выбор активен (state готов). Слушает view-плагин. |
39
+ | `HIDE` | `vne:point_and_click:hide` | Выбор закрыт. Слушает view-плагин. |
40
+ | `EXEC_REG` | `vne:point_and_click:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
41
+ | `EXEC_GET` | `vne:point_and_click:exec_get` | Получить значение через зарегистрированный exec-обработчик (например `hided:` / `disabled:`). |
42
+ | `STATE_UPDATE` | `vne:point_and_click:state_update` | Обновить накопленное состояние модуля `point_and_click`. |
43
43
 
44
44
  ## Константы
45
45
 
@@ -88,10 +88,9 @@ Payloads и результаты хендлеров типизированы ч
88
88
 
89
89
  ### plugins/core/
90
90
 
91
- - [logs.md](../core/logs.md) — `LOGS`: emitLog, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
91
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
92
92
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
93
93
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
94
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
95
94
 
96
95
  ### Остальные
97
96
 
@@ -50,7 +50,7 @@ View сам переводит проценты в геометрию (град
50
50
  | -------------- | --------------------------------------------------------------------------------------------------------------------- |
51
51
  | `qte` | EMIT → `OPENED`; в `postinject` и на `EMIT` пишет `shared.qteScenarioSkip`. |
52
52
  | `qte.result` | RESULT → `CLOSED`; без skip — `applyResult` (success → `curLine + 1`, fail → `getBlockSkipShift`) и `emit SCENARIO.NEXT`. |
53
- | `qte.logs` | Логи `EMIT` / `RESULT` через `emitLog`; `skipScenario` из `shared.qteScenarioSkip`. |
53
+ | `qte.logs` | Логи `EMIT` / `RESULT` через `EVENTS.LOGS.EMIT`; `skipScenario` из `shared.qteScenarioSkip`. |
54
54
  | `qte.scenario` | Регистрация `% qte` в SCENARIO; lookup `ITEMS`; при отсутствии id/item — log `MISSING` и `RESULT { success: false }`. |
55
55
 
56
56
  ## Сценарий
@@ -76,7 +76,7 @@ View сам переводит проценты в геометрию (град
76
76
 
77
77
  Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.qte`
78
78
 
79
- На `CHOOSE.OPTION_REPLACE`: если у опции `qte: <id>`, запускает QTE с `skipScenario: true`. Success — тот же индекс опции; fail — индекс опции, у которой в `keywords` есть `LINE_KEYWORDS.QTE_FALLBACK` (`qte-fallback`; если нет — исходный индекс + `emitLog`).
79
+ На `CHOOSE.OPTION_REPLACE`: если у опции `qte: <id>`, запускает QTE с `skipScenario: true`. Success — тот же индекс опции; fail — индекс опции, у которой в `keywords` есть `LINE_KEYWORDS.QTE_FALLBACK` (`qte-fallback`; если нет — исходный индекс + `EVENTS.LOGS.EMIT`).
80
80
 
81
81
  Расширяет тип `ChooseOption` полем `qte?: string`. Keyword `| qte-fallback` попадает в `ChooseOption.keywords` через choose.
82
82
 
@@ -95,7 +95,7 @@ View сам переводит проценты в геометрию (град
95
95
 
96
96
  ### plugins/core/
97
97
 
98
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
98
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
99
99
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
100
100
 
101
101
  ### Остальные
@@ -10,7 +10,7 @@
10
10
 
11
11
  ## Константы
12
12
 
13
- Нет.
13
+ - **`LOGS_ACTIONS.OPTION`** — `"option"`: метка лога при выборе ветки.
14
14
 
15
15
  ## Параметры
16
16
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  ### plugins/core/
32
32
 
33
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
33
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
34
34
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
35
35
 
36
36
  ### Остальные
@@ -10,7 +10,7 @@
10
10
 
11
11
  ## Константы
12
12
 
13
- Нет.
13
+ - **`LOGS_ACTIONS.SET`** — `"set"`: метка лога при смене ratio.
14
14
 
15
15
  ## Параметры
16
16
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  ### plugins/core/
34
34
 
35
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
35
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
36
36
  - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
37
37
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED, CONST.DOM_IDS.APP
38
38
 
@@ -14,7 +14,7 @@ Payloads и результаты хендлеров типизированы ч
14
14
 
15
15
  ## Константы
16
16
 
17
- Нет.
17
+ - **`LOGS_ACTIONS.MEET`** — `"meet"`: метка лога при `MEET`.
18
18
 
19
19
  ## Параметры
20
20
 
@@ -34,7 +34,7 @@ Payloads и результаты хендлеров типизированы ч
34
34
 
35
35
  ### plugins/core/
36
36
 
37
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
37
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
38
38
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
39
39
 
40
40
  ### Остальные
@@ -48,19 +48,19 @@ Payloads и результаты хендлеров типизированы ч
48
48
 
49
49
  ## Модули
50
50
 
51
- | Модуль | Зона ответственности |
52
- | ---------------------- | ----------------------------------------------------------------------------- |
53
- | `text.emit.end` | Завершение emit и переход к next или финальному state. |
54
- | `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `onTextEmitNext` → `emit SCENARIO.NEXT` (`priority` 999999). |
55
- | `text.emit` | Точка входа emit: подготовка и запуск process. |
56
- | `text.exec` | Подмодуль `exec` плагина. |
57
- | `text.prepare.tokens` | Токенизация текста перед отображением. |
58
- | `text.process.state` | В `postinject` — `shared.textProcessSkipSources`; PROCESS_STATE, SET, CLEAR. |
59
- | `text.process.enabled` | Подмодуль `process.enabled` плагина. |
60
- | `text.recalc` | Пересчёт производного состояния текста. |
61
- | `text.replace` | Реестр обработчиков REPLACE_REG. |
62
- | `text.speaker` | SPEAKER_INFO_UPDATE, CLEAR, SET; на `EMIT_BEFORE` (`priority` 100) — speaker. |
63
- | `text` | Обрабатывает STATE_UPDATE, STATE_CHANGED, CLEAR, SET. |
51
+ | Модуль | Зона ответственности |
52
+ | ---------------------- | -------------------------------------------------------------------------------------------------------- |
53
+ | `text.emit.end` | Завершение emit и переход к next или финальному state. |
54
+ | `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `onTextEmitNext` → `emit SCENARIO.NEXT` (`priority` 999999). |
55
+ | `text.emit` | Точка входа emit: подготовка и запуск process. |
56
+ | `text.exec` | Подмодуль `exec` плагина. |
57
+ | `text.prepare.tokens` | Токенизация текста перед отображением. |
58
+ | `text.process.state` | В `postinject` — `shared.textProcessSkipSources`; PROCESS_STATE, SET, CLEAR. |
59
+ | `text.process.enabled` | Подмодуль `process.enabled` плагина. |
60
+ | `text.recalc` | Пересчёт производного состояния текста. |
61
+ | `text.replace` | Реестр обработчиков REPLACE_REG. |
62
+ | `text.speaker` | SPEAKER_INFO_UPDATE, CLEAR, SET; на `EMIT_BEFORE` (`priority` 100) — speaker. |
63
+ | `text` | Обрабатывает STATE_UPDATE, STATE_CHANGED, CLEAR, SET. |
64
64
 
65
65
  ## Compatibility
66
66
 
@@ -84,7 +84,6 @@ Payloads и результаты хендлеров типизированы ч
84
84
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, CONST.OTHER_MODULE, CONST.LINE_KEYWORDS.AUTONEXT
85
85
  - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
86
86
  - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
87
- - [vendors.md](../core/vendors.md) — `VENDORS`: EVENTS.UID, emitClone
88
87
 
89
88
  ### Остальные
90
89
 
@@ -37,7 +37,6 @@ Payloads и результаты хендлеров типизированы ч
37
37
 
38
38
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
39
39
  - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
40
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
41
40
 
42
41
  ### Остальные
43
42
 
@@ -56,7 +56,7 @@ Payloads и результаты хендлеров типизированы ч
56
56
 
57
57
  ### plugins/core/
58
58
 
59
- - [logs.md](../core/logs.md) — `LOGS`: emitLog, CONST.FILTER_FROM_RESULT_OPTIONS
59
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …), CONST.FILTER_FROM_RESULT_OPTIONS
60
60
  - [media.md](../core/media.md) — `MEDIA`: CONST.PRIORITIES.BACKGROUND
61
61
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, EVENTS.LINE_LOAD_REG, CONST.LINE_KEYWORDS.SKIP_IF_POSSIBLE
62
62
  - [storage.md](../core/storage.md) — `STORAGE`: EVENTS.RM_ALL, EVENTS.GET, EVENTS.SET
@@ -4,7 +4,7 @@
4
4
 
5
5
  Отображает кастомный курсор с загрузкой иконок default/pointer.
6
6
 
7
- Интерактивные элементы игрового UI задают тип курсора атрибутом `vne-cursor-type` на DOM-узле (`"pointer"` или пусто), а не через CSS `cursor`. Компонент курсора читает стек через `elementsFromPoint`, синхронизирует `vne-cursor-target` только у изменившихся узлов и переключает иконку default/pointer. Исключение: у Range input остаётся `cursor: inherit`, чтобы браузерный курсор `<input type="range">` уходил в `none`.
7
+ Интерактивные элементы игрового UI задают тип курсора атрибутом `vne-cursor-type` на DOM-узле (`"pointer"` или пусто), а не через CSS `cursor`. Вместе с непустым типом на том же узле стоит `vne-cursor-target-possible`. Компонент курсора читает стек через `elementsFromPoint`, ставит `vne-cursor-target` только на узлы с `vne-cursor-target-possible` (и только если набор таких узлов изменился) и переключает иконку default/pointer по непустому `vne-cursor-type` во всём стеке. Исключение: у Range input остаётся `cursor: inherit`, чтобы браузерный курсор `<input type="range">` уходил в `none`.
8
8
 
9
9
  ## События
10
10
 
@@ -76,7 +76,6 @@ sequenceDiagram
76
76
 
77
77
  ### plugins/core/
78
78
 
79
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
80
79
  - [state.md](../core/state.md) — restore через `CHOOSE` + bridge
81
80
 
82
81
  ### Остальные
@@ -78,7 +78,6 @@ sequenceDiagram
78
78
 
79
79
  ### plugins/core/
80
80
 
81
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
82
81
  - [state.md](../core/state.md) — restore через `POINT_AND_CLICK` + bridge
83
82
 
84
83
  ### Остальные
@@ -99,7 +99,7 @@ sequenceDiagram
99
99
 
100
100
  ### plugins/core/
101
101
 
102
- - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone (через ModuleController)
102
+ — нет
103
103
 
104
104
  ### Остальные
105
105
 
@@ -17,7 +17,8 @@ Payloads и результаты хендлеров типизированы ч
17
17
 
18
18
  ## Константы
19
19
 
20
- Нет.
20
+ - **`EXEC_ACTIONS.SHOW`** — `"show"`: действие сценарной команды.
21
+ - **`LOGS_ACTIONS.SHOW` / `ACCEPT`** — метки логов при показе и принятии.
21
22
 
22
23
  ## Параметры
23
24
 
@@ -62,7 +63,7 @@ $ disclaimer show qte
62
63
 
63
64
  ### plugins/core/
64
65
 
65
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
66
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
66
67
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG
67
68
 
68
69
  ### Остальные
@@ -52,7 +52,7 @@ Payloads и результаты хендлеров типизированы ч
52
52
 
53
53
  ### plugins/core/
54
54
 
55
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
55
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
56
56
 
57
57
  ### Остальные
58
58
 
@@ -22,7 +22,7 @@ Payloads и результаты хендлеров типизированы ч
22
22
 
23
23
  ## Константы
24
24
 
25
- Нет.
25
+ - **`LOGS_ACTIONS`** — `click`, `interact`, `skip`.
26
26
 
27
27
  ## Параметры
28
28
 
@@ -47,7 +47,7 @@ Payloads и результаты хендлеров типизированы ч
47
47
 
48
48
  ### plugins/core/
49
49
 
50
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
50
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
51
51
  - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.NEXT, EVENTS.LINE_EXEC_REG, CONST.LINE_KEYWORDS.SKIP_IF_POSSIBLE
52
52
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
53
53
 
@@ -20,7 +20,7 @@ Payloads и результаты хендлеров типизированы ч
20
20
 
21
21
  ## Константы
22
22
 
23
- Нет.
23
+ - **`LOGS_ACTIONS`** — `start`, `finish`.
24
24
 
25
25
  ## Параметры
26
26
 
@@ -45,7 +45,7 @@ Payloads и результаты хендлеров типизированы ч
45
45
 
46
46
  ### plugins/core/
47
47
 
48
- - [logs.md](../core/logs.md) — `LOGS`: emitLog
48
+ - [logs.md](../core/logs.md) — `LOGS`: `EVENTS.LOGS.EMIT` (`action`, …)
49
49
  - [memory.md](../core/memory.md) — `MEMORY`: EVENTS.CLEARED
50
50
  - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
51
51