late-io / index.html
AIEONE's picture
Add 2 files
515e1e8 verified
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LIQUIDITY AGENTIC TERRAFORMING</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.animate-pulse-slow {
animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.sidebar-item.active {
border-left: 4px solid #3b82f6;
background-color: rgba(59, 130, 246, 0.1);
}
.node {
transition: all 0.3s ease;
}
.node:hover {
transform: scale(1.1);
filter: drop-shadow(0 0 8px rgba(59, 130, 246, 0.7));
}
.connection {
stroke-dasharray: 5;
animation: dash 30s linear infinite;
}
@keyframes dash {
to {
stroke-dashoffset: 1000;
}
}
.log-entry {
border-left: 3px solid transparent;
transition: all 0.2s;
}
.log-entry:hover {
border-left-color: #3b82f6;
background-color: rgba(59, 130, 246, 0.05);
}
.dark .log-entry:hover {
background-color: rgba(59, 130, 246, 0.1);
}
</style>
</head>
<body class="bg-gray-50 dark:bg-gray-900 text-gray-800 dark:text-gray-200 min-h-screen transition-colors duration-300">
<!-- Top Navbar -->
<nav class="bg-white dark:bg-gray-800 shadow-md fixed top-0 left-0 right-0 z-50">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-16">
<!-- Brand -->
<div class="flex-shrink-0 flex items-center">
<span class="text-xl font-bold text-blue-600 dark:text-blue-400">LIQUIDITY AGENTIC TERRAFORMING</span>
</div>
<!-- Status Indicators -->
<div class="flex space-x-4">
<div class="flex items-center space-x-1">
<span class="relative flex h-3 w-3">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"></span>
<span class="relative inline-flex rounded-full h-3 w-3 bg-green-500"></span>
</span>
<span class="text-sm">DIGS Live</span>
</div>
<div class="flex items-center space-x-1">
<span class="relative flex h-3 w-3">
<span class="animate-ping-slow absolute inline-flex h-full w-full rounded-full bg-blue-400 opacity-75"></span>
<span class="relative inline-flex rounded-full h-3 w-3 bg-blue-500"></span>
</span>
<span class="text-sm">Backend Running</span>
</div>
<div class="flex items-center space-x-1">
<span class="relative flex h-3 w-3">
<span class="relative inline-flex rounded-full h-3 w-3 bg-yellow-500"></span>
</span>
<span class="text-sm">Auth Linked</span>
</div>
</div>
<!-- Theme Toggle -->
<button id="themeToggle" class="p-2 rounded-full focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-moon text-gray-700 dark:text-yellow-300"></i>
</button>
</div>
</div>
</nav>
<!-- Main Content -->
<div class="flex pt-16">
<!-- Sidebar -->
<div class="w-64 bg-white dark:bg-gray-800 shadow-md fixed left-0 top-16 bottom-0 overflow-y-auto transition-all duration-300 z-40">
<div class="p-4">
<div class="relative mb-4">
<input type="text" placeholder="Search modules..." class="w-full px-4 py-2 rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-search absolute right-3 top-3 text-gray-400"></i>
</div>
<div class="space-y-1">
<button class="sidebar-item active w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-home text-blue-500"></i>
<span>Dashboard</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-brain text-purple-500"></i>
<span>Agent Modules</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-database text-green-500"></i>
<span>DIGS Memory</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-project-diagram text-red-500"></i>
<span>Orchestration</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-file-upload text-yellow-500"></i>
<span>File Uploads</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-chart-line text-indigo-500"></i>
<span>Analytics</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-terminal text-blue-400"></i>
<span>Logs</span>
</button>
<button class="sidebar-item w-full text-left px-4 py-3 rounded-lg flex items-center space-x-3 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-cogs text-gray-500"></i>
<span>Settings</span>
</button>
</div>
<div class="mt-8 pt-4 border-t border-gray-200 dark:border-gray-700">
<h3 class="px-4 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider">Quick Actions</h3>
<div class="mt-2 space-y-1">
<button class="w-full text-left px-4 py-2 text-sm rounded-lg flex items-center space-x-2 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-bolt text-yellow-500"></i>
<span>New Agent</span>
</button>
<button class="w-full text-left px-4 py-2 text-sm rounded-lg flex items-center space-x-2 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-sync-alt text-blue-500"></i>
<span>Refresh All</span>
</button>
<button class="w-full text-left px-4 py-2 text-sm rounded-lg flex items-center space-x-2 hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-shield-alt text-green-500"></i>
<span>Security Scan</span>
</button>
</div>
</div>
</div>
</div>
<!-- Main Content Area -->
<div class="flex-1 ml-64 p-8">
<div class="max-w-7xl mx-auto">
<!-- Dashboard Header -->
<div class="flex justify-between items-center mb-8">
<h1 class="text-3xl font-bold text-gray-800 dark:text-white">Agentic Orchestration Dashboard</h1>
<div class="flex space-x-4">
<button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg flex items-center space-x-2 transition">
<i class="fas fa-plus"></i>
<span>New Module</span>
</button>
<button class="px-4 py-2 border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg flex items-center space-x-2 transition">
<i class="fas fa-upload"></i>
<span>Import</span>
</button>
</div>
</div>
<!-- Stats Cards -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8">
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6 border-l-4 border-blue-500">
<div class="flex justify-between">
<div>
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Active Agents</p>
<p class="text-3xl font-semibold text-gray-800 dark:text-white mt-2">18</p>
</div>
<div class="h-12 w-12 rounded-full bg-blue-100 dark:bg-blue-900 flex items-center justify-center">
<i class="fas fa-robot text-blue-600 dark:text-blue-400 text-xl"></i>
</div>
</div>
<p class="text-xs text-green-500 mt-2 flex items-center">
<i class="fas fa-arrow-up mr-1"></i> 12% from last week
</p>
</div>
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6 border-l-4 border-green-500">
<div class="flex justify-between">
<div>
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Memory Usage</p>
<p class="text-3xl font-semibold text-gray-800 dark:text-white mt-2">64%</p>
</div>
<div class="h-12 w-12 rounded-full bg-green-100 dark:bg-green-900 flex items-center justify-center">
<i class="fas fa-memory text-green-600 dark:text-green-400 text-xl"></i>
</div>
</div>
<p class="text-xs text-yellow-500 mt-2 flex items-center">
<i class="fas fa-arrow-down mr-1"></i> 8% from last week
</p>
</div>
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6 border-l-4 border-purple-500">
<div class="flex justify-between">
<div>
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Tasks Completed</p>
<p class="text-3xl font-semibold text-gray-800 dark:text-white mt-2">1,284</p>
</div>
<div class="h-12 w-12 rounded-full bg-purple-100 dark:bg-purple-900 flex items-center justify-center">
<i class="fas fa-tasks text-purple-600 dark:text-purple-400 text-xl"></i>
</div>
</div>
<p class="text-xs text-green-500 mt-2 flex items-center">
<i class="fas fa-arrow-up mr-1"></i> 23% from last week
</p>
</div>
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6 border-l-4 border-red-500">
<div class="flex justify-between">
<div>
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Errors</p>
<p class="text-3xl font-semibold text-gray-800 dark:text-white mt-2">4</p>
</div>
<div class="h-12 w-12 rounded-full bg-red-100 dark:bg-red-900 flex items-center justify-center">
<i class="fas fa-exclamation-triangle text-red-600 dark:text-red-400 text-xl"></i>
</div>
</div>
<p class="text-xs text-green-500 mt-2 flex items-center">
<i class="fas fa-arrow-down mr-1"></i> 50% from last week
</p>
</div>
</div>
<!-- Agent Network Visualization -->
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6 mb-8">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold text-gray-800 dark:text-white">Agent Network Visualization</h2>
<div class="flex space-x-2">
<button class="p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-expand text-gray-500 dark:text-gray-400"></i>
</button>
<button class="p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-sync-alt text-gray-500 dark:text-gray-400"></i>
</button>
</div>
</div>
<div class="relative h-96 bg-gray-50 dark:bg-gray-700 rounded-lg overflow-hidden">
<svg id="networkGraph" width="100%" height="100%" class="cursor-move">
<!-- Connections -->
<line x1="20%" y1="30%" x2="40%" y2="50%" class="connection stroke-blue-400 dark:stroke-blue-500" stroke-width="2" />
<line x1="40%" y1="50%" x2="60%" y2="30%" class="connection stroke-blue-400 dark:stroke-blue-500" stroke-width="2" />
<line x1="40%" y1="50%" x2="40%" y2="70%" class="connection stroke-blue-400 dark:stroke-blue-500" stroke-width="2" />
<line x1="60%" y1="30%" x2="80%" y2="50%" class="connection stroke-blue-400 dark:stroke-blue-500" stroke-width="2" />
<line x1="40%" y1="70%" x2="60%" y2="70%" class="connection stroke-blue-400 dark:stroke-blue-500" stroke-width="2" />
<line x1="60%" y1="70%" x2="80%" y2="50%" class="connection stroke-blue-400 dark:stroke-blue-500" stroke-width="2" />
<!-- Nodes -->
<g class="node" onclick="showAgentDetails('input-processor')">
<circle cx="20%" cy="30%" r="30" fill="#3B82F6" class="shadow-lg" />
<text x="20%" y="30%" text-anchor="middle" fill="white" dy=".3em" font-size="12" font-weight="bold">Input</text>
</g>
<g class="node" onclick="showAgentDetails('logic-engine')">
<circle cx="40%" cy="50%" r="40" fill="#8B5CF6" class="shadow-lg" />
<text x="40%" y="50%" text-anchor="middle" fill="white" dy=".3em" font-size="14" font-weight="bold">Logic</text>
</g>
<g class="node" onclick="showAgentDetails('output-generator')">
<circle cx="60%" cy="30%" r="30" fill="#10B981" class="shadow-lg" />
<text x="60%" y="30%" text-anchor="middle" fill="white" dy=".3em" font-size="12" font-weight="bold">Output</text>
</g>
<g class="node" onclick="showAgentDetails('memory-module')">
<circle cx="40%" cy="70%" r="30" fill="#EC4899" class="shadow-lg" />
<text x="40%" y="70%" text-anchor="middle" fill="white" dy=".3em" font-size="12" font-weight="bold">Memory</text>
</g>
<g class="node" onclick="showAgentDetails('monitoring')">
<circle cx="60%" cy="70%" r="30" fill="#F59E0B" class="shadow-lg" />
<text x="60%" y="70%" text-anchor="middle" fill="white" dy=".3em" font-size="12" font-weight="bold">Monitor</text>
</g>
<g class="node" onclick="showAgentDetails('api-gateway')">
<circle cx="80%" cy="50%" r="40" fill="#6366F1" class="shadow-lg" />
<text x="80%" y="50%" text-anchor="middle" fill="white" dy=".3em" font-size="14" font-weight="bold">API</text>
</g>
</svg>
<div id="agentDetails" class="absolute top-4 right-4 bg-white dark:bg-gray-800 shadow-xl rounded-lg p-4 w-64 hidden">
<div class="flex justify-between items-start mb-3">
<h3 class="font-bold text-lg" id="agentName">Agent Details</h3>
<button onclick="hideAgentDetails()" class="text-gray-500 hover:text-gray-700 dark:hover:text-gray-300">
<i class="fas fa-times"></i>
</button>
</div>
<div class="space-y-2 text-sm">
<p><span class="font-medium">Status:</span> <span id="agentStatus" class="text-green-500">Active</span></p>
<p><span class="font-medium">Type:</span> <span id="agentType">Processor</span></p>
<p><span class="font-medium">Load:</span> <span id="agentLoad">42%</span></p>
<p><span class="font-medium">Connections:</span> <span id="agentConnections">3</span></p>
</div>
<div class="mt-4 pt-2 border-t border-gray-200 dark:border-gray-700">
<button class="w-full py-2 bg-blue-600 hover:bg-blue-700 text-white rounded transition">
Configure Agent
</button>
</div>
</div>
</div>
</div>
<!-- Performance Metrics -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-8">
<!-- CPU/Memory Usage -->
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold text-gray-800 dark:text-white">Resource Utilization</h2>
<div class="flex space-x-2">
<button class="px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded transition">
<i class="fas fa-chart-line mr-1"></i> Live
</button>
<button class="px-3 py-1 text-sm border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition">
<i class="fas fa-history mr-1"></i> History
</button>
</div>
</div>
<div class="h-64">
<canvas id="resourceChart"></canvas>
</div>
</div>
<!-- Task Throughput -->
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold text-gray-800 dark:text-white">Task Throughput</h2>
<div class="flex items-center space-x-2">
<span class="text-sm text-gray-500 dark:text-gray-400">Last 24 hours</span>
<button class="p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 transition">
<i class="fas fa-ellipsis-h text-gray-500 dark:text-gray-400"></i>
</button>
</div>
</div>
<div class="h-64">
<canvas id="throughputChart"></canvas>
</div>
</div>
</div>
<!-- Recent Activity -->
<div class="bg-white dark:bg-gray-800 rounded-xl shadow overflow-hidden mb-8">
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex justify-between items-center">
<h2 class="text-xl font-semibold text-gray-800 dark:text-white">Recent Activity</h2>
<button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg flex items-center space-x-2 transition">
<i class="fas fa-filter"></i>
<span>Filter</span>
</button>
</div>
<div class="divide-y divide-gray-200 dark:divide-gray-700 max-h-96 overflow-y-auto">
<!-- Log Entry -->
<div class="log-entry px-6 py-4 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 h-10 w-10 rounded-full bg-green-100 dark:bg-green-900 flex items-center justify-center">
<i class="fas fa-check-circle text-green-600 dark:text-green-400"></i>
</div>
<div class="flex-1 min-w-0">
<p class="text-sm font-medium text-gray-900 dark:text-white">
Task completed successfully
</p>
<p class="text-sm text-gray-500 dark:text-gray-400 truncate">
Agent "Data Processor" completed task #1842 in 342ms
</p>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-1">
2 minutes ago
</p>
</div>
<div class="inline-flex items-center text-xs px-2 py-0.5 rounded-full bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200">
Success
</div>
</div>
</div>
<!-- Log Entry -->
<div class="log-entry px-6 py-4 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 h-10 w-10 rounded-full bg-blue-100 dark:bg-blue-900 flex items-center justify-center">
<i class="fas fa-info-circle text-blue-600 dark:text-blue-400"></i>
</div>
<div class="flex-1 min-w-0">
<p class="text-sm font-medium text-gray-900 dark:text-white">
New agent registered
</p>
<p class="text-sm text-gray-500 dark:text-gray-400 truncate">
"Security Validator" joined the network from 192.168.1.42
</p>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-1">
12 minutes ago
</p>
</div>
<div class="inline-flex items-center text-xs px-2 py-0.5 rounded-full bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200">
Info
</div>
</div>
</div>
<!-- Log Entry -->
<div class="log-entry px-6 py-4 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 h-10 w-10 rounded-full bg-yellow-100 dark:bg-yellow-900 flex items-center justify-center">
<i class="fas fa-exclamation-triangle text-yellow-600 dark:text-yellow-400"></i>
</div>
<div class="flex-1 min-w-0">
<p class="text-sm font-medium text-gray-900 dark:text-white">
High memory usage detected
</p>
<p class="text-sm text-gray-500 dark:text-gray-400 truncate">
"Data Analyzer" reached 92% memory utilization
</p>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-1">
24 minutes ago
</p>
</div>
<div class="inline-flex items-center text-xs px-2 py-0.5 rounded-full bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200">
Warning
</div>
</div>
</div>
<!-- Log Entry -->
<div class="log-entry px-6 py-4 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 h-10 w-10 rounded-full bg-red-100 dark:bg-red-900 flex items-center justify-center">
<i class="fas fa-times-circle text-red-600 dark:text-red-400"></i>
</div>
<div class="flex-1 min-w-0">
<p class="text-sm font-medium text-gray-900 dark:text-white">
Connection timeout
</p>
<p class="text-sm text-gray-500 dark:text-gray-400 truncate">
Failed to connect to "API Gateway" (timeout after 5000ms)
</p>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-1">
1 hour ago
</p>
</div>
<div class="inline-flex items-center text-xs px-2 py-0.5 rounded-full bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200">
Error
</div>
</div>
</div>
<!-- Log Entry -->
<div class="log-entry px-6 py-4 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 h-10 w-10 rounded-full bg-purple-100 dark:bg-purple-900 flex items-center justify-center">
<i class="fas fa-sync-alt text-purple-600 dark:text-purple-400"></i>
</div>
<div class="flex-1 min-w-0">
<p class="text-sm font-medium text-gray-900 dark:text-white">
System update initiated
</p>
<p class="text-sm text-gray-500 dark:text-gray-400 truncate">
Updating core modules to version 2.3.1
</p>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-1">
2 hours ago
</p>
</div>
<div class="inline-flex items-center text-xs px-2 py-0.5 rounded-full bg-purple-100 dark:bg-purple-900 text-purple-800 dark:text-purple-200">
Maintenance
</div>
</div>
</div>
</div>
<div class="px-6 py-3 bg-gray-50 dark:bg-gray-700 text-center border-t border-gray-200 dark:border-gray-700">
<button class="text-sm font-medium text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 transition">
View all activity
</button>
</div>
</div>
<!-- Quick Actions -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6">
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">Upload Data</h3>
<div class="border-2 border-dashed border-gray-300 dark:border-gray-600 rounded-lg p-8 text-center">
<i class="fas fa-cloud-upload-alt text-4xl text-gray-400 dark:text-gray-500 mb-3"></i>
<p class="text-sm text-gray-500 dark:text-gray-400 mb-4">Drag & drop files here or click to browse</p>
<button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg transition">
Select Files
</button>
</div>
</div>
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6">
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">System Controls</h3>
<div class="space-y-3">
<button class="w-full px-4 py-3 bg-green-600 hover:bg-green-700 text-white rounded-lg flex items-center justify-between transition">
<span>Start All Agents</span>
<i class="fas fa-play"></i>
</button>
<button class="w-full px-4 py-3 bg-yellow-500 hover:bg-yellow-600 text-white rounded-lg flex items-center justify-between transition">
<span>Restart System</span>
<i class="fas fa-redo"></i>
</button>
<button class="w-full px-4 py-3 bg-red-600 hover:bg-red-700 text-white rounded-lg flex items-center justify-between transition">
<span>Emergency Stop</span>
<i class="fas fa-stop"></i>
</button>
</div>
</div>
<div class="bg-white dark:bg-gray-800 rounded-xl shadow p-6">
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">Memory Analysis</h3>
<div class="h-40 mb-4">
<canvas id="memoryChart"></canvas>
</div>
<div class="space-y-2">
<div class="flex justify-between text-sm">
<span class="text-gray-600 dark:text-gray-300">DIGS Usage</span>
<span class="font-medium">78%</span>
</div>
<div class="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2">
<div class="bg-purple-600 h-2 rounded-full" style="width: 78%"></div>
</div>
<button class="w-full mt-4 px-4 py-2 bg-purple-600 hover:bg-purple-700 text-white rounded-lg transition">
Optimize Memory
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
// Theme Toggle
const themeToggle = document.getElementById('themeToggle');
const html = document.documentElement;
themeToggle.addEventListener('click', () => {
html.classList.toggle('dark');
localStorage.setItem('theme', html.classList.contains('dark') ? 'dark' : 'light');
updateThemeIcon();
});
function updateThemeIcon() {
const icon = themeToggle.querySelector('i');
if (html.classList.contains('dark')) {
icon.classList.remove('fa-moon');
icon.classList.add('fa-sun');
} else {
icon.classList.remove('fa-sun');
icon.classList.add('fa-moon');
}
}
// Check for saved theme preference
if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
html.classList.add('dark');
} else {
html.classList.remove('dark');
}
updateThemeIcon();
// Sidebar Navigation
const sidebarItems = document.querySelectorAll('.sidebar-item');
sidebarItems.forEach(item => {
item.addEventListener('click', () => {
sidebarItems.forEach(i => i.classList.remove('active'));
item.classList.add('active');
});
});
// Agent Network Visualization
function showAgentDetails(agentId) {
const detailsPanel = document.getElementById('agentDetails');
const agentName = document.getElementById('agentName');
const agentStatus = document.getElementById('agentStatus');
const agentType = document.getElementById('agentType');
const agentLoad = document.getElementById('agentLoad');
const agentConnections = document.getElementById('agentConnections');
// Simulate different agent details based on clicked node
switch(agentId) {
case 'input-processor':
agentName.textContent = 'Input Processor';
agentStatus.textContent = 'Active';
agentStatus.className = 'text-green-500';
agentType.textContent = 'Data Ingestion';
agentLoad.textContent = '65%';
agentConnections.textContent = '2';
break;
case 'logic-engine':
agentName.textContent = 'Logic Engine';
agentStatus.textContent = 'Active';
agentStatus.className = 'text-green-500';
agentType.textContent = 'Core Processor';
agentLoad.textContent = '78%';
agentConnections.textContent = '4';
break;
case 'output-generator':
agentName.textContent = 'Output Generator';
agentStatus.textContent = 'Idle';
agentStatus.className = 'text-yellow-500';
agentType.textContent = 'Data Export';
agentLoad.textContent = '12%';
agentConnections.textContent = '2';
break;
case 'memory-module':
agentName.textContent = 'Memory Module';
agentStatus.textContent = 'Active';
agentStatus.className = 'text-green-500';
agentType.textContent = 'Data Storage';
agentLoad.textContent = '83%';
agentConnections.textContent = '3';
break;
case 'monitoring':
agentName.textContent = 'Monitoring Agent';
agentStatus.textContent = 'Active';
agentStatus.className = 'text-green-500';
agentType.textContent = 'System Health';
agentLoad.textContent = '45%';
agentConnections.textContent = '2';
break;
case 'api-gateway':
agentName.textContent = 'API Gateway';
agentStatus.textContent = 'Active';
agentStatus.className = 'text-green-500';
agentType.textContent = 'External Interface';
agentLoad.textContent = '91%';
agentConnections.textContent = '5';
break;
}
detailsPanel.classList.remove('hidden');
}
function hideAgentDetails() {
document.getElementById('agentDetails').classList.add('hidden');
}
// Make the network graph draggable
const networkGraph = document.getElementById('networkGraph');
let isDragging = false;
let startX, startY, translateX = 0, translateY = 0;
networkGraph.addEventListener('mousedown', (e) => {
if (e.target.tagName === 'svg') {
isDragging = true;
startX = e.clientX;
startY = e.clientY;
networkGraph.style.cursor = 'grabbing';
}
});
document.addEventListener('mousemove', (e) => {
if (!isDragging) return;
const dx = e.clientX - startX;
const dy = e.clientY - startY;
// Apply the translation to all nodes and connections
const nodes = document.querySelectorAll('.node');
const connections = document.querySelectorAll('.connection');
nodes.forEach(node => {
const circle = node.querySelector('circle');
const text = node.querySelector('text');
const currentX = parseFloat(circle.getAttribute('cx'));
const currentY = parseFloat(circle.getAttribute('cy'));
circle.setAttribute('cx', currentX + dx/100);
circle.setAttribute('cy', currentY + dy/100);
text.setAttribute('x', currentX + dx/100);
text.setAttribute('y', currentY + dy/100);
});
connections.forEach(conn => {
const x1 = parseFloat(conn.getAttribute('x1'));
const y1 = parseFloat(conn.getAttribute('y1'));
const x2 = parseFloat(conn.getAttribute('x2'));
const y2 = parseFloat(conn.getAttribute('y2'));
conn.setAttribute('x1', x1 + dx/100);
conn.setAttribute('y1', y1 + dy/100);
conn.setAttribute('x2', x2 + dx/100);
conn.setAttribute('y2', y2 + dy/100);
});
startX = e.clientX;
startY = e.clientY;
});
document.addEventListener('mouseup', () => {
isDragging = false;
networkGraph.style.cursor = 'move';
});
// Initialize Charts
document.addEventListener('DOMContentLoaded', function() {
// Resource Utilization Chart
const resourceCtx = document.getElementById('resourceChart').getContext('2d');
const resourceChart = new Chart(resourceCtx, {
type: 'line',
data: {
labels: ['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'],
datasets: [
{
label: 'CPU Usage',
data: [30, 45, 60, 55, 70, 65, 50, 40],
borderColor: '#3B82F6',
backgroundColor: 'rgba(59, 130, 246, 0.1)',
borderWidth: 2,
tension: 0.3,
fill: true
},
{
label: 'Memory Usage',
data: [40, 50, 45, 60, 55, 70, 65, 50],
borderColor: '#10B981',
backgroundColor: 'rgba(16, 185, 129, 0.1)',
borderWidth: 2,
tension: 0.3,
fill: true
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'top',
labels: {
color: '#6B7280'
}
}
},
scales: {
y: {
beginAtZero: true,
max: 100,
ticks: {
color: '#6B7280'
},
grid: {
color: 'rgba(209, 213, 219, 0.3)'
}
},
x: {
ticks: {
color: '#6B7280'
},
grid: {
color: 'rgba(209, 213, 219, 0.3)'
}
}
}
}
});
// Task Throughput Chart
const throughputCtx = document.getElementById('throughputChart').getContext('2d');
const throughputChart = new Chart(throughputCtx, {
type: 'bar',
data: {
labels: ['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'],
datasets: [
{
label: 'Tasks Completed',
data: [120, 180, 150, 210, 240, 190, 160, 130],
backgroundColor: '#8B5CF6',
borderColor: '#7C3AED',
borderWidth: 1
},
{
label: 'Tasks Failed',
data: [5, 8, 12, 6, 3, 10, 7, 4],
backgroundColor: '#EC4899',
borderColor: '#DB2777',
borderWidth: 1
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'top',
labels: {
color: '#6B7280'
}
}
},
scales: {
y: {
beginAtZero: true,
ticks: {
color: '#6B7280'
},
grid: {
color: 'rgba(209, 213, 219, 0.3)'
}
},
x: {
ticks: {
color: '#6B7280'
},
grid: {
color: 'rgba(209, 213, 219, 0.3)'
}
}
}
}
});
// Memory Analysis Chart
const memoryCtx = document.getElementById('memoryChart').getContext('2d');
const memoryChart = new Chart(memoryCtx, {
type: 'doughnut',
data: {
labels: ['Used', 'Cached', 'Free'],
datasets: [{
data: [78, 15, 7],
backgroundColor: [
'#8B5CF6',
'#A78BFA',
'#C4B5FD'
],
borderWidth: 0
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
cutout: '70%',
plugins: {
legend: {
position: 'right',
labels: {
color: '#6B7280'
}
}
}
}
});
// Simulate real-time updates
setInterval(() => {
// Update resource chart
const resourceData = resourceChart.data.datasets[0].data;
resourceData.shift();
resourceData.push(Math.floor(Math.random() * 30) + 50);
const memoryData = resourceChart.data.datasets[1].data;
memoryData.shift();
memoryData.push(Math.floor(Math.random() * 30) + 45);
resourceChart.update();
// Update throughput chart
const throughputData = throughputChart.data.datasets[0].data;
throughputData.shift();
throughputData.push(Math.floor(Math.random() * 100) + 100);
const failedData = throughputChart.data.datasets[1].data;
failedData.shift();
failedData.push(Math.floor(Math.random() * 10) + 2);
throughputChart.update();
// Update memory chart
const newUsed = Math.floor(Math.random() * 10) + 75;
const newCached = Math.floor(Math.random() * 10) + 10;
memoryChart.data.datasets[0].data = [newUsed, newCached, 100 - newUsed - newCached];
memoryChart.update();
// Update the memory usage display
document.querySelector('.bg-purple-600').style.width = `${newUsed}%`;
document.querySelector('.flex.justify-between.text-sm span.font-medium').textContent = `${newUsed}%`;
}, 3000);
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=AIEONE/late-io" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>