fivetech commited on
Commit
d0899ce
·
verified ·
1 Parent(s): 2f036d0

Update index.html

Browse files
Files changed (1) hide show
  1. 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
- lib.unshift({
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');