Added RPG
This commit is contained in:
+37
-1
@@ -1,4 +1,4 @@
|
||||
import { toggleSidebar, dom } from './state.js';
|
||||
import { toggleSidebar, dom, setRpgEnabled } from './state.js';
|
||||
import { initSessions, createNewChat } from './sessions.js';
|
||||
import { loadPersonas, initPersonaModals } from './personas.js';
|
||||
import { sendMessage, clearHistory } from './chat.js';
|
||||
@@ -25,6 +25,42 @@ dom.inputEl.addEventListener('keydown', (e) => {
|
||||
dom.sendBtn.addEventListener('click', sendMessage);
|
||||
dom.clearBtn.addEventListener('click', clearHistory);
|
||||
|
||||
dom.rpgToggle?.addEventListener('change', async () => {
|
||||
setRpgEnabled(dom.rpgToggle.checked);
|
||||
const { sessionId } = await import('./state.js');
|
||||
if (!sessionId) return;
|
||||
await fetch(`/sessions/${sessionId}`, {
|
||||
method: 'PATCH',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ rpg_enabled: dom.rpgToggle.checked }),
|
||||
});
|
||||
|
||||
// Debug: immediately bootstrap plot arc and show it in chat
|
||||
if (dom.rpgToggle.checked) {
|
||||
const { currentPersona } = await import('./state.js');
|
||||
const res = await fetch('/chat/rpg/bootstrap', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ session_id: sessionId, persona_id: currentPersona }),
|
||||
});
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
if (data.plot_arc) {
|
||||
const { addMessage } = await import('./chat.js');
|
||||
const title = data.plot_arc.title || 'PlotArc';
|
||||
const phase = data.plot_arc.phase || '';
|
||||
const hint = data.plot_arc.next_beat_hint || '';
|
||||
addMessage('assistant', `--- PlotArc ---\n${title}\nphase: ${phase}\nnext: ${hint}\n---`);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
dom.systemBlobToggle?.addEventListener('click', () => {
|
||||
const hidden = dom.systemBlobContent.classList.toggle('hidden');
|
||||
dom.systemBlobToggle.textContent = hidden ? 'Показать' : 'Скрыть';
|
||||
});
|
||||
|
||||
initPersonaModals();
|
||||
await initSessions();
|
||||
loadPersonas();
|
||||
|
||||
Reference in New Issue
Block a user