diff --git a/app.js b/app.js index 4147640..83667fb 100644 --- a/app.js +++ b/app.js @@ -1121,8 +1121,8 @@ function createTerminalPanel(parent, x, y, rot, title, color, lines) { async function fetchGiteaData() { try { const [issuesRes, stateRes] = await Promise.all([ - fetch('/api/gitea/repos/admin/timmy-tower/issues?state=all'), - fetch('/api/gitea/repos/admin/timmy-tower/contents/world_state.json') + fetch('https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/issues?state=all&limit=20'), + fetch('https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/contents/vision.json') ]); if (issuesRes.ok) { @@ -1135,6 +1135,7 @@ async function fetchGiteaData() { const content = await stateRes.json(); const worldState = JSON.parse(atob(content.content)); updateNexusCommand(worldState); + updateSovereignHealth(); } } catch (e) { console.error('Failed to fetch Gitea data:', e); @@ -1167,6 +1168,27 @@ function updateDevQueue(issues) { terminal.updatePanelText(lines); } + +function updateSovereignHealth() { + const container = document.getElementById('sovereign-health-content'); + if (!container) return; + + const services = [ + { name: 'FORGE / GITEA', url: 'https://forge.alexanderwhitestone.com', status: 'ONLINE' }, + { name: 'NEXUS CORE', url: 'https://forge.alexanderwhitestone.com/Timmy_Foundation/the-nexus', status: 'ONLINE' }, + { name: 'HERMES WS', url: 'ws://143.198.27.163:8765', status: wsConnected ? 'ONLINE' : 'OFFLINE' }, + { name: 'SIDE CAR', url: 'http://127.0.0.1:18789', status: 'LOCAL-ONLY' } + ]; + + container.innerHTML = ''; + services.forEach(s => { + const div = document.createElement('div'); + div.className = 'meta-stat'; + div.innerHTML = `${s.name} ${s.status}`; + container.appendChild(div); + }); +} + function updateNexusCommand(state) { const terminal = batcaveTerminals.find(t => t.title === 'NEXUS COMMAND'); if (!terminal) return; diff --git a/index.html b/index.html index 5ea207e..ccb2697 100644 --- a/index.html +++ b/index.html @@ -23,6 +23,7 @@ +