Spaces:
Running
Running
Update index.html
Browse files- index.html +10 -3
index.html
CHANGED
|
@@ -553,6 +553,7 @@ let resume = { round: 1, stepIdx: 0, steps: null };
|
|
| 553 |
let stats = { tokens: {}, turns: {}, speeds: [], startTs: 0 };
|
| 554 |
let analysis = null; // {consensus, votes, conclusion, evaluation, relations, extra, argmap, devil}
|
| 555 |
let analysisToken = 0;
|
|
|
|
| 556 |
let debateFinished = false;
|
| 557 |
|
| 558 |
function esc(s) { const d = document.createElement('div'); d.textContent = s; return d.innerHTML; }
|
|
@@ -1201,6 +1202,7 @@ async function runDevil() {
|
|
| 1201 |
meta.textContent = `${r.tokens} tokens \u00b7 ${(r.tokens / (r.ms / 1000)).toFixed(1)} tok/s`;
|
| 1202 |
transcript.push({ name: devil.name, role: 'Abogado del diablo', text, round: 'DA', tokens: r.tokens, ms: r.ms, kind: 'devil' });
|
| 1203 |
analysis.devil = text;
|
|
|
|
| 1204 |
setStatus('El Devil\u2019s Advocate ha hablado. \u00bfResiste la conclusi\u00f3n?');
|
| 1205 |
} catch (e) {
|
| 1206 |
el.classList.remove('streaming'); el.classList.add('err');
|
|
@@ -1334,13 +1336,16 @@ function renderAnalysis() {
|
|
| 1334 |
/* ================= Persistencia ================= */
|
| 1335 |
function saveToLibrary() {
|
| 1336 |
const lib = lsGet(K.library, []);
|
| 1337 |
-
|
| 1338 |
-
id: Date.now(), topic, mode, modeName: MODES[mode].name, ts: Date.now(),
|
| 1339 |
agents: agents.map(a => ({ name: a.name, emoji: a.emoji, color: a.color, specialty: a.specialty })),
|
| 1340 |
transcript, consensus: analysis.consensus, evaluation: analysis.evaluation,
|
| 1341 |
argmap: analysis.argmap, devil: analysis.devil,
|
| 1342 |
stats: { tokens: stats.tokens, turns: stats.turns },
|
| 1343 |
-
}
|
|
|
|
|
|
|
|
|
|
| 1344 |
lsSet(K.library, lib.slice(0, 25));
|
| 1345 |
}
|
| 1346 |
function saveToMemory(consensus) {
|
|
@@ -1449,6 +1454,7 @@ function reopenDebate(id) {
|
|
| 1449 |
}
|
| 1450 |
document.querySelectorAll('.modal.open').forEach(m => m.classList.remove('open'));
|
| 1451 |
analysisToken++;
|
|
|
|
| 1452 |
topic = it.topic; mode = it.mode;
|
| 1453 |
$('topic').value = it.topic;
|
| 1454 |
selectMode(it.mode);
|
|
@@ -1552,6 +1558,7 @@ function startFresh(newTopic) {
|
|
| 1552 |
resume = { round: 1, stepIdx: 0, steps: null };
|
| 1553 |
analysisToken++;
|
| 1554 |
analysis = null;
|
|
|
|
| 1555 |
debateFinished = false;
|
| 1556 |
$('analysis-out').innerHTML = '';
|
| 1557 |
$('analysis-empty').classList.remove('hidden');
|
|
|
|
| 553 |
let stats = { tokens: {}, turns: {}, speeds: [], startTs: 0 };
|
| 554 |
let analysis = null; // {consensus, votes, conclusion, evaluation, relations, extra, argmap, devil}
|
| 555 |
let analysisToken = 0;
|
| 556 |
+
let currentLibId = null;
|
| 557 |
let debateFinished = false;
|
| 558 |
|
| 559 |
function esc(s) { const d = document.createElement('div'); d.textContent = s; return d.innerHTML; }
|
|
|
|
| 1202 |
meta.textContent = `${r.tokens} tokens \u00b7 ${(r.tokens / (r.ms / 1000)).toFixed(1)} tok/s`;
|
| 1203 |
transcript.push({ name: devil.name, role: 'Abogado del diablo', text, round: 'DA', tokens: r.tokens, ms: r.ms, kind: 'devil' });
|
| 1204 |
analysis.devil = text;
|
| 1205 |
+
saveToLibrary();
|
| 1206 |
setStatus('El Devil\u2019s Advocate ha hablado. \u00bfResiste la conclusi\u00f3n?');
|
| 1207 |
} catch (e) {
|
| 1208 |
el.classList.remove('streaming'); el.classList.add('err');
|
|
|
|
| 1336 |
/* ================= Persistencia ================= */
|
| 1337 |
function saveToLibrary() {
|
| 1338 |
const lib = lsGet(K.library, []);
|
| 1339 |
+
const rec = {
|
| 1340 |
+
id: currentLibId || Date.now(), topic, mode, modeName: MODES[mode].name, ts: Date.now(),
|
| 1341 |
agents: agents.map(a => ({ name: a.name, emoji: a.emoji, color: a.color, specialty: a.specialty })),
|
| 1342 |
transcript, consensus: analysis.consensus, evaluation: analysis.evaluation,
|
| 1343 |
argmap: analysis.argmap, devil: analysis.devil,
|
| 1344 |
stats: { tokens: stats.tokens, turns: stats.turns },
|
| 1345 |
+
};
|
| 1346 |
+
const i = lib.findIndex(x => x.id === rec.id);
|
| 1347 |
+
if (i >= 0) lib[i] = rec; else lib.unshift(rec);
|
| 1348 |
+
currentLibId = rec.id;
|
| 1349 |
lsSet(K.library, lib.slice(0, 25));
|
| 1350 |
}
|
| 1351 |
function saveToMemory(consensus) {
|
|
|
|
| 1454 |
}
|
| 1455 |
document.querySelectorAll('.modal.open').forEach(m => m.classList.remove('open'));
|
| 1456 |
analysisToken++;
|
| 1457 |
+
currentLibId = it.id;
|
| 1458 |
topic = it.topic; mode = it.mode;
|
| 1459 |
$('topic').value = it.topic;
|
| 1460 |
selectMode(it.mode);
|
|
|
|
| 1558 |
resume = { round: 1, stepIdx: 0, steps: null };
|
| 1559 |
analysisToken++;
|
| 1560 |
analysis = null;
|
| 1561 |
+
currentLibId = null;
|
| 1562 |
debateFinished = false;
|
| 1563 |
$('analysis-out').innerHTML = '';
|
| 1564 |
$('analysis-empty').classList.remove('hidden');
|