Files
blackroad-chrome-extension/popup.js
Alexa Amundson 55b3755113
Some checks failed
CI / build (push) Failing after 46s
🔧 Self-Healing / Monitor Deployments (push) Failing after 43s
🔧 Self-Healing / Auto Update Dependencies (push) Failing after 53s
v2.0: Live fleet data from Prism, updated service links
- popup.js: Real fleet data from prism.blackroad.io/api/fleet + /api/kpis
- popup.html: Added fleet stats panel, node list, updated 12 service links
- manifest.json: v2.0.0, added Prism API host permission
- Removed fake random stats, replaced with live node data
- Added keyboard shortcuts: Cmd+P (Prism), Cmd+S (Search), Cmd+F (Fleet)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

RoadChain-SHA2048: 853aabb0119527b3
RoadChain-Identity: alexa@sovereign
RoadChain-Full: 853aabb0119527b3f58326ab9415c42d50574abfa52db1fc598a3d0ca5f28247933d4dd177a22974d3dac12c5d3900c285e1162f27b87d4ff7d1c6ffda8dfcaddb9430e0a82bbda82388058e73d5675662decbd0f122c6160a3992be71694922dd4722beb063d5e0644f32573667e406d88f57f9e577c2f1c92e3d73040b1788c8e0d2c4b7cd583194f5a3aaf0e9dbbcc265a9e2e8f0b1f3eda645539293e83d908b928c7f52df7b37fd898dccc2c709caaca35a407236fad46525252c19fbde68c768033abafa7456966474b19616612e36f8cf508a5d3a2cb42c068f6f7d9368c96a7f11508c2192e426d5ff901672f839aac5a273afe78053d2e6c059f407
2026-03-16 15:45:24 -05:00

84 lines
3.0 KiB
JavaScript

// BlackRoad Command Center v2.0 — Live Fleet Data
const PRISM = 'https://prism.blackroad.io/api';
// Open URL in new tab
function openUrl(url) {
chrome.tabs.create({ url });
}
// Search
document.getElementById('search').addEventListener('input', function(e) {
const q = e.target.value.toLowerCase();
document.querySelectorAll('.service, .link-card, .org').forEach(el => {
const text = el.textContent.toLowerCase();
el.style.opacity = (!q || text.includes(q)) ? '1' : '0.3';
});
});
// Keyboard shortcuts
document.addEventListener('keydown', function(e) {
if (e.key === '/' || (e.key.length === 1 && !e.ctrlKey && !e.metaKey)) {
document.getElementById('search').focus();
}
if (e.metaKey || e.ctrlKey) {
switch(e.key) {
case 'g': e.preventDefault(); openUrl('https://github.com/BlackRoad-OS-Inc'); break;
case 'p': e.preventDefault(); openUrl('https://prism.blackroad.io'); break;
case 's': e.preventDefault(); openUrl('https://search.blackroad.io'); break;
case 'f': e.preventDefault(); openUrl('https://prism.blackroad.io/api/fleet'); break;
}
}
});
// Live fleet data from Prism
async function loadFleet() {
try {
const [fleetRes, kpiRes] = await Promise.all([
fetch(PRISM + '/fleet'),
fetch(PRISM + '/kpis'),
]);
const fleet = await fleetRes.json();
const kpis = await kpiRes.json();
const nodes = fleet.nodes || [];
const online = nodes.filter(n => n.status === 'online').length;
// Update stats
const statsEl = document.getElementById('fleet-stats');
if (statsEl) {
statsEl.innerHTML = `
<div class="stat"><span class="stat-value green">${online}/${nodes.length}</span><span class="stat-label">Nodes</span></div>
<div class="stat"><span class="stat-value">${kpis.models || 0}</span><span class="stat-label">Models</span></div>
<div class="stat"><span class="stat-value">${kpis.repos || 0}</span><span class="stat-label">Repos</span></div>
<div class="stat"><span class="stat-value">${kpis.containers || 0}</span><span class="stat-label">Docker</span></div>
`;
}
// Update node list
const nodesEl = document.getElementById('node-list');
if (nodesEl) {
nodesEl.innerHTML = nodes.map(n => `
<div class="node ${n.status}">
<span class="node-dot ${n.status === 'online' ? 'green' : 'red'}"></span>
<span class="node-name">${n.name}</span>
<span class="node-info">${n.cpu_temp || '?'}°C · ${n.ollama_models || 0} models · ${n.disk_pct || '?'}%</span>
</div>
`).join('');
}
// Update status indicator
const statusEl = document.getElementById('status-dot');
if (statusEl) {
statusEl.className = online >= 3 ? 'status-dot green' : online >= 1 ? 'status-dot yellow' : 'status-dot red';
}
} catch (e) {
console.warn('Fleet data unavailable:', e.message);
}
}
// Load immediately and refresh every 30s
loadFleet();
setInterval(loadFleet, 30000);
console.log('BlackRoad Command Center v2.0 loaded');