Fixed SD RPG

This commit is contained in:
2026-06-04 08:05:06 +03:00
parent d4cd8f02f4
commit 6189a5fb74
62 changed files with 6969 additions and 552 deletions
+83 -2
View File
@@ -13,8 +13,10 @@
<h1>🤖 AI Chat</h1>
<span class="header-title" id="headerTitle">Новый чат</span>
<span id="rpgBadge" class="rpg-badge hidden" title="RPG режим">RPG</span>
<a href="/debug" class="header-icon-btn" title="Debug" style="text-decoration:none">🛠</a>
<button id="chatSettingsBtn" type="button" class="header-icon-btn" title="Настройки чата">⚙️</button>
<span id="affinityDisplay" class="affinity-display hidden"></span>
<span id="affinityDisplay" class="affinity-display hidden" title="Симпатия к игроку"></span>
<span id="statsDisplay" class="stats-display hidden" title="Шкалы lust / stamina / tension"></span>
</header>
<div class="app-body">
@@ -26,7 +28,12 @@
<div class="session-list" id="sessionList"></div>
<div class="quest-panel hidden" id="questPanel">
<div class="quest-panel-header">Квесты</div>
<p class="quest-panel-hint" id="questPanelHint">Клик по 🔸 — выбор, затем кнопка ниже</p>
<div id="questList"></div>
<div class="quest-panel-actions" id="questPanelActions">
<button type="button" id="questBtnDone" class="quest-btn-done" disabled>✓ Готово</button>
<button type="button" id="questBtnFail" class="quest-btn-fail" disabled>✗ Провал</button>
</div>
</div>
</aside>
@@ -36,6 +43,7 @@
<div class="system-blob-header">
<span>System</span>
<button type="button" id="systemBlobRefresh" title="Обновить"></button>
<button type="button" id="contextEditorOpen" title="Редактировать контекст"></button>
<button type="button" id="systemBlobToggle">Скрыть</button>
</div>
<pre class="system-blob-content" id="systemBlobContent"></pre>
@@ -289,6 +297,7 @@
<label><input type="checkbox" id="ncSettingNarrator" checked> 📖 Нарратор</label>
<label><input type="checkbox" id="ncSettingQuests" checked> 📜 Квесты</label>
<label><input type="checkbox" id="ncSettingAffinity" checked> 💖 Симпатия</label>
<label><input type="checkbox" id="ncSettingStats"> 📊 Шкалы (lust/stamina/tension)</label>
<label><input type="checkbox" id="ncSettingChoices" checked> 🔘 Кнопки выбора</label>
</div>
</div>
@@ -314,6 +323,9 @@
<label>Название чата
<input type="text" id="chatSettingsTitle">
</label>
<p class="wizard-page-title">Персонаж чата</p>
<p class="hint-text">Смена персонажа перепривязывает этот чат. Историю можно сохранить или очистить.</p>
<div class="persona-pick-grid" id="chatSettingsPersonaGrid"></div>
<label class="rpg-mode-option">
<input type="checkbox" id="chatSettingsRpg"> RPG режим
</label>
@@ -334,9 +346,30 @@
<label><input type="checkbox" id="csSettingNarrator"> 📖 Нарратор</label>
<label><input type="checkbox" id="csSettingQuests"> 📜 Квесты</label>
<label><input type="checkbox" id="csSettingAffinity"> 💖 Симпатия</label>
<label><input type="checkbox" id="csSettingStats"> 📊 Шкалы (lust/stamina/tension)</label>
<label><input type="checkbox" id="csSettingChoices"> 🔘 Кнопки выбора</label>
</div>
<div class="chat-settings-meta" id="chatSettingsMeta"></div>
<details class="rpg-debug-panel" id="chatSettingsRpgDebug">
<summary>🧪 Отладка: симпатия и шкалы</summary>
<p class="hint-text">Жёстко задаёт состояние для следующих реплик. Цель — текущий игрок (позже: пары персонаж×игрок).</p>
<div class="rpg-debug-grid">
<label>💖 Симпатия (−30…30)
<input type="number" id="debugAffinity" min="-30" max="30" step="1">
</label>
<label>🔥 Lust (010)
<input type="number" id="debugLust" min="0" max="10" step="1">
</label>
<label>⚡ Stamina (010)
<input type="number" id="debugStamina" min="0" max="10" step="1">
</label>
<label>😰 Tension (010)
<input type="number" id="debugTension" min="0" max="10" step="1">
</label>
</div>
<button type="button" id="debugRpgStateApply" class="rpg-debug-apply">Применить к сессии</button>
<span class="rpg-debug-status" id="debugRpgStateStatus"></span>
</details>
</div>
</div>
<div class="modal-buttons modal-wizard-footer">
@@ -346,6 +379,54 @@
</div>
</div>
<script type="module" src="/static/js/app.js?v=4"></script>
<div class="modal-overlay" id="contextEditorModal">
<div class="modal modal-wizard context-editor-modal">
<div class="modal-wizard-header">
<h2>✎ Контекст сессии</h2>
</div>
<div class="modal-wizard-body context-editor-body">
<p class="hint-text">Правки применяются сразу к следующим сообщениям и генерации картинок. JSON-поля — массив или объект.</p>
<label>Status quo
<textarea id="ctxStatusQuo" rows="3" spellcheck="false"></textarea>
</label>
<label>Global plot
<textarea id="ctxGlobalPlot" rows="2" spellcheck="false"></textarea>
</label>
<label>Outfit (JSON array, danbooru-теги с цветом)
<textarea id="ctxOutfit" rows="4" spellcheck="false" placeholder='["black_sports_shorts", "white_torn_tank_top"]'></textarea>
</label>
<label>Scene (JSON)
<textarea id="ctxScene" rows="4" spellcheck="false"></textarea>
</label>
<label>Facts (JSON array)
<textarea id="ctxFacts" rows="3" spellcheck="false" placeholder='[{"text":"...", "rp_day":"день 1"}]'></textarea>
</label>
<label>Plot arc (JSON)
<textarea id="ctxPlotArc" rows="6" spellcheck="false"></textarea>
</label>
<div class="context-editor-stats">
<label>💖 Affinity
<input type="number" id="ctxAffinity" min="-30" max="30" step="1">
</label>
<label>🔥 Lust
<input type="number" id="ctxLust" min="0" max="10" step="1">
</label>
<label>⚡ Stamina
<input type="number" id="ctxStamina" min="0" max="10" step="1">
</label>
<label>😰 Tension
<input type="number" id="ctxTension" min="0" max="10" step="1">
</label>
</div>
<span class="rpg-debug-status" id="contextEditorStatus"></span>
</div>
<div class="modal-buttons modal-wizard-footer">
<button id="contextEditorCancel" type="button">Отмена</button>
<button id="contextEditorSave" type="button" style="background:#9b7fd4;color:white">Сохранить</button>
</div>
</div>
</div>
<script type="module" src="/static/js/app.js?v=17"></script>
</body>
</html>