SIMON Master Console Rebuild
True command center for SIMON + WEB360
This rebuild gives you a cleaner production spine: interactive tree, live viewer, guarded editor, dynamic graphics, architecture map, and note storage. It is designed to sit beside your existing
console.php
and become the stronger replacement path.
Dashboard
Tree
Viewer
System Map
File Registry
Notes
Files
15,026
Folders
377
Scanned Size
3.79 GB
PHP Files
791
Editable Text Files
12,310
File viewer
guarded to /htdocs
/sitelogs/traffic.log
{\rtf1\ansi\ansicpg1252\cocoartf2869 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} \margl1440\margr1440\vieww11520\viewh8400\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \f0\fs24 \cf0 <?php\ declare(strict_types=1);\ \ /**\ * SIMON Intelligence + LINK Command Center\ * Single-file PHP dashboard inspired by the provided reference layouts.\ * Save as: /simon/simon_intelligence_console.php\ */\ \ date_default_timezone_set('America/Chicago');\ \ function h(string $value): string\ \{\ return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');\ \}\ \ $stats = [\ 'requests_today' => 1280,\ 'active_sessions' => 45,\ 'latency_avg' => '1.2s',\ 'tasks_processed' => 785,\ 'global_health' => 82,\ 'token_logs' => '1.8M',\ 'sessions_stored' => 5230,\ 'memory_usage' => '580k',\ ];\ \ $providers = [\ [\ 'name' => 'OpenAI',\ 'category' => 'AI',\ 'owner' => 'BOTH',\ 'environment' => 'Production',\ 'connection' => 'API',\ 'auth' => 'OAuth 2.0',\ 'status' => 'connected',\ 'health' => 95,\ 'sync' => '2 minutes ago',\ 'dependencies' => 4,\ 'mapped_files' => 8,\ 'issues' => 0,\ 'purpose' => 'GPT models, embeddings, content generation, and orchestration.',\ 'response_time' => '423ms',\ 'tested_at' => '2 minutes ago',\ 'scopes' => ['chat.completions', 'embeddings', 'files.read', 'models.read'],\ 'mapped' => ['OpenAIService.swift', 'ContentPipeline.swift', 'AIGenerationFlow.json', 'PromptRouter.php'],\ 'modules' => ['SIMON Intelligence', 'WEB360 Content Engine', 'Automation Hub', 'Analytics Tracker'],\ ],\ [\ 'name' => 'IONOS',\ 'category' => 'Infrastructure',\ 'owner' => 'WEB360',\ 'environment' => 'Production',\ 'connection' => 'API + Control Panel',\ 'auth' => 'Token Reference',\ 'status' => 'pending',\ 'health' => 71,\ 'sync' => '1 day ago',\ 'dependencies' => 6,\ 'mapped_files' => 12,\ 'issues' => 2,\ 'purpose' => 'Hosting, domains, database, mail, logs, webspace, and deployment surfaces.',\ 'response_time' => '1.1s',\ 'tested_at' => '1 day ago',\ 'scopes' => ['hosting', 'mail', 'db', 'logs'],\ 'mapped' => ['console.php', 'traffic.php', 'guardian_lib.php', 'links_registry.json'],\ 'modules' => ['Guardian', 'WEB360 Deploy', 'Traffic Intelligence', 'Connlink'],\ ],\ [\ 'name' => 'GitHub',\ 'category' => 'Infrastructure',\ 'owner' => 'BOTH',\ 'environment' => 'Production',\ 'connection' => 'API',\ 'auth' => 'OAuth App',\ 'status' => 'connected',\ 'health' => 92,\ 'sync' => '5 minutes ago',\ 'dependencies' => 7,\ 'mapped_files' => 15,\ 'issues' => 0,\ 'purpose' => 'Source control, repository automation, issue tracking, and release history.',\ 'response_time' => '318ms',\ 'tested_at' => '5 minutes ago',\ 'scopes' => ['repo', 'workflow', 'pull_request', 'issues'],\ 'mapped' => ['deploy.yml', 'README.md', 'release_notes.md', 'repo_map.json'],\ 'modules' => ['Codebase', 'Release Manager', 'WEB360', 'SIMON Brain'],\ ],\ [\ 'name' => 'Meta',\ 'category' => 'Social / Publishing',\ 'owner' => 'SIMON',\ 'environment' => 'Staging',\ 'connection' => 'Graph API',\ 'auth' => 'App Review Required',\ 'status' => 'warning',\ 'health' => 54,\ 'sync' => 'Never',\ 'dependencies' => 3,\ 'mapped_files' => 0,\ 'issues' => 3,\ 'purpose' => 'Publishing, ads, reels, business intelligence, and content distribution.',\ 'response_time' => 'N/A',\ 'tested_at' => 'Not started',\ 'scopes' => ['pages_manage_posts', 'instagram_basic', 'ads_read'],\ 'mapped' => ['meta_registry.json'],\ 'modules' => ['SIMON Social', 'Publishing Queue', 'Ads Review'],\ ],\ [\ 'name' => 'Google',\ 'category' => 'AI',\ 'owner' => 'SIMON',\ 'environment' => 'Production',\ 'connection' => 'API',\ 'auth' => 'OAuth 2.0 (incomplete)',\ 'status' => 'broken',\ 'health' => 39,\ 'sync' => 'Never',\ 'dependencies' => 2,\ 'mapped_files' => 2,\ 'issues' => 4,\ 'purpose' => 'Gemini, Search, workspace services, and advanced retrieval.',\ 'response_time' => 'N/A',\ 'tested_at' => 'Failed',\ 'scopes' => ['openid', 'email', 'profile'],\ 'mapped' => ['google_start.php', 'google_callback.php'],\ 'modules' => ['Guardian Auth', 'Search Layer'],\ ],\ [\ 'name' => 'Stripe',\ 'category' => 'Commerce',\ 'owner' => 'WEB360',\ 'environment' => 'Production',\ 'connection' => 'API',\ 'auth' => 'Secret Key',\ 'status' => 'healthy',\ 'health' => 97,\ 'sync' => '1 hour ago',\ 'dependencies' => 3,\ 'mapped_files' => 6,\ 'issues' => 0,\ 'purpose' => 'Payments processing, subscriptions, invoices, and checkout flows.',\ 'response_time' => '287ms',\ 'tested_at' => '1 hour ago',\ 'scopes' => ['payments', 'customers', 'products'],\ 'mapped' => ['billing.php', 'checkout.php', 'webhooks.php'],\ 'modules' => ['Commerce', 'Subscription Engine'],\ ],\ [\ 'name' => 'Cloudflare',\ 'category' => 'Infrastructure',\ 'owner' => 'WEB360',\ 'environment' => 'Production',\ 'connection' => 'API',\ 'auth' => 'Global API Key',\ 'status' => 'connected',\ 'health' => 90,\ 'sync' => '10 minutes ago',\ 'dependencies' => 2,\ 'mapped_files' => 5,\ 'issues' => 1,\ 'purpose' => 'DNS, CDN, WAF, caching, SSL, and perimeter security.',\ 'response_time' => '204ms',\ 'tested_at' => '10 minutes ago',\ 'scopes' => ['dns', 'zones', 'cache', 'firewall'],\ 'mapped' => ['dns_map.json', 'cache_rules.json'],\ 'modules' => ['Guardian Edge', 'WEB360 Delivery'],\ ],\ [\ 'name' => 'Substack',\ 'category' => 'Social / Publishing',\ 'owner' => 'SIMON',\ 'environment' => 'Planned',\ 'connection' => 'API',\ 'auth' => 'API Token',\ 'status' => 'planned',\ 'health' => 44,\ 'sync' => 'Not Configured',\ 'dependencies' => 1,\ 'mapped_files' => 0,\ 'issues' => 1,\ 'purpose' => 'Newsletter publishing, audience distribution, and serialized content.',\ 'response_time' => 'N/A',\ 'tested_at' => 'Not configured',\ 'scopes' => ['posts', 'subscribers'],\ 'mapped' => ['newsletter_plan.json'],\ 'modules' => ['Publishing', 'Audience Engine'],\ ],\ ];\ \ $statusMap = [\ 'connected' => ['label' => 'Connected', 'class' => 'connected'],\ 'healthy' => ['label' => 'Healthy', 'class' => 'connected'],\ 'pending' => ['label' => 'Pending', 'class' => 'pending'],\ 'warning' => ['label' => 'Warning', 'class' => 'warning'],\ 'broken' => ['label' => 'Broken', 'class' => 'broken'],\ 'planned' => ['label' => 'Planned', 'class' => 'planned'],\ ];\ \ $selectedName = isset($_GET['provider']) ? trim((string)$_GET['provider']) : 'OpenAI';\ $selected = $providers[0];\ foreach ($providers as $provider) \{\ if (strcasecmp($provider['name'], $selectedName) === 0) \{\ $selected = $provider;\ break;\ \}\ \}\ \ $totalProviders = count($providers);\ $connectedCount = 0;\ $pendingCount = 0;\ $errorCount = 0;\ foreach ($providers as $provider) \{\ if (in_array($provider['status'], ['connected', 'healthy'], true)) \{\ $connectedCount++;\ \} elseif ($provider['status'] === 'pending' || $provider['status'] === 'planned') \{\ $pendingCount++;\ \} else \{\ $errorCount++;\ \}\ \}\ \ $leftNav = [\ ['label' => 'Dashboard', 'icon' => '\uc0\u9673 ', 'active' => true],\ ['label' => 'Chat', 'icon' => '\uc0\u8961 '],\ ['label' => 'Workflows', 'icon' => '\uc0\u9635 '],\ ['label' => 'Web360', 'icon' => '\uc0\u9707 '],\ ['label' => 'Xcode Debug', 'icon' => '\uc0\u8984 '],\ ['label' => 'SEO Tools', 'icon' => '\uc0\u9636 '],\ ['label' => 'Logs', 'icon' => '\uc0\u9776 '],\ ];\ \ $routerActivity = [\ ['name' => 'Web360 Build', 'value' => 74],\ ['name' => 'Xcode Debug', 'value' => 58],\ ['name' => 'AI Comparison', 'value' => 68],\ ];\ \ $recentRequests = [\ 'Build Web360 landing page',\ 'Debug Swift error',\ 'Compare AI models',\ 'Review Guardian auth health',\ ];\ \ $workflowMetrics = [\ ['label' => 'Web360 Builds', 'value' => '312', 'bars' => [34, 42, 45, 53, 61, 66, 58, 70]],\ ['label' => 'Errors Resolved', 'value' => '128', 'bars' => [10, 19, 16, 29, 34, 42, 38, 46]],\ ['label' => 'Avg. Response Time', 'value' => '1.2s', 'bars' => [52, 44, 49, 38, 35, 41, 33, 29]],\ ];\ \ $providerPerformance = [\ ['name' => 'OpenAI', 'value' => 58],\ ['name' => 'Claude', 'value' => 26],\ ['name' => 'Grok', 'value' => 16],\ ];\ \ $memoryBars = [210, 160, 220, 260, 190, 240, 275, 265, 280, 310, 360, 410, 330, 580];\ ?>\ <!doctype html>\ <html lang="en">\ <head>\ <meta charset="utf-8">\ <meta name="viewport" content="width=device-width,initial-scale=1">\ <title>SIMON Intelligence \'97 LINK Command Center</title>\ <meta name="theme-color" content="#050b16">\ <meta name="robots" content="noindex,nofollow">\ <style>\ :root\{\ --bg:#040913;\ --bg2:#06111f;\ --panel:#071423;\ --panel2:#0a1627;\ --panel3:#0d1b31;\ --line:rgba(85,145,255,.14);\ --line-strong:rgba(77,232,255,.30);\ --text:#ebf7ff;\ --muted:#8da5c3;\ --cyan:#35e0ff;\ --cyan2:#74f4ff;\ --blue:#56a9ff;\ --indigo:#6e7cff;\ --green:#38e59a;\ --yellow:#ffd35d;\ --orange:#ff9a46;\ --red:#ff5d7c;\ --violet:#aa80ff;\ --shadow:0 24px 70px rgba(0,0,0,.42);\ --radius:22px;\ \}\ *\{box-sizing:border-box\}\ html,body\{margin:0;padding:0\}\ body\{\ min-height:100vh;\ color:var(--text);\ font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;\ background:\ radial-gradient(circle at 20% 0%, rgba(53,224,255,.08), transparent 26%),\ radial-gradient(circle at 100% 0%, rgba(110,124,255,.08), transparent 22%),\ radial-gradient(circle at 50% 50%, rgba(53,224,255,.03), transparent 40%),\ linear-gradient(180deg,var(--bg),var(--bg2));\ overflow-x:hidden;\ \}\ body::before\{\ content:"";\ position:fixed;\ inset:0;\ pointer-events:none;\ opacity:.18;\ background:\ linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),\ linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);\ background-size:32px 32px;\ \}\ a\{color:inherit;text-decoration:none\}\ .shell\{\ position:relative;\ z-index:1;\ display:grid;\ grid-template-columns:290px 1fr 360px;\ gap:18px;\ min-height:100vh;\ padding:18px;\ \}\ .panel\{\ background:linear-gradient(180deg,rgba(8,18,31,.96),rgba(6,14,25,.98));\ border:1px solid var(--line);\ border-radius:var(--radius);\ box-shadow:var(--shadow);\ \}\ .sidebar\{\ padding:18px;\ display:flex;\ flex-direction:column;\ gap:16px;\ \}\ .brand\{\ display:flex;\ align-items:center;\ gap:14px;\ padding-bottom:16px;\ border-bottom:1px solid rgba(255,255,255,.06);\ \}\ .brand-icon\{\ width:64px;height:64px;border-radius:18px;\ display:grid;place-items:center;\ background:\ radial-gradient(circle at 35% 35%, rgba(53,224,255,.18), transparent 45%),\ linear-gradient(180deg,#091729,#07111f);\ border:1px solid rgba(53,224,255,.2);\ box-shadow:0 0 24px rgba(53,224,255,.15);\ font-size:34px;\ color:var(--cyan);\ \}\ .brand-title\{\ font-size:22px;\ font-weight:900;\ letter-spacing:.04em;\ \}\ .brand-sub\{\ color:var(--muted);\ font-size:12px;\ letter-spacing:.08em;\ text-transform:uppercase;\ margin-top:2px;\ \}\ .sidebar-card\{\ background:linear-gradient(180deg,rgba(10,19,34,.92),rgba(8,15,26,.98));\ border:1px solid rgba(255,255,255,.05);\ border-radius:18px;\ padding:14px;\ \}\ .sidebar-title\{\ margin:0 0 12px;\ color:#c6d8ef;\ font-size:11px;\ letter-spacing:.14em;\ text-transform:uppercase;\ \}\ .search\{\ width:100%;\ min-height:46px;\ border-radius:14px;\ border:1px solid rgba(255,255,255,.08);\ background:#09131f;\ color:var(--text);\ padding:0 14px;\ outline:none;\ \}\ .category-list,.status-list,.quick-list,.nav-list\{\ display:grid;\ gap:10px;\ \}\ .nav-link,.list-link,.quick-btn\{\ display:flex;\ align-items:center;\ justify-content:space-between;\ gap:10px;\ padding:12px 14px;\ border-radius:14px;\ background:#0a1524;\ border:1px solid rgba(255,255,255,.05);\ transition:.18s ease;\ \}\ .nav-link:hover,.list-link:hover,.quick-btn:hover\{\ transform:translateY(-1px);\ border-color:rgba(53,224,255,.24);\ box-shadow:0 0 0 1px rgba(53,224,255,.08), 0 12px 24px rgba(0,0,0,.18);\ \}\ .nav-link.active,.list-link.active\{\ border-color:rgba(53,224,255,.28);\ box-shadow:0 0 0 1px rgba(53,224,255,.10), 0 0 30px rgba(53,224,255,.08);\ \}\ .nav-link .left\{\ display:flex;\ align-items:center;\ gap:10px;\ \}\ .nav-icon\{\ width:22px;\ text-align:center;\ color:var(--cyan2);\ \}\ .badge-count\{\ color:var(--cyan);\ font-weight:800;\ \}\ .main\{\ display:flex;\ flex-direction:column;\ gap:16px;\ \}\ .topbar\{\ display:flex;\ align-items:center;\ justify-content:space-between;\ gap:12px;\ padding:12px 16px;\ \}\ .topbar-left\{\ display:flex;\ align-items:center;\ gap:10px;\ flex-wrap:wrap;\ \}\ .topbar-chip\{\ padding:8px 12px;\ border-radius:999px;\ background:#091320;\ border:1px solid rgba(255,255,255,.06);\ color:var(--muted);\ font-size:12px;\ \}\ .topbar-chip.live\{\ color:#ff7b7b;\ \}\ .topbar-actions\{\ display:flex;\ align-items:center;\ gap:10px;\ \}\ .glow-btn\{\ padding:10px 14px;\ border-radius:14px;\ background:linear-gradient(135deg, rgba(53,224,255,.18), rgba(86,169,255,.18));\ border:1px solid rgba(53,224,255,.25);\ color:#fff;\ font-weight:800;\ \}\ .stat-row\{\ display:grid;\ grid-template-columns:repeat(5,minmax(140px,1fr)) 260px;\ gap:14px;\ \}\ .stat\{\ padding:16px;\ border-radius:18px;\ background:linear-gradient(180deg,rgba(10,19,33,.94),rgba(8,14,24,.98));\ border:1px solid rgba(255,255,255,.05);\ \}\ .stat .label\{\ font-size:11px;\ color:#a6bbd8;\ text-transform:uppercase;\ letter-spacing:.12em;\ \}\ .stat .value\{\ margin-top:8px;\ font-size:34px;\ font-weight:900;\ \}\ .stat.connected .value\{color:var(--green)\}\ .stat.pending .value\{color:var(--yellow)\}\ .stat.errors .value\{color:var(--red)\}\ .stat.health .value\{color:var(--cyan)\}\ .health-ring-card\{\ display:flex;\ align-items:center;\ justify-content:center;\ gap:14px;\ \}\ .health-ring\{\ width:76px;height:76px;border-radius:50%;\ border:5px solid rgba(255,255,255,.08);\ border-top-color:var(--cyan);\ display:grid;place-items:center;\ color:var(--cyan);\ font-weight:900;\ font-size:24px;\ box-shadow:0 0 24px rgba(53,224,255,.12);\ \}\ .grid-header\{\ display:flex;\ align-items:center;\ justify-content:space-between;\ gap:12px;\ padding:0 2px;\ \}\ .filter-pills\{\ display:flex;\ align-items:center;\ gap:10px;\ flex-wrap:wrap;\ \}\ .pill\{\ padding:10px 14px;\ border-radius:999px;\ border:1px solid rgba(255,255,255,.08);\ background:#091320;\ color:#d7ebff;\ font-weight:700;\ font-size:13px;\ \}\ .pill.active\{\ color:var(--cyan);\ border-color:rgba(53,224,255,.28);\ box-shadow:0 0 0 1px rgba(53,224,255,.08);\ \}\ .grid-toolbar\{\ display:flex;\ align-items:center;\ gap:10px;\ \}\ .select\{\ min-height:42px;\ border-radius:12px;\ background:#091320;\ color:var(--text);\ border:1px solid rgba(255,255,255,.08);\ padding:0 12px;\ \}\ .provider-grid\{\ display:grid;\ grid-template-columns:repeat(3,minmax(240px,1fr));\ gap:16px;\ \}\ .provider-card\{\ padding:18px;\ border-radius:22px;\ background:\ radial-gradient(circle at top right, rgba(53,224,255,.08), transparent 25%),\ linear-gradient(180deg,rgba(10,18,31,.96),rgba(7,13,22,.99));\ border:1px solid rgba(255,255,255,.06);\ box-shadow:0 12px 30px rgba(0,0,0,.22);\ transition:.18s ease;\ \}\ .provider-card:hover\{\ transform:translateY(-3px);\ border-color:rgba(53,224,255,.24);\ \}\ .provider-card.selected\{\ border-color:rgba(53,224,255,.34);\ box-shadow:0 0 0 1px rgba(53,224,255,.10), 0 0 36px rgba(53,224,255,.10);\ \}\ .provider-top\{\ display:flex;\ justify-content:space-between;\ gap:10px;\ \}\ .provider-icon\{\ width:58px;height:58px;border-radius:16px;\ display:grid;place-items:center;\ background:#0c1829;\ border:1px solid rgba(255,255,255,.06);\ font-weight:900;\ font-size:22px;\ \}\ .provider-name\{\ font-size:28px;\ font-weight:900;\ line-height:1;\ \}\ .provider-tags\{\ display:flex;\ gap:8px;\ flex-wrap:wrap;\ margin-top:8px;\ \}\ .tag\{\ padding:5px 9px;\ border-radius:999px;\ border:1px solid rgba(255,255,255,.08);\ background:#0b1523;\ font-size:11px;\ font-weight:800;\ text-transform:uppercase;\ letter-spacing:.05em;\ \}\ .tag.ai\{color:var(--violet)\}\ .tag.infra\{color:#dfe7ff\}\ .tag.social\{color:#ffa3d9\}\ .tag.commerce\{color:#ffd35d\}\ .status-pill\{\ padding:7px 10px;\ border-radius:999px;\ font-size:11px;\ font-weight:900;\ text-transform:uppercase;\ border:1px solid rgba(255,255,255,.08);\ align-self:flex-start;\ \}\ .status-pill.connected\{color:var(--green)\}\ .status-pill.pending\{color:var(--yellow)\}\ .status-pill.warning\{color:var(--orange)\}\ .status-pill.broken\{color:var(--red)\}\ .status-pill.planned\{color:var(--violet)\}\ .provider-desc\{\ color:var(--muted);\ margin:14px 0 16px;\ min-height:42px;\ \}\ .provider-meta\{\ display:grid;\ gap:8px;\ \}\ .meta-row\{\ display:flex;\ justify-content:space-between;\ gap:10px;\ font-size:14px;\ \}\ .meta-row span:first-child\{color:#9db4d0\}\ .provider-bottom\{\ display:grid;\ grid-template-columns:repeat(4,1fr);\ gap:10px;\ margin-top:16px;\ \}\ .action-btn\{\ min-height:40px;\ display:flex;\ align-items:center;\ justify-content:center;\ border-radius:12px;\ background:#091421;\ border:1px solid rgba(255,255,255,.08);\ font-weight:800;\ font-size:13px;\ \}\ .lower-grid\{\ display:grid;\ grid-template-columns:320px 1fr 1fr 300px;\ gap:16px;\ \}\ .mini-panel\{\ padding:16px;\ \}\ .mini-title\{\ margin:0 0 12px;\ font-size:14px;\ text-transform:uppercase;\ letter-spacing:.12em;\ color:#c4d5ee;\ \}\ .activity-list,.request-list,.perf-list\{\ display:grid;\ gap:12px;\ \}\ .activity-item,.request-item,.perf-item\{\ display:grid;\ gap:8px;\ \}\ .row-line\{\ display:flex;\ justify-content:space-between;\ gap:10px;\ \}\ .progress\{\ width:100%;\ height:12px;\ border-radius:999px;\ background:#09111b;\ border:1px solid rgba(255,255,255,.05);\ overflow:hidden;\ \}\ .progress > span\{\ display:block;\ height:100%;\ background:linear-gradient(90deg,var(--cyan),var(--blue),var(--orange));\ \}\ .spark-grid\{\ display:grid;\ gap:12px;\ \}\ .spark-row\{\ display:grid;\ grid-template-columns:1fr 52px 140px;\ gap:12px;\ align-items:center;\ \}\ .spark-bars\{\ height:30px;\ display:flex;\ align-items:flex-end;\ gap:4px;\ \}\ .spark-bars span\{\ flex:1;\ border-radius:4px 4px 2px 2px;\ background:linear-gradient(180deg,var(--cyan2),var(--blue));\ min-height:8px;\ \}\ .memory-wrap\{\ display:flex;\ align-items:flex-end;\ gap:7px;\ height:170px;\ margin-top:12px;\ \}\ .memory-wrap span\{\ width:100%;\ border-radius:6px 6px 2px 2px;\ background:linear-gradient(180deg,var(--blue),var(--cyan2));\ opacity:.9;\ \}\ .rightbar\{\ padding:18px;\ display:flex;\ flex-direction:column;\ gap:16px;\ \}\ .selected-head\{\ display:flex;\ align-items:center;\ justify-content:space-between;\ gap:12px;\ \}\ .selected-provider\{\ display:flex;\ align-items:center;\ gap:12px;\ \}\ .selected-provider .provider-icon\{\ width:64px;height:64px;font-size:24px;\ \}\ .section\{\ background:linear-gradient(180deg,rgba(11,20,35,.92),rgba(8,15,25,.98));\ border:1px solid rgba(255,255,255,.05);\ border-radius:18px;\ padding:16px;\ \}\ .section h3\{\ margin:0 0 14px;\ font-size:14px;\ text-transform:uppercase;\ letter-spacing:.12em;\ color:#c4d5ee;\ \}\ .kv\{\ display:grid;\ gap:10px;\ \}\ .kv-row\{\ display:flex;\ justify-content:space-between;\ gap:12px;\ font-size:14px;\ \}\ .kv-row span:first-child\{color:#9db4d0\}\ .tabs\{\ display:flex;\ gap:10px;\ margin-top:8px;\ \}\ .tabs .tab\{\ padding:8px 10px;\ border-radius:999px;\ font-size:12px;\ background:#091421;\ border:1px solid rgba(255,255,255,.07);\ \}\ .tabs .tab.active\{\ color:var(--cyan);\ border-color:rgba(53,224,255,.24);\ \}\ .scope-wrap,.file-wrap,.module-wrap\{\ display:flex;\ gap:8px;\ flex-wrap:wrap;\ \}\ .scope,.module-chip\{\ padding:7px 10px;\ border-radius:12px;\ background:#091421;\ border:1px solid rgba(255,255,255,.06);\ font-size:12px;\ \}\ .file-list\{\ display:grid;\ gap:10px;\ \}\ .file-item\{\ display:grid;\ grid-template-columns:22px 1fr;\ gap:10px;\ padding:10px 12px;\ border-radius:12px;\ background:#091421;\ border:1px solid rgba(255,255,255,.05);\ \}\ .file-item .icon\{\ color:#cfe7ff;\ \}\ .footer-actions\{\ display:grid;\ grid-template-columns:repeat(2,1fr);\ gap:10px;\ \}\ .footer-actions .action-btn\{\ min-height:46px;\ \}\ .system-status\{\ display:inline-flex;\ align-items:center;\ gap:8px;\ padding:12px 16px;\ border-radius:14px;\ background:linear-gradient(135deg, rgba(56,229,154,.14), rgba(53,224,255,.12));\ border:1px solid rgba(56,229,154,.26);\ color:#dff9ed;\ font-weight:900;\ \}\ @media (max-width:1500px)\{\ .shell\{grid-template-columns:270px 1fr\}\ .rightbar\{grid-column:1 / -1\}\ .provider-grid\{grid-template-columns:repeat(2,minmax(240px,1fr))\}\ .lower-grid\{grid-template-columns:repeat(2,minmax(260px,1fr))\}\ \}\ @media (max-width:1080px)\{\ .shell\{grid-template-columns:1fr\}\ .stat-row\{grid-template-columns:repeat(2,minmax(150px,1fr))\}\ .provider-grid,.lower-grid\{grid-template-columns:1fr\}\ \}\ @media (max-width:640px)\{\ .shell\{padding:12px\}\ .stat-row\{grid-template-columns:1fr\}\ .provider-bottom,.footer-actions\{grid-template-columns:repeat(2,1fr)\}\ \}\ </style>\ </head>\ <body>\ <div class="shell">\ <aside class="panel sidebar">\ <div class="brand">\ <div class="brand-icon">\uc0\u55357 \u56599 </div>\ <div>\ <div class="brand-title">LINK</div>\ <div class="brand-sub">Command Center \'b7 Integration \'b7 Registry \'b7 Control</div>\ </div>\ </div>\ \ <div class="sidebar-card">\ <div class="sidebar-title">Filters</div>\ <input class="search" type="text" value="" placeholder="Search providers...">\ </div>\ \ <div class="sidebar-card">\ <div class="sidebar-title">Navigation</div>\ <div class="nav-list">\ <?php foreach ($leftNav as $item): ?>\ <a class="nav-link<?= !empty($item['active']) ? ' active' : '' ?>" href="#">\ <span class="left">\ <span class="nav-icon"><?= h($item['icon']) ?></span>\ <span><?= h($item['label']) ?></span>\ </span>\ </a>\ <?php endforeach; ?>\ </div>\ </div>\ \ <div class="sidebar-card">\ <div class="sidebar-title">Categories</div>\ <div class="category-list">\ <a class="list-link active" href="#"><span>All Providers</span><span class="badge-count"><?= $totalProviders ?></span></a>\ <a class="list-link" href="#"><span>AI</span><span class="badge-count">3</span></a>\ <a class="list-link" href="#"><span>Infrastructure</span><span class="badge-count">3</span></a>\ <a class="list-link" href="#"><span>Social / Publishing</span><span class="badge-count">2</span></a>\ <a class="list-link" href="#"><span>Commerce</span><span class="badge-count">1</span></a>\ </div>\ </div>\ \ <div class="sidebar-card">\ <div class="sidebar-title">Status</div>\ <div class="status-list">\ <a class="list-link" href="#"><span>Connected</span><span class="badge-count"><?= $connectedCount ?></span></a>\ <a class="list-link" href="#"><span>Pending</span><span class="badge-count"><?= $pendingCount ?></span></a>\ <a class="list-link" href="#"><span>Broken / Failed</span><span class="badge-count"><?= $errorCount ?></span></a>\ <a class="list-link" href="#"><span>Planned</span><span class="badge-count">1</span></a>\ </div>\ </div>\ \ <div class="sidebar-card">\ <div class="sidebar-title">Quick Actions</div>\ <div class="quick-list">\ <a class="quick-btn" href="#">Run Health Scan</a>\ <a class="quick-btn" href="#">Validate All Links</a>\ <a class="quick-btn" href="#">View Link Map</a>\ <a class="quick-btn" href="#">Guardian Security</a>\ </div>\ </div>\ \ <div class="sidebar-card">\ <div class="sidebar-title">Recent Requests</div>\ <div class="request-list">\ <?php foreach ($recentRequests as $request): ?>\ <div class="request-item">\'95 <?= h($request) ?></div>\ <?php endforeach; ?>\ </div>\ </div>\ </aside>\ \ <main class="main">\ <div class="panel topbar">\ <div class="topbar-left">\ <div class="topbar-chip">Web360Studio</div>\ <div class="topbar-chip">Guardian Secure</div>\ <div class="topbar-chip">Max Editor</div>\ <div class="topbar-chip">Max Preview</div>\ <div class="topbar-chip live">OpenAI Error \'b7 Model gpt-5-mini \'b7 Local Ready</div>\ </div>\ <div class="topbar-actions">\ <a class="glow-btn" href="#">Inspect</a>\ <a class="glow-btn" href="#">Clear Cache</a>\ </div>\ </div>\ \ <section class="stat-row">\ <div class="panel stat">\ <div class="label">Total Providers</div>\ <div class="value"><?= $totalProviders ?></div>\ </div>\ <div class="panel stat connected">\ <div class="label">Connected</div>\ <div class="value"><?= $connectedCount ?></div>\ </div>\ <div class="panel stat pending">\ <div class="label">Pending</div>\ <div class="value"><?= $pendingCount ?></div>\ </div>\ <div class="panel stat errors">\ <div class="label">Errors</div>\ <div class="value"><?= $errorCount ?></div>\ </div>\ <div class="panel stat health">\ <div class="label">Requests Today</div>\ <div class="value"><?= number_format($stats['requests_today']) ?></div>\ </div>\ <div class="panel stat health-ring-card">\ <div class="health-ring"><?= $stats['global_health'] ?>%</div>\ <div>\ <div class="label">Global Health</div>\ <div style="margin-top:6px;color:var(--muted)">SIMON Intelligence operational and provider mesh synchronized.</div>\ </div>\ </div>\ </section>\ \ <div class="grid-header">\ <div class="filter-pills">\ <span class="pill active">All</span>\ <span class="pill">Connected</span>\ <span class="pill">Pending</span>\ <span class="pill">Broken</span>\ <span class="pill">Planned</span>\ </div>\ <div class="grid-toolbar">\ <select class="select">\ <option>Sort: Name</option>\ <option>Sort: Health</option>\ <option>Sort: Issues</option>\ </select>\ <a class="glow-btn" href="#">AI Assist</a>\ <a class="glow-btn" href="#">+ Add Provider</a>\ </div>\ </div>\ \ <section class="provider-grid">\ <?php foreach ($providers as $provider): ?>\ <?php\ $statusInfo = $statusMap[$provider['status']] ?? ['label' => ucfirst($provider['status']), 'class' => 'planned'];\ $catClass = 'infra';\ if ($provider['category'] === 'AI') $catClass = 'ai';\ if ($provider['category'] === 'Social / Publishing') $catClass = 'social';\ if ($provider['category'] === 'Commerce') $catClass = 'commerce';\ $isSelected = strcasecmp($provider['name'], $selected['name']) === 0;\ ?>\ <a class="provider-card<?= $isSelected ? ' selected' : '' ?>" href="?provider=<?= urlencode($provider['name']) ?>">\ <div class="provider-top">\ <div>\ <div class="provider-icon"><?= h(substr($provider['name'], 0, 1)) ?></div>\ </div>\ <div class="status-pill <?= h($statusInfo['class']) ?>"><?= h($statusInfo['label']) ?></div>\ </div>\ \ <div style="margin-top:14px" class="provider-name"><?= h($provider['name']) ?></div>\ \ <div class="provider-tags">\ <span class="tag <?= $catClass ?>"><?= h($provider['category']) ?></span>\ <span class="tag"><?= h($provider['owner']) ?></span>\ <span class="tag"><?= h($provider['environment']) ?></span>\ </div>\ \ <div class="provider-desc"><?= h($provider['purpose']) ?></div>\ \ <div class="provider-meta">\ <div class="meta-row"><span>Connection</span><span><?= h($provider['connection']) ?></span></div>\ <div class="meta-row"><span>Auth Type</span><span><?= h($provider['auth']) ?></span></div>\ <div class="meta-row"><span>Last Sync</span><span><?= h($provider['sync']) ?></span></div>\ </div>\ \ <div style="margin-top:14px" class="provider-meta">\ <div class="meta-row"><span>Handshake</span><span><?= h($statusInfo['label']) ?></span></div>\ <div class="meta-row"><span>Mapped Files</span><span><?= $provider['mapped_files'] ?></span></div>\ <div class="meta-row"><span>Dependencies</span><span><?= $provider['dependencies'] ?></span></div>\ <div class="meta-row"><span>Issues</span><span><?= $provider['issues'] ?></span></div>\ </div>\ \ <div class="provider-bottom">\ <span class="action-btn">Open</span>\ <span class="action-btn">Test</span>\ <span class="action-btn">Edit</span>\ <span class="action-btn">Map</span>\ </div>\ </a>\ <?php endforeach; ?>\ </section>\ \ <section class="lower-grid">\ <div class="panel mini-panel">\ <h3 class="mini-title">Router Activity</h3>\ <div class="activity-list">\ <?php foreach ($routerActivity as $item): ?>\ <div class="activity-item">\ <div class="row-line">\ <span><?= h($item['name']) ?></span>\ <span><?= $item['value'] ?>%</span>\ </div>\ <div class="progress"><span style="width:<?= $item['value'] ?>%"></span></div>\ </div>\ <?php endforeach; ?>\ </div>\ \ <div style="margin-top:18px">\ <h3 class="mini-title">Recent Requests</h3>\ <div class="request-list">\ <?php foreach ($recentRequests as $request): ?>\ <div class="request-item">\'95 <?= h($request) ?></div>\ <?php endforeach; ?>\ </div>\ </div>\ </div>\ \ <div class="panel mini-panel">\ <h3 class="mini-title">Recent Requests</h3>\ <div class="request-list">\ <?php foreach ($recentRequests as $request): ?>\ <div class="request-item">\'95 <?= h($request) ?></div>\ <?php endforeach; ?>\ </div>\ </div>\ \ <div class="panel mini-panel">\ <h3 class="mini-title">Workflow Metrics</h3>\ <div class="spark-grid">\ <?php foreach ($workflowMetrics as $metric): ?>\ <div class="spark-row">\ <div><?= h($metric['label']) ?></div>\ <div style="font-weight:800;text-align:right"><?= h($metric['value']) ?></div>\ <div class="spark-bars">\ <?php foreach ($metric['bars'] as $bar): ?>\ <span style="height:<?= max(8, min(100, $bar)) ?>%"></span>\ <?php endforeach; ?>\ </div>\ </div>\ <?php endforeach; ?>\ </div>\ \ <div style="margin-top:18px">\ <h3 class="mini-title">Provider Usage</h3>\ <div class="kv">\ <div class="kv-row"><span>Sessions Stored</span><span><?= number_format($stats['sessions_stored']) ?></span></div>\ <div class="kv-row"><span>Token Logs</span><span><?= h($stats['token_logs']) ?></span></div>\ <div class="kv-row"><span>Tasks Processed</span><span><?= number_format($stats['tasks_processed']) ?></span></div>\ </div>\ </div>\ </div>\ \ <div class="panel mini-panel">\ <h3 class="mini-title">Provider Performance</h3>\ <div class="perf-list">\ <?php foreach ($providerPerformance as $perf): ?>\ <div class="perf-item">\ <div class="row-line">\ <span><?= h($perf['name']) ?></span>\ <span><?= $perf['value'] ?>%</span>\ </div>\ <div class="progress"><span style="width:<?= $perf['value'] ?>%"></span></div>\ </div>\ <?php endforeach; ?>\ </div>\ \ <div style="margin-top:18px">\ <h3 class="mini-title">Memory Usage</h3>\ <div class="memory-wrap">\ <?php foreach ($memoryBars as $bar): ?>\ <span style="height:<?= max(10, min(100, ($bar / 580) * 100)) ?>%"></span>\ <?php endforeach; ?>\ </div>\ <div style="margin-top:10px;text-align:right;font-size:28px;font-weight:900"><?= h($stats['memory_usage']) ?></div>\ </div>\ </div>\ </section>\ </main>\ \ <aside class="panel rightbar">\ <?php $selStatus = $statusMap[$selected['status']] ?? ['label' => ucfirst($selected['status']), 'class' => 'planned']; ?>\ \ <div class="selected-head">\ <div class="selected-provider">\ <div class="provider-icon"><?= h(substr($selected['name'], 0, 1)) ?></div>\ <div>\ <div style="font-size:13px;color:#c4d5ee;letter-spacing:.12em;text-transform:uppercase">Selected Provider</div>\ <div style="font-size:30px;font-weight:900"><?= h($selected['name']) ?></div>\ </div>\ </div>\ <div class="status-pill <?= h($selStatus['class']) ?>"><?= h($selStatus['label']) ?></div>\ </div>\ \ <div class="tabs">\ <div class="tab active">Overview</div>\ <div class="tab">Validation</div>\ <div class="tab">Mappings</div>\ <div class="tab">Logs</div>\ </div>\ \ <div class="section">\ <h3>Provider Summary</h3>\ <div class="kv">\ <div class="kv-row"><span>Connection Type</span><span><?= h($selected['connection']) ?></span></div>\ <div class="kv-row"><span>Auth Type</span><span><?= h($selected['auth']) ?></span></div>\ <div class="kv-row"><span>Environment</span><span><?= h($selected['environment']) ?></span></div>\ <div class="kv-row"><span>Owner System</span><span><?= h($selected['owner']) ?></span></div>\ <div class="kv-row"><span>Purpose</span><span style="text-align:right;max-width:55%"><?= h($selected['purpose']) ?></span></div>\ </div>\ </div>\ \ <div class="section">\ <h3>Status & Health</h3>\ <div class="kv">\ <div class="kv-row"><span>Handshake Status</span><span><?= h($selStatus['label']) ?></span></div>\ <div class="kv-row"><span>Validation Score</span><span><?= $selected['health'] ?>%</span></div>\ <div class="kv-row"><span>Response Time</span><span><?= h($selected['response_time']) ?></span></div>\ </div>\ <div style="margin-top:14px" class="progress"><span style="width:<?= $selected['health'] ?>%"></span></div>\ </div>\ \ <div class="section">\ <h3>Authentication</h3>\ <div class="kv">\ <div class="kv-row"><span>Scopes</span><span><?= count($selected['scopes']) ?></span></div>\ <div class="kv-row"><span>Dependencies</span><span><?= $selected['dependencies'] ?></span></div>\ <div class="kv-row"><span>Mapped Files</span><span><?= $selected['mapped_files'] ?></span></div>\ </div>\ <div style="margin-top:12px" class="scope-wrap">\ <?php foreach ($selected['scopes'] as $scope): ?>\ <span class="scope"><?= h($scope) ?></span>\ <?php endforeach; ?>\ </div>\ </div>\ \ <div class="section">\ <h3>Recent Test Result</h3>\ <div class="kv">\ <div class="kv-row"><span>Test Type</span><span>API Connectivity</span></div>\ <div class="kv-row"><span>Result</span><span><?= $selected['health'] >= 80 ? 'Success' : ($selected['health'] >= 50 ? 'Partial' : 'Failed') ?></span></div>\ <div class="kv-row"><span>Response Time</span><span><?= h($selected['response_time']) ?></span></div>\ <div class="kv-row"><span>Tested At</span><span><?= h($selected['tested_at']) ?></span></div>\ </div>\ </div>\ \ <div class="section">\ <h3>Mapped Files (<?= count($selected['mapped']) ?>)</h3>\ <div class="file-list">\ <?php foreach ($selected['mapped'] as $file): ?>\ <div class="file-item">\ <div class="icon">\uc0\u9635 </div>\ <div><?= h($file) ?></div>\ </div>\ <?php endforeach; ?>\ </div>\ </div>\ \ <div class="section">\ <h3>Dependencies (<?= count($selected['modules']) ?> modules)</h3>\ <div class="module-wrap">\ <?php foreach ($selected['modules'] as $module): ?>\ <span class="module-chip"><?= h($module) ?></span>\ <?php endforeach; ?>\ </div>\ </div>\ \ <div class="section">\ <h3>SIMON System Status</h3>\ <div class="system-status">\uc0\u10004 All Systems Normal \u8594 </div>\ </div>\ \ <div class="footer-actions">\ <a class="action-btn" href="#">Open</a>\ <a class="action-btn" href="#">Test Connection</a>\ <a class="action-btn" href="#">Edit Configuration</a>\ <a class="action-btn" href="#">View Logs</a>\ </div>\ </aside>\ </div>\ </body>\ </html>}
Save file
Quick jump
open a path
Open