Пульт управления Beast — руководство для оператора
Документ описывает интерфейс «Существо Beast, пульт связи» в index.html: назначение зон экрана, индикацию состояния, вывод сообщений и все элементы управления стимулами. Поведение привязано к коду в beast/ (см. также manuals/Mad_programmer_manual.md).
Введение: что такое Beast и как он «живёт»
Beast — браузерная модель существа с дискретным временем пульса (≈1 с): каждый пульс обновляются виталы (- жизненные параметры гомеостаза, см. теорию: fornit.ru/71218), базовые контексты поведения, дерево восприятия, диспетчер циклов осмысления (ФО), эпизодическая и семантическая память, рефлексы и автоматизмы.
- Жизнь измеряется счётчиком пульсов
Cur_puls_val(сохраняется вlocalStorageи может входить в файл памяти). - Развитие — это накопление опыта: образцы семантики по стимулам, ветки дерева восприятия, эпизоды, абстракции, моторные и ментальные автоматизмы, цели, гештальты; с ростом опыта меняется готовность к ориентировочному рефлексу (ОР), работа уровней сознания (2–4) и доступность сценариев (игра, обучение, сон, сновидения).
Пульт — это канал связи оператора с моделью: вы задаёте стимулы и режимы, читаете виталы, контексты, инфокартину и логи циклов, сохраняете и загружаете память.
1. Назначение и возможности пульта
Назначение
- Задать внешнюю ситуацию через мотивирующие, позитивные, негативные и нейтральные стимулы (в том числе режимы «Играть» / «Учить»).
- Наблюдать соматическое состояние (виталы), эмоционально-контекстное (базовые контексты, Плохо/Норма/Хорошо), когнитивный контекст (дерево восприятия, инфокартина, активность Beast).
- Управлять удержанием базового состояния (B / W), измерять diff значимости, включать сон с ограничением стимулов.
- Работать с памятью: сохранение/загрузка JSON на диск (пульс, виталы, семантика, дерево, эпизоды, рефлексы и др. — реестр
BEAST.persistentModulesвbeast/date/saving_ui.js). - Для отладки и обучения: кнопки сброса условных рефлексов и семантики (Ух, Sx - справа от строки "Активность Beast"), кнопка Тест для прерывания осмысления (Тест), режим тестирования эпизодической памяти (кнопка т), просмотр модели понимания стимула (i на кнопке).
В режиме сна кликабельны только заранее некоторые ("сторожевые") стимулы (см. раздел про сон).
2. Как индицируется состояние и другие показатели
2.1. Верхняя строка
| Элемент | Смысл |
|---|---|
| Зелёный кружок + число | Пульс жизни: мигающий круг (pulseCircle) и счётчик pulseCounter = число пульсов. |
Синяя точка у «Сохранить» (saveIndicator) |
Идёт запись в IndexedDB и/или на диск; кратковременное отображение (не менее ~300 ms). |
| Сохранить / Загрузить | Экспорт/импорт памяти в выбранную папку (File System Access API). |
2.2. Жизненные параметры (виталы)
- Ряд индикаторов 0–100%: цвет от светло-зелёного (0) к красному (100).
- Подписи: краткое name и развёрнутый title во всплывающей подсказке.
- Щелчок по виталу — диалог задать value и shift (скорость дрейфа за пульс).
- Кнопка × у заголовка — сброс виталов к умолчаниям (с подтверждением).
Имена виталов (Id 1–10): Раны, Удушье, Жажда, Жара, Холод, Голод, Стресс, Гон, Общение, Интерес (см. beast/_1_Genetic_vitals/vitals.js).
2.3. Базовые контексты поведения
- Заголовок: «Состояние базовых контекстов поведения» + подпись Плохо / Норма / Хорошо + текст «стало лучше/хуже на …» по
DiffZnacher. - Индикаторы — прямоугольники с именем контекста: неактивные серые, активные — светло-зелёные со свечением.
- Рамка блока: при Плохо — розовая, при Хорошо — зелёная; при удержании контекстов (жёлтый фон) — счётчик пульсов по центру экрана сверху и жёлтый фон заголовка/ряда.
- Кнопки (справа в заголовке): Сон, B (удержание Плохо), W (удержание Хорошо), diff — см. разделы 4 и 6.
- Счётчик над B/W: оставшиеся пульсы удержания Плохо или Хорошо.
2.4. Полоса ожидания ответа
Тонкая синяя полоса (epWaitingProgressFill в epWaitingProgressWrap) появляется как прогресс периода ожидания ответа оператора после эпизодического кадра (response_waiting_period). Подсказка у обёртки в title.
2.5. Блок активной ветки дерева восприятия
- Текст ветки (
perceptionTreeActiveBranchText), кнопка т — режим тестирования формирования эпизодической памяти (подсветка активного состояния). - Строка эпизодов (
perceptionTreeEpisodesLine), кнопка ✕ — очистка всей эпизодической памяти (показывается не всегда — по логике UI). epTotalCountLabel— суммарный счётчик эпизодов (если заполняется кодом).- 📋 — копирование содержимого блока в буфер обмена.
2.6. Активность Beast
Серый блок с текстом текущей активности (многострочный). Справа: 📋 (копировать), Ух (сброс всех условных рефлексов), Sx (сброс всей семантической памяти). Рамка блока согласована с Плохо/Хорошо у строки контекстов.
2.7. Информационная картина (расширенная строка)
Под заголовком «Информационная картина»:
- Синяя лампочка (
infoThinkingIndicator) — кратковременно (≈0,5 с) при событиях осмысления (Info_thinkingFlash). - Главный цикл ID — идентификатор текущего главного цикла сознания.
- Чисто фоновых процессов — число фоновых циклов.
- очередь прерываний — длина LIFO очереди прерванных главных циклов.
- Кликабельные счётчики: фон: — список фоновых циклов; авто: / м-авто: / абстр: / цели: / ситуации: — с уточняющими диалогами; у первых четырёх с × — очистка соответствующих структур (моторные/ментальные автоматизмы, абстракции, цели жизненного опыта, образы ситуаций).
- гешт: — гештальты; фант: — сюжет фантазма (детализация по клику).
2.8. Таблица ячеек инфокартины
Ячейки с подписью; жёлтый фон (info-cell-active) — значимое/активное значение. Щелчок открывает детализацию (Info_showDetail(...)): режим, тема, ситуация, сюжет фантазма, проблема, шаг, стимул, Base, эмоция, активность, а также детекторы (критический витал, важная проблема, реагирование по правилу, шок, резкое ухудшение, игра, обучение, негативные эффекты автоматизмов, «плохо», стимул с пульта, поиск, учитель, игнор оператора, неудовлетворённость, непонимание, сомнение, защита, страх, агрессия, важный объект, настроение, новизна, семантика, трудная проблема, эффекты действий, ожидание ответа, серии без эффекта, полезность автоматизма, найденный автоматизм и т.д.).
См. структуру InfoPicture в beast/_9_Conscience/informing.js.
3. Как выводятся сообщения
3.1. Статические (в интерфейсе страницы)
- Текст в «Активность Beast», обновляемый логикой сознания и вспомогательных модулей.
- Подписи, счётчики, title у кнопок и ячеек (всплывающие подсказки браузера).
- Информационная картина и её ячейки — постоянное отражение
InfoPictureпослеInfo_updateView().
3.2. Всплывающие (модальные диалоги)
Модуль beast/sys/alerts/alerts.js:
| Функция | Назначение |
|---|---|
show_alert(message, timeShow, options) |
HTML-сообщение; timeShow > 0 — авто закрытие через N ms; timeShow === 0 — кнопка «Закрыть». |
show_confirm(message, callback) |
Да / Нет → callback('OK' | 'NO'). |
show_prompt(message, callback) |
Ввод текста → callback(value). |
close_alert() |
Закрыть активный диалог. |
Особый тип dialogType: 'cyclelog' — окно лога главного цикла (последние строки debugLog), обновляется по мере записи; закрытие пользователем помечает лог как подавленный для этого цикла. Не перекрывает другие модалки произвольного типа.
Дополнительные примеры содержимого алертов:
- Щелчок по Плохо/Норма/Хорошо в заголовке контекстов —
DiffZnacher, интергальная значимость. - diff — старое/новое значение и приведённая разница.
- i на кноке стимулов — модель понимания (семантика): сводка или кадр по клику на числа z.
4. Все види кнопок и стимулов
Ниже — поведение по коду (stimuls.js, stimuls_ui.js, genetic_reflexes.js, genetic_reflexes_engine.js, sleep_mode.js).
4.1. Общие правила строк стимулов
- У каждой строки заголовок и кнопка × у заголовка: сброс всех активных стимулов этой строки.
- Двойной щелчок по любой кнопке стимула (любой строки) — сброс всех стимулов всех четырёх рядов (
clearAllStimuli), кроме режима сна (в сне блокируется). - Активная кнопка: более насыщенный фон и цветное свечение (
box-shadow). - Готовность к ОР: рамка 2px и подсказка «Участвует в ориентировочном рефлексе», если для связанного
FinalImageчисло оставшихся активаций до порога = 0; иначе показывается число оставшихся активаций (или «неизвестно» на ранних пульсах). - При запуске ОР/ФО на кнопке — краткая вспышка свечения сверху/снизу на один пульс.
- Режим сна: неразрешённые кнопки полупрозрачны и не кликаются; разрешённые подсвечены outline. Разрешённые пары: мотивация Наказание (Id 8); негативные Вопль (8), Сирена (10), Рычание (13), Огонь (20). Первый клик по разрешённому стимулу выводит из сна, затем обрабатывается как обычно.
4.2. Глобальные идентификаторы стимулов
Чтобы не путать одинаковые номера в разных массивах, в памяти используются глобальные Id: type * 1000 + localId, где type: 1 — мотивация, 2 — позитив, 3 — негатив, 4 — нейтраль (stimulus_global_id.js).
4.3. Мотивирующие стимулы (stimulsRow)
Поле bg в данных: 1 — розовый базовый фон, 2 — белый/нейтральный, 3 — светло-зелёный. Каждая запись связана с vitalID и величиной shift в данных (для длительного воздействия через движок рефлексов — см. genetic_reflexes_engine.js).
| Id | Имя | vitalID | shift (в таблице) | Примечание |
|---|---|---|---|---|
| 1 | Еда | 6 | 0 | Эффекты при активации: стресс −20, SetWellForHolding; сброс кэша автоматизмов по веткам при активации с Едой/Водой. |
| 2 | Вода | 3 | 0 | Аналогично Еде. |
| 3 | Тепло | 4 | −1 | |
| 4 | Холод | 5 | −1 | |
| 5 | Воздух | 2 | −2 | |
| 6 | Лечение | 1 | −0.5 | |
| 7 | Поощрение | 7 | 0 | Сильное снижение стресса + удержание Хорошо. |
| 8 | Наказание | 7 | 0 | Рост стресса + удержание Плохо. |
| 9 | Приятно | 7 | 0 | Стресс −30 + в таблице эффектов также указан vitalID 17 (если витал не существует в массиве, дельта может не применяться). |
| 10 | Неприятно | 7 | 0 | Стресс +30. |
| 11 | Успокоить | 7 | 0 | |
| 12 | Понятно | 7 | 0 | |
| 13 | Непонятно | 7 | 0 | |
| 14 | Простить | 7 | 0 | |
| 15 | Смех | 7 | 0 | |
| 16 | Радость | 7 | 0 | |
| 17 | Краш | 8 | 2 | |
| 18 | Игнорировать | 7 | 0 | |
| 19 | Играть | 11 | 0 | Не через ActiveMotivationStimuls: переключает isGameMode, взаимоисключает Учить; при включении — эффект 103. |
| 20 | Учить | 12 | 0 | isAuthoritarianEducation, взаимоисключает Играть; эффект 104. |
При активации мотивирующего стимула (кроме переключения Играть/Учить) вызываются разовые эффекты из StimulMotivarion_EffectsToBContexts (дельты виталов 1–10, коды 101–104: удержание Хорошо/Плохо, игровой/учебный режим).
4.4. Позитивные стимулы (stimulsRowPositiv)
Фон: светло-зелёный; активные — усиленное зелёное свечение. При активации подмешиваются контексты по StimulPositiv_EffectsToBContexts (числа 1–20 — id базовых контекстов на период удержания; 101–104 — как у мотивации).
| Id | Имя |
|---|---|
| 1 | Улыбка |
| 2 | Ребенок |
| 3 | Щенок |
| 4 | Цветок |
| 5 | Солнце |
| 6 | Бабочка |
| 7 | Ягода |
| 8 | Колокольчик |
| 9 | Смех |
| 10 | Пение |
| 11 | Мелодия |
| 12 | Шелест |
| 13 | Мурлыкание |
| 14 | Сладость |
| 15 | Аромат |
| 16 | Тепло |
| 17 | Ветерок |
| 18 | Прохлада |
| 19 | Прикосновение |
| 20 | Ласка |
4.5. Негативные стимулы (stimulsRowNegative)
Фон: розовый; активные — усиленное розовое свечение. Контексты: StimulNegative_EffectsToBContexts (в т.ч. 102 = SetBadForHolding для отдельных кнопок).
| Id | Имя |
|---|---|
| 1 | Злоба |
| 2 | Кровь |
| 3 | Разруха |
| 4 | Паук |
| 5 | Змея |
| 6 | Гриб |
| 7 | Гниль |
| 8 | Вопль |
| 9 | Стон |
| 10 | Сирена |
| 11 | Писк |
| 12 | Скрип |
| 13 | Рычание |
| 14 | Осколки |
| 15 | Молния |
| 16 | Кинжал |
| 17 | Горечь |
| 18 | Кислятина |
| 19 | Вонь |
| 20 | Огонь |
Кнопка «Тест» (красная, после ряда): вызывает runTestNegativeInterrupt() — жёсткий тест прерывания цикла осмысления максимально негативной значимостью; в сне не работает.
4.6. Нейтральные стимулы (stimulsRowNeutral)
Серый фон; при активации не вызывают StimulPositiv/Negative_EffectsToBContexts (только накопление активного набора в ActiveNeutralStimuls для образа и ОР).
| Id | Имя |
|---|---|
| 1–9 | Коричневое … Белое (цвета) |
| 10–18 | Круг … Треугольник (формы) |
| 19–23 | звуковые |
| 24–31 | остальные |
4.7. Значок «i» на стимулах
Маленькая i в углу кнопки: открывает диалог с моделью понимания стимула (семантические кадры, z, число эпизодов); клик по числам z открывает детализацию кадра.
4.8. Прочие кнопки интерфейса (не строки стимулов)
| Кнопка | Действие |
|---|---|
| Сон | Переключение SleepMode_toggle; фон страницы серый; контекст только «Сон» (id 15); авто-вход возможен при большом числе «финовых» циклов (ConsciousnessFinCyclesTotal > 100). |
| B | SetBadForHolding — удержание Плохо; перевод инфокартины в целевой режим и вспышка «лампочки» мысли. |
| W | SetWellForHolding — удержание Хорошо. |
| diff | getDiffImportance() и показ разниц в алерте. |
| Сохранить / Загрузить | См. §2.1. |
5. Как развитие отражается на интерфейсе
- Новые стимулы — "ручное" добавление новых записей в
StimulMotivarion/StimulPositiv/StimulNegative/StimulNeutralи при необходимости строк вStimul* _EffectsToBContexts/StimulMotivarion_EffectsToBContexts; UI пересобирается при загрузке (stimuls_ui.js). - Готовность к ОР — по мере накопления семантики у кнопок меняются рамка и подсказки; после первого цикла начинает показываться лог главного цикла в модальном окне.
- Инфокартина — при появлении новых детекторов в
InfoPictureдобавляются ячейки вindex.htmlи ветки вInfo_updateView/Info_showDetail(informing.js). - Уровни сознания 2–4, гештальт, абстракции — новые счётчики (гештальт, фантазмы, ментальные автоматизмы и т.д.) и поведение алертов по клику.
- Сон и сновидения — отдельная ветка: кнопка «Сон», ограничение стимулов, сценарии
sleep_dream_process.js.
6. Как развивать Beast: последовательность и внимание
Рекомендуемый порядок для оператора-исследователя (без правки кода):
- Понять пульс и виталы — задайте сценарии Плохо/Хорошо, понаблюдайте контексты и
DiffZnacher. - Освоить стимулы — начните с мотивации и нейтрали, затем позитив/негатив; смотрите готовность к ОР и модель понимания (i).
- Следить за деревом и инфокартиной — как связаны Base, эмоция, активность, шаг, стимул.
- Эпизодическая память — используйте т для тестов, смотрите полосу ожидания, закрывайте кадры ответами; изучайте
about_episodic_memory*.md. - Сон — используйте осознанно для сценариев сновидений; помните про ограниченный набор стимулов.
- Сохранения — регулярно сохраняйте память в файл перед экспериментами; Sx и Ух необратимы в рамках сессии без загрузки.
Для разработчика кода:
- Соблюдать порядок скриптов в
index.html(комментарий в конце файла обязателен). - Новые персистентные данные — одна запись в
BEAST.persistentModules. - Менять
about_*.mdи при необходимостиPROJECT_STATE_FOR_NEW_CHAT.mdвместе с логикой. - Подробные архитектурные принципы —
manuals/Mad_programmer_manual.md.
Документ соответствует состоянию кода проекта BEAST; при расхождении UI и поведения приоритет у реализации в репозитории.