|
|
|
|
@ -7,7 +7,7 @@
@@ -7,7 +7,7 @@
|
|
|
|
|
connected: false, |
|
|
|
|
loopsLeft: 0, loopsMax: 0, |
|
|
|
|
dailyCount: 0, dailyMax: 0, |
|
|
|
|
resetCbs: [], stopCbs: [], saveCbs: [], startCbs: [] |
|
|
|
|
resetCbs: [], stopCbs: [], saveCbs: [], startCbs: [], dotMode: null |
|
|
|
|
}; |
|
|
|
|
var el = {}; |
|
|
|
|
function byId(id) { return document.getElementById(id); } |
|
|
|
|
@ -74,7 +74,7 @@
@@ -74,7 +74,7 @@
|
|
|
|
|
} |
|
|
|
|
var API = { |
|
|
|
|
setPhase: function (p) { state.phase = p; if (el.phase) el.phase.textContent = p; }, |
|
|
|
|
setConnected: function (b) { state.connected = !!b; if (el.dot) el.dot.className = 'dshmem-dot ' + (b ? 'ok' : 'err'); }, |
|
|
|
|
setConnected: function (b) { state.connected = !!b; API._applyDot(); }, setDot: function (m) { state.dotMode = (m === 'ok') ? null : m; API._applyDot(); }, _applyDot: function () { if (!el.dot) return; var md = state.dotMode || (state.connected ? 'ok' : 'err'); var cls = 'dshmem-dot'; if (md === 'ok' || md === 'err' || md === 'busy' || md === 'ok-busy') cls += ' ' + md; el.dot.className = cls; }, |
|
|
|
|
setStartEnabled: function (b) { if (el.start) el.start.disabled = !b; }, setStats: function (ws, memN, skillN) { if (!el.stats) return; el.stats.textContent = 'WS: ' + (ws || '?') + ' mem: ' + (memN || 0) + ' skills: ' + (skillN || 0); }, setMetrics: function (m) { if (!el.metrics) return; if (!m) { el.metrics.textContent = 'metrics: —'; return; } el.metrics.textContent = 'acc: ' + m.accum + ' · turn: ' + m.delta + ' · msg: ' + m.chars + 'ch (~' + m.est_tok + 't) ctx ' + (m.ctx_tok || 0) + 't ' + (m.ctx_pct || 0) + 'pct'; }, |
|
|
|
|
log: function (m) { |
|
|
|
|
if (!el.log) return; |
|
|
|
|
|