diff --git a/app.js b/app.js index 5a028f6..c9850f5 100644 --- a/app.js +++ b/app.js @@ -209,6 +209,46 @@ document.getElementById('debug-toggle').addEventListener('click', () => { } }); +// === AGENT STATUS BOARD === +const AGENTS = [ + { id: 'timmy', name: 'Timmy', status: 'active' }, + { id: 'kimi', name: 'Kimi', status: 'idle' }, + { id: 'perplexity', name: 'Perplexity', status: 'idle' }, +]; + +/** + * Renders the agent list into the #agent-list element. + */ +function renderAgentBoard() { + const list = document.getElementById('agent-list'); + if (!list) return; + list.innerHTML = ''; + for (const agent of AGENTS) { + const li = document.createElement('li'); + li.className = `agent-item ${agent.status}`; + li.dataset.agentId = agent.id; + li.innerHTML = + `` + + `${agent.name}` + + `${agent.status.toUpperCase()}`; + list.appendChild(li); + } +} + +/** + * Updates a single agent's status and re-renders the board. + * @param {string} agentId + * @param {'active'|'idle'} status + */ +function setAgentStatus(agentId, status) { + const agent = AGENTS.find(a => a.id === agentId); + if (!agent) return; + agent.status = status; + renderAgentBoard(); +} + +renderAgentBoard(); + // === WEBSOCKET CLIENT === import { wsClient } from './ws-client.js'; @@ -216,14 +256,23 @@ wsClient.connect(); window.addEventListener('player-joined', (/** @type {CustomEvent} */ event) => { console.log('Player joined:', event.detail); + if (event.detail && event.detail.agentId) { + setAgentStatus(event.detail.agentId, 'active'); + } }); window.addEventListener('player-left', (/** @type {CustomEvent} */ event) => { console.log('Player left:', event.detail); + if (event.detail && event.detail.agentId) { + setAgentStatus(event.detail.agentId, 'idle'); + } }); window.addEventListener('chat-message', (/** @type {CustomEvent} */ event) => { console.log('Chat message:', event.detail); + if (event.detail && event.detail.agentId) { + setAgentStatus(event.detail.agentId, 'active'); + } }); window.addEventListener('beforeunload', () => { diff --git a/index.html b/index.html index 26344f3..a514583 100644 --- a/index.html +++ b/index.html @@ -41,6 +41,12 @@ [Tab] to exit + +