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
/admin/simon_intelligence_master_console.php
<?php declare(strict_types=1); require_once __DIR__ . '/_bootstrap.php'; /** * SIMON Intelligence Master Console * Single-file PHP dashboard built from the uploaded SIMON ecosystem summaries. * Intended path: /htdocs/simon/index.php or /htdocs/simon/console.php */ declare(strict_types=1); $dateGenerated = date('F j, Y g:i A'); $appTitle = 'SIMON Intelligence — Master Command Console'; $appSubtitle = 'Unified ecosystem dashboard for WEB360, SIMON, Social, API, Data, assets, phases, and execution flow'; $brand = 'Gaylord Sinclair LLC'; $baseUrl = 'https://www.gaylordsinclair.com'; $summary = [ 'identity' => 'SIMON Intelligence Ecosystem is a unified AI-powered platform connecting web creation, social automation, publishing, analytics, and monetization into one evolving system.', 'current_value' => '$200K – $1M+', 'future_value' => '$5M – $20M+', 'lean_build_cost' => '$50K – $170K', 'team_build_cost' => '$230K – $675K', 'positioning' => 'Social Growth OS + Web Builder + AI Platform', 'core_flow' => 'Idea → SIMON → WEB360 → API → Website → Social → Data → SIMON → Optimize', 'business_flow' => 'Content → Traffic → Engagement → Conversion → Revenue → Data → Growth', ]; $rootFolders = [ '/htdocs/simon/', '/htdocs/web360/', '/htdocs/social/', '/htdocs/books/', '/htdocs/art/', '/htdocs/comics/', '/htdocs/arcade/', '/htdocs/infinity/', '/htdocs/api/', '/htdocs/data/', '/htdocs/config/', '/htdocs/assets/', '/htdocs/_admin/' ]; $modules = [ [ 'id' => 'simon', 'name' => 'SIMON Intelligence', 'category' => 'Core Brain', 'status' => 'Active', 'percent' => 72, 'value' => '$500K – $5M', 'cost' => '$20 – $150/mo', 'priority' => 'High', 'path' => '/simon/', 'purpose' => 'Brain, routing, memory, analytics, forecasting, system orchestration, and AI command layer.', 'capabilities' => ['5W1H reasoning', 'Memory + logs', 'AI request routing', 'Recommendations', 'Command-center logic'], 'depends' => ['api', 'data', 'web360', 'social'], ], [ 'id' => 'web360', 'name' => 'WEB360 Studio', 'category' => 'Builder Engine', 'status' => 'Active', 'percent' => 68, 'value' => '$1M – $10M', 'cost' => '$20 – $100/mo', 'priority' => 'High', 'path' => '/web360/', 'purpose' => 'Live web builder, template engine, preview system, generator, and future SaaS packaging layer.', 'capabilities' => ['Live editing', 'Template system', 'Preview + publish', 'Project scaffolding', 'Schema-driven generation'], 'depends' => ['simon', 'api'], ], [ 'id' => 'social', 'name' => 'SIMON Social Matrix', 'category' => 'Automation / Growth', 'status' => 'Planned', 'percent' => 26, 'value' => '$250K – $2M', 'cost' => '$30 – $200/mo', 'priority' => 'High', 'path' => '/social/', 'purpose' => 'Social campaign registration, post automation, analytics loop, and growth recommendations.', 'capabilities' => ['Cross-channel posting', 'Content queue', 'Campaign tracking', 'Engagement analysis', 'Growth recommendations'], 'depends' => ['simon', 'api', 'data'], ], [ 'id' => 'api', 'name' => 'API Gateway', 'category' => 'Integration Layer', 'status' => 'In Progress', 'percent' => 47, 'value' => '$100K – $1M', 'cost' => '$10 – $100/mo', 'priority' => 'High', 'path' => '/api/', 'purpose' => 'Unified connector layer for AI providers, internal modules, logging, auth, deployment, and future apps.', 'capabilities' => ['JSON endpoints', 'Provider abstraction', 'Status endpoints', 'Internal service bridge', 'Deployment hooks'], 'depends' => ['data'], ], [ 'id' => 'data', 'name' => 'Data / Logs / Memory', 'category' => 'Storage Layer', 'status' => 'In Progress', 'percent' => 54, 'value' => '$50K – $500K', 'cost' => '$0 – $50/mo', 'priority' => 'High', 'path' => '/data/', 'purpose' => 'Persistent storage for logs, analytics, memory, events, queues, and project state.', 'capabilities' => ['Event logging', 'Analytics snapshots', 'Memory persistence', 'Project state tracking', 'Optimization signals'], 'depends' => ['api'], ], [ 'id' => 'links', 'name' => 'Link Intelligence', 'category' => 'Optimization', 'status' => 'Planned', 'percent' => 34, 'value' => '$100K – $750K', 'cost' => '$0 – $40/mo', 'priority' => 'Medium', 'path' => '/simon/modules/links/', 'purpose' => 'Tracks link health, click paths, SEO relationships, broken links, and monetization flow.', 'capabilities' => ['Broken-link detection', 'Click flow map', 'Internal linking analysis', 'SEO routing', 'Monetization path scoring'], 'depends' => ['simon', 'data'], ], [ 'id' => 'macro', 'name' => 'Macro Agent', 'category' => 'Automation', 'status' => 'Planned', 'percent' => 22, 'value' => '$150K – $1M', 'cost' => '$0 – $50/mo', 'priority' => 'High', 'path' => '/simon/modules/macros/', 'purpose' => 'Runs reusable routines for project setup, audits, snapshots, checklists, and follow-up actions.', 'capabilities' => ['Project setup macros', 'SEO audits', 'Backup snapshots', 'Checklist generation', 'Task automation'], 'depends' => ['simon', 'web360', 'data'], ], [ 'id' => 'projects', 'name' => 'Project Registry', 'category' => 'Operations', 'status' => 'Planned', 'percent' => 31, 'value' => '$75K – $500K', 'cost' => '$0 – $25/mo', 'priority' => 'Medium', 'path' => '/simon/modules/projects/', 'purpose' => 'Tracks active, planned, and future builds by phase, status, value, risk, and completion.', 'capabilities' => ['Project metadata', 'Phase tracking', 'Priority scoring', 'Dependency view', 'Executive summaries'], 'depends' => ['simon', 'data'], ], ]; $fileMap = [ '/htdocs/simon/index.php', '/htdocs/simon/console.php', '/htdocs/simon/simon_core.php', '/htdocs/simon/simon_brain.php', '/htdocs/simon/simon_router.php', '/htdocs/simon/simon_memory.php', '/htdocs/simon/simon_security.php', '/htdocs/simon/simon_5w1h.php', '/htdocs/simon/api/simon_request.php', '/htdocs/simon/api/simon_status.php', '/htdocs/simon/api/openai.php', '/htdocs/web360/builder.php', '/htdocs/web360/viewer.php', '/htdocs/web360/map.php', '/htdocs/web360/checklist.php', '/htdocs/web360/api/generate_project.php', '/htdocs/web360/api/preview_project.php', '/htdocs/social/', '/htdocs/books/', '/htdocs/art/', '/htdocs/comics/', '/htdocs/arcade/', '/htdocs/infinity/', '/htdocs/data/memory.json', '/htdocs/data/logs.json', ]; $phases = [ ['phase' => 'Phase 1', 'title' => 'Foundation', 'status' => 'Active', 'duration' => '1–2 months', 'focus' => 'UI, backend structure, storage, dashboard shell, project layout'], ['phase' => 'Phase 2', 'title' => 'Intelligence', 'status' => 'Planned', 'duration' => '2–3 months', 'focus' => '5W1H, memory, AI routing, dynamic recommendations, analysis console'], ['phase' => 'Phase 3', 'title' => 'Social Automation', 'status' => 'Planned', 'duration' => '2–4 months', 'focus' => 'Post scheduling, approvals, analytics loop, campaign flows'], ['phase' => 'Phase 4', 'title' => 'Infrastructure', 'status' => 'Planned', 'duration' => '1–2 months', 'focus' => 'GitHub, FTP/SFTP, security hardening, deployment pipeline'], ['phase' => 'Phase 5', 'title' => 'Commercialization', 'status' => 'Future', 'duration' => '2–3 months', 'focus' => 'SaaS packaging, subscriptions, onboarding, investor-ready reporting'], ]; $gaps = [ 'Complete AI orchestration layer', 'Enhance memory intelligence and persistence', 'Build auto publisher system', 'Improve UI/UX polish and operator workflows', 'Strengthen security and deployment pipelines', 'Add multi-user capability and access control', 'Add database-backed state beyond local JSON', ]; $nextTasks = [ 'Build secure API proxy for OpenAI and external providers', 'Implement database schema or durable JSON layer', 'Create authentication and protected admin access', 'Build dashboard / console interface as source of truth', 'Integrate WEB360 generator + viewer + checklist panels', 'Add social registration so pages become campaign inputs', 'Standardize logs so every module feeds SIMON memory', ]; $flow = [ ['from' => 'Idea / Prompt', 'to' => 'SIMON Intelligence', 'desc' => 'Classify request, apply 5W1H reasoning, choose route.'], ['from' => 'SIMON Intelligence', 'to' => 'WEB360 Studio', 'desc' => 'Generate or refine pages, files, templates, and layouts.'], ['from' => 'WEB360 Studio', 'to' => 'API Gateway', 'desc' => 'Trigger deployment, preview, validation, and provider calls.'], ['from' => 'API Gateway', 'to' => 'Site Modules', 'desc' => 'Push updates to books, art, comics, arcade, infinity, and tools.'], ['from' => 'Site Modules', 'to' => 'SIMON Social Matrix', 'desc' => 'Convert pages into campaign-ready content and channel assets.'], ['from' => 'Social Matrix', 'to' => 'Data / Logs / Memory', 'desc' => 'Capture engagement, clicks, outcomes, and growth signals.'], ['from' => 'Data / Logs / Memory', 'to' => 'SIMON Intelligence', 'desc' => 'Analyze performance and recommend next actions.'], ]; function e(string $value): string { return htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); } function status_class(string $status): string { return match (strtolower($status)) { 'active' => 'ok', 'in progress', 'in-progress' => 'warn', 'planned' => 'info', 'future' => 'muted', default => 'muted', }; } function overall_completion(array $modules): float { if (!$modules) return 0; $sum = 0; foreach ($modules as $module) { $sum += (float)($module['percent'] ?? 0); } return round($sum / count($modules), 1); } $overall = overall_completion($modules); $moduleJson = json_encode($modules, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); ?><!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <title><?= e($appTitle) ?></title> <meta name="description" content="Single-file PHP command console for the SIMON Intelligence ecosystem."> <meta name="theme-color" content="#08101e"> <style> :root{ --bg:#050b14;--bg2:#091120;--panel:rgba(10,18,34,.82);--panel2:rgba(14,25,46,.76); --line:rgba(113,180,255,.16);--text:#edf5ff;--muted:#9cb2d3;--cyan:#6ae0ff;--blue:#67a7ff; --violet:#b186ff;--green:#65e2b1;--gold:#ffd66f;--danger:#ff7b8b;--radius:22px; --shadow:0 20px 60px rgba(0,0,0,.38); } *{box-sizing:border-box} html{scroll-behavior:smooth} body{ margin:0;color:var(--text);font:15px/1.55 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background: radial-gradient(circle at 15% 20%, rgba(106,224,255,.15), transparent 28%), radial-gradient(circle at 85% 15%, rgba(177,134,255,.14), transparent 30%), radial-gradient(circle at 50% 90%, rgba(103,167,255,.12), transparent 34%), linear-gradient(180deg, #020711 0%, #07111f 45%, #050b14 100%); min-height:100vh; } body:before{ content:"";position:fixed;inset:0;pointer-events:none;opacity:.34; background-image:linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size:30px 30px; mask-image:linear-gradient(to bottom, rgba(255,255,255,.75), rgba(255,255,255,.08)); } .wrap{max-width:1600px;margin:0 auto;padding:24px} .header{ position:sticky;top:0;z-index:50;margin-bottom:24px;backdrop-filter:blur(16px); background:linear-gradient(180deg, rgba(8,16,30,.9), rgba(8,16,30,.72));border:1px solid var(--line); border-radius:0 0 24px 24px;box-shadow:var(--shadow); } .header-inner{max-width:1600px;margin:0 auto;padding:18px 24px;display:grid;grid-template-columns:1.2fr .8fr;gap:20px;align-items:center} .brand{display:flex;align-items:center;gap:16px} .orb{ width:78px;height:78px;border-radius:50%;position:relative;flex:0 0 auto; background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.96), rgba(106,224,255,.78) 18%, rgba(103,167,255,.36) 44%, rgba(177,134,255,.14) 60%, transparent 72%); box-shadow:0 0 32px rgba(106,224,255,.28),0 0 78px rgba(103,167,255,.18), inset 0 0 28px rgba(255,255,255,.16); overflow:hidden; } .orb:before,.orb:after{content:"";position:absolute;inset:-9%;border-radius:50%;border:1px solid rgba(106,224,255,.18);animation:spin 8s linear infinite} .orb:after{inset:10%;border-color:rgba(177,134,255,.24);animation-duration:12s;animation-direction:reverse} @keyframes spin{to{transform:rotate(360deg)}} .title{margin:0;font-size:clamp(1.25rem,1rem + 1.5vw,2.05rem)} .subtitle{margin:6px 0 0;color:var(--muted)} .top-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px} .stat,.panel,.module-card,.flow-item,.task-item,.gap-item,.folder-card,.detail-card,.phase-card,.metric{background:rgba(255,255,255,.04);border:1px solid var(--line)} .stat{padding:14px;border-radius:16px} .stat .k{font-size:1.12rem;font-weight:800} .stat .l,.tiny{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em} .panel{border-radius:var(--radius);background:linear-gradient(180deg, var(--panel), var(--panel2));box-shadow:var(--shadow)} .hero{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;padding:24px;margin-bottom:22px} .hero h2{margin:.2rem 0 .7rem;font-size:clamp(1.5rem,1.1rem + 1.6vw,2.6rem)} .hero p,.module-card p,.detail-card p{color:var(--muted)} .pills,.caps,.module-meta,.filters{display:flex;flex-wrap:wrap;gap:10px} .pill,.badge,.cap,.filter-btn{padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text)} .filter-btn{cursor:pointer;font-weight:700} .filter-btn.active,.filter-btn:hover{border-color:rgba(106,224,255,.45);background:rgba(106,224,255,.09)} .grid-2,.grid-3,.grid-4{display:grid;gap:22px;margin-bottom:22px} .grid-2{grid-template-columns:1fr 1fr} .grid-3{grid-template-columns:repeat(3,1fr)} .grid-4{grid-template-columns:repeat(4,1fr)} .section{padding:20px} .section h3{margin:0 0 14px;font-size:1.08rem} .progress{height:10px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden;border:1px solid rgba(255,255,255,.06);margin:10px 0 12px} .progress > span{display:block;height:100%;background:linear-gradient(90deg, var(--cyan), var(--blue), var(--violet))} .kpi-list,.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px} .metric{border-radius:16px;padding:14px} .metric .mv{font-size:1.12rem;font-weight:800;margin-top:6px} .map-box{position:relative;min-height:430px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 50%, rgba(106,224,255,.10), transparent 28%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015))} .map-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:170px;height:170px;border-radius:50%;display:grid;place-items:center;text-align:center;padding:12px;background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.94), rgba(106,224,255,.70) 20%, rgba(103,167,255,.32) 44%, rgba(177,134,255,.12) 60%, transparent 74%);box-shadow:0 0 70px rgba(106,224,255,.18), inset 0 0 24px rgba(255,255,255,.14);border:1px solid rgba(106,224,255,.18)} .map-core span{display:block;color:var(--muted);font-size:.8rem;margin-top:6px} .node{position:absolute;width:180px;min-height:96px;padding:12px;border-radius:18px;background:linear-gradient(180deg, rgba(18,31,55,.88), rgba(10,18,34,.76));border:1px solid var(--line);box-shadow:0 14px 34px rgba(0,0,0,.22);cursor:pointer;transition:.2s ease} .node:hover,.node.active{transform:translateY(-4px);border-color:rgba(106,224,255,.45);box-shadow:0 18px 44px rgba(18,31,55,.42)} .node .n-title{font-weight:800;font-size:.92rem} .node .n-cat{font-size:.73rem;letter-spacing:.08em;color:var(--muted);margin-top:4px;text-transform:uppercase} .node .n-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:.76rem} .dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px} .ok{background:var(--green)} .warn{background:var(--gold)} .info{background:var(--cyan)} .muted{background:#7e8ba0} #node-simon{top:26px;left:calc(50% - 90px)} #node-web360{top:110px;left:34px} #node-api{top:246px;left:calc(50% - 90px)} #node-social{bottom:28px;left:40px} #node-data{bottom:28px;right:40px} #node-macro{top:110px;right:34px} .toolbar{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:14px} .search{width:min(330px,100%);padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:rgba(0,0,0,.18);color:var(--text);outline:none} .module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px} .module-card{border-radius:18px;padding:14px} .module-card h4{margin:0 0 8px;font-size:1.05rem} .flow-list,.task-list,.gap-list,.folder-list,.phase-list{display:grid;gap:12px} .flow-item,.task-item,.gap-item,.folder-card,.phase-card,.detail-card{border-radius:18px;padding:14px} .flow-arrow{color:var(--cyan);font-weight:800;padding:0 8px} pre{margin:0;white-space:pre-wrap;color:#d7e8ff;font:500 .9rem/1.6 ui-monospace,SFMono-Regular,Menlo,monospace} .footer{padding:18px 0 40px;color:var(--muted);text-align:center} @media (max-width:1180px){.header-inner,.hero,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.top-stats{grid-template-columns:repeat(2,1fr)}} @media (max-width:900px){.map-box{min-height:780px}#node-simon{top:24px;left:24px}#node-web360{top:138px;left:24px}#node-macro{top:252px;left:24px;right:auto}#node-api{top:366px;left:24px}#node-social{top:480px;left:24px;bottom:auto}#node-data{top:594px;left:24px;right:auto;bottom:auto}.map-core{right:22px;left:auto;top:60px;transform:none;width:150px;height:150px}} @media (max-width:640px){.wrap{padding:14px}.header-inner{padding:14px}.kpi-list,.metric-grid,.top-stats{grid-template-columns:1fr}} </style> </head> <body> <header class="header"> <div class="header-inner"> <div class="brand"> <div class="orb" aria-hidden="true"></div> <div> <h1 class="title"><?= e($appTitle) ?></h1> <p class="subtitle"><?= e($appSubtitle) ?> • <?= e($brand) ?></p> </div> </div> <div class="top-stats"> <div class="stat"><div class="l">Overall Completion</div><div class="k"><?= e(number_format($overall, 1)) ?>%</div></div> <div class="stat"><div class="l">Current Value</div><div class="k"><?= e($summary['current_value']) ?></div></div> <div class="stat"><div class="l">Future Value</div><div class="k"><?= e($summary['future_value']) ?></div></div> <div class="stat"><div class="l">Generated</div><div class="k"><?= e($dateGenerated) ?></div></div> </div> </div> </header> <main class="wrap"> <section class="panel hero"> <div> <div class="tiny">System identity</div> <h2>One command center for web creation, social automation, memory, analytics, routing, and growth.</h2> <p><?= e($summary['identity']) ?></p> <div class="pills" style="margin-top:16px"> <span class="pill">Positioning: <?= e($summary['positioning']) ?></span> <span class="pill">Lean Build: <?= e($summary['lean_build_cost']) ?></span> <span class="pill">Team Build: <?= e($summary['team_build_cost']) ?></span> <span class="pill">Base URL: <?= e($baseUrl) ?></span> </div> </div> <div class="section" style="padding:0;background:none;border:none;box-shadow:none;"> <div class="kpi-list"> <div class="metric"><div class="tiny">Core Flow</div><div class="mv"><?= e($summary['core_flow']) ?></div></div> <div class="metric"><div class="tiny">Business Flow</div><div class="mv"><?= e($summary['business_flow']) ?></div></div> <div class="metric"><div class="tiny">Primary Objective</div><div class="mv">Unify build + intelligence + deployment</div></div> <div class="metric"><div class="tiny">Best Immediate Move</div><div class="mv">Generator → Viewer → Security → Social</div></div> </div> </div> </section> <section class="grid-2"> <div class="panel section"> <h3>Ecosystem integration map</h3> <div class="map-box"> <div class="map-core"><div><strong>SIMON Core</strong><span>Brain • Memory • Routing • Forecast</span></div></div> <button class="node active" id="node-simon" data-node="simon" type="button"><div class="n-title">SIMON Intelligence</div><div class="n-cat">Core Brain</div><div class="n-meta"><span><span class="dot ok"></span>Active</span><span>72%</span></div></button> <button class="node" id="node-web360" data-node="web360" type="button"><div class="n-title">WEB360 Studio</div><div class="n-cat">Builder Engine</div><div class="n-meta"><span><span class="dot ok"></span>Active</span><span>68%</span></div></button> <button class="node" id="node-macro" data-node="macro" type="button"><div class="n-title">Macro Agent</div><div class="n-cat">Automation</div><div class="n-meta"><span><span class="dot info"></span>Planned</span><span>22%</span></div></button> <button class="node" id="node-api" data-node="api" type="button"><div class="n-title">API Gateway</div><div class="n-cat">Integration Layer</div><div class="n-meta"><span><span class="dot warn"></span>In Progress</span><span>47%</span></div></button> <button class="node" id="node-social" data-node="social" type="button"><div class="n-title">Social Matrix</div><div class="n-cat">Growth Engine</div><div class="n-meta"><span><span class="dot info"></span>Planned</span><span>26%</span></div></button> <button class="node" id="node-data" data-node="data" type="button"><div class="n-title">Data / Logs / Memory</div><div class="n-cat">Storage Layer</div><div class="n-meta"><span><span class="dot warn"></span>In Progress</span><span>54%</span></div></button> <svg viewBox="0 0 1000 700" preserveAspectRatio="none" style="position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.78"> <defs><linearGradient id="flowGlow" x1="0" x2="1"><stop offset="0%" stop-color="rgba(106,224,255,.08)"/><stop offset="50%" stop-color="rgba(106,224,255,.85)"/><stop offset="100%" stop-color="rgba(177,134,255,.22)"/></linearGradient></defs> <path d="M500 140 C355 170, 240 175, 130 170" stroke="url(#flowGlow)" stroke-width="2.6" fill="none"/> <path d="M500 140 C645 170, 760 175, 870 170" stroke="url(#flowGlow)" stroke-width="2.6" fill="none"/> <path d="M500 140 C500 175, 500 240, 500 315" stroke="url(#flowGlow)" stroke-width="2.6" fill="none"/> <path d="M500 360 C390 430, 250 520, 160 595" stroke="url(#flowGlow)" stroke-width="2.6" fill="none"/> <path d="M500 360 C610 430, 750 520, 840 595" stroke="url(#flowGlow)" stroke-width="2.6" fill="none"/> <circle cx="500" cy="140" r="4" fill="#6ae0ff"/> <circle cx="500" cy="360" r="4" fill="#6ae0ff"/> </svg> </div> </div> <div class="panel section" id="detailPane"> <div class="detail-card"> <h3 id="detailName" style="margin-top:0">SIMON Intelligence</h3> <p id="detailPurpose">Brain, routing, memory, analytics, forecasting, system orchestration, and AI command layer.</p> </div> <div class="metric-grid"> <div class="metric"><div class="tiny">Category</div><div class="mv" id="detailCategory">Core Brain</div></div> <div class="metric"><div class="tiny">Status</div><div class="mv" id="detailStatus">Active</div></div> <div class="metric"><div class="tiny">Completion</div><div class="mv" id="detailPercent">72%</div></div> <div class="metric"><div class="tiny">Priority</div><div class="mv" id="detailPriority">High</div></div> <div class="metric"><div class="tiny">Estimated Value</div><div class="mv" id="detailValue">$500K – $5M</div></div> <div class="metric"><div class="tiny">Run Cost</div><div class="mv" id="detailCost">$20 – $150/mo</div></div> <div class="metric"><div class="tiny">Primary Path</div><div class="mv" id="detailPath">/simon/</div></div> <div class="metric"><div class="tiny">Depends On</div><div class="mv" id="detailDepends">api, data, web360, social</div></div> </div> <div class="detail-card" style="margin-top:12px"> <h3 style="margin-top:0">Capabilities</h3> <div class="caps" id="detailCapabilities"></div> </div> </div> </section> <section class="grid-2"> <div class="panel section"> <h3>System flow</h3> <div class="flow-list"> <?php foreach ($flow as $row): ?> <div class="flow-item"> <strong><?= e($row['from']) ?></strong><span class="flow-arrow">→</span><strong><?= e($row['to']) ?></strong> <div class="tiny" style="margin-top:8px;text-transform:none;letter-spacing:0;color:var(--muted)"><?= e($row['desc']) ?></div> </div> <?php endforeach; ?> </div> </div> <div class="panel section"> <h3>Priority task flow</h3> <div class="task-list"> <?php foreach ($nextTasks as $task): ?> <div class="task-item"><?= e($task) ?></div> <?php endforeach; ?> </div> </div> </section> <section class="panel section"> <div class="toolbar"> <div class="filters"> <button class="filter-btn active" data-filter="all" type="button">All</button> <button class="filter-btn" data-filter="Core Brain" type="button">Core</button> <button class="filter-btn" data-filter="Builder Engine" type="button">Builder</button> <button class="filter-btn" data-filter="Automation / Growth" type="button">Growth</button> <button class="filter-btn" data-filter="Integration Layer" type="button">API</button> <button class="filter-btn" data-filter="Storage Layer" type="button">Data</button> </div> <input class="search" id="moduleSearch" type="search" placeholder="Search modules, paths, or capabilities..."> </div> <div class="module-grid" id="moduleGrid"> <?php foreach ($modules as $module): ?> <article class="module-card" data-id="<?= e($module['id']) ?>" data-category="<?= e($module['category']) ?>" data-search="<?= e(strtolower($module['name'].' '.$module['category'].' '.$module['path'].' '.$module['purpose'].' '.implode(' ', $module['capabilities']).' '.implode(' ', $module['depends']))) ?>"> <h4><?= e($module['name']) ?></h4> <div class="module-meta"> <span class="badge"><span class="dot <?= e(status_class($module['status'])) ?>"></span><?= e($module['status']) ?></span> <span class="badge"><?= e($module['category']) ?></span> <span class="badge">Priority: <?= e($module['priority']) ?></span> <span class="badge">Path: <?= e($module['path']) ?></span> </div> <div class="progress"><span style="width:<?= (int)$module['percent'] ?>%"></span></div> <p><?= e($module['purpose']) ?></p> <div class="metric-grid" style="margin-bottom:12px"> <div class="metric"><div class="tiny">Value</div><div class="mv"><?= e($module['value']) ?></div></div> <div class="metric"><div class="tiny">Run Cost</div><div class="mv"><?= e($module['cost']) ?></div></div> </div> <div class="caps"><?php foreach ($module['capabilities'] as $cap): ?><span class="cap"><?= e($cap) ?></span><?php endforeach; ?></div> </article> <?php endforeach; ?> </div> </section> <section class="grid-3" style="margin-top:22px"> <div class="panel section"> <h3>Phase roadmap</h3> <div class="phase-list"> <?php foreach ($phases as $phase): ?> <div class="phase-card"> <strong><?= e($phase['phase']) ?> — <?= e($phase['title']) ?></strong> <div class="tiny" style="margin-top:8px">Status: <?= e($phase['status']) ?> • Duration: <?= e($phase['duration']) ?></div> <div style="margin-top:10px;color:var(--muted)"><?= e($phase['focus']) ?></div> </div> <?php endforeach; ?> </div> </div> <div class="panel section"> <h3>Critical gaps</h3> <div class="gap-list"> <?php foreach ($gaps as $gap): ?> <div class="gap-item"><?= e($gap) ?></div> <?php endforeach; ?> </div> </div> <div class="panel section"> <h3>Root folder structure</h3> <div class="folder-list"> <?php foreach ($rootFolders as $folder): ?> <div class="folder-card"><code><?= e($folder) ?></code></div> <?php endforeach; ?> </div> </div> </section> <section class="grid-2" style="margin-top:22px"> <div class="panel section"> <h3>Recommended file map</h3> <pre><?= e(implode("\n", $fileMap)) ?></pre> </div> <div class="panel section"> <h3>Recommended positioning</h3> <div class="detail-card"> <p style="margin:0">SIMON Intelligence is a modular command-and-control platform for digital assets, websites, automation, and business intelligence. It unifies project management, link tracking, workflow automation, forecasting, valuation, and memory into one evolving operational system.</p> </div> <div class="detail-card" style="margin-top:12px"> <h3 style="margin-top:0">Best immediate build order</h3> <div class="task-list"> <div class="task-item">1. Generator engine</div> <div class="task-item">2. Viewer + diagnostics</div> <div class="task-item">3. Checklist + security layer</div> <div class="task-item">4. Social registration bridge</div> <div class="task-item">5. Premium command-center UI</div> </div> </div> </div> </section> <div class="footer">SIMON Intelligence Master Console • Single-file PHP • Generated <?= e($dateGenerated) ?></div> </main> <script> const modules = <?= $moduleJson ?: '[]' ?>; const moduleMap = Object.fromEntries(modules.map(m => [m.id, m])); const nodes = document.querySelectorAll('.node'); const detail = { name: document.getElementById('detailName'), purpose: document.getElementById('detailPurpose'), category: document.getElementById('detailCategory'), status: document.getElementById('detailStatus'), percent: document.getElementById('detailPercent'), priority: document.getElementById('detailPriority'), value: document.getElementById('detailValue'), cost: document.getElementById('detailCost'), path: document.getElementById('detailPath'), depends: document.getElementById('detailDepends'), capabilities: document.getElementById('detailCapabilities') }; function escapeHtml(str){return String(str).replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll('"','"').replaceAll("'",''');} function setActiveNode(id){ nodes.forEach(n => n.classList.toggle('active', n.dataset.node === id)); const m = moduleMap[id]; if (!m) return; detail.name.textContent = m.name; detail.purpose.textContent = m.purpose; detail.category.textContent = m.category; detail.status.textContent = m.status; detail.percent.textContent = `${m.percent}%`; detail.priority.textContent = m.priority; detail.value.textContent = m.value; detail.cost.textContent = m.cost; detail.path.textContent = m.path; detail.depends.textContent = (m.depends || []).join(', '); detail.capabilities.innerHTML = (m.capabilities || []).map(c => `<span class="cap">${escapeHtml(c)}</span>`).join(''); } nodes.forEach(node => node.addEventListener('click', () => setActiveNode(node.dataset.node))); const cards = [...document.querySelectorAll('.module-card')]; const filterButtons = [...document.querySelectorAll('.filter-btn')]; const search = document.getElementById('moduleSearch'); let currentFilter = 'all'; function applyFilters(){ const q = (search.value || '').trim().toLowerCase(); cards.forEach(card => { const matchesFilter = currentFilter === 'all' || card.dataset.category === currentFilter; const matchesSearch = !q || card.dataset.search.includes(q); card.style.display = (matchesFilter && matchesSearch) ? '' : 'none'; }); } filterButtons.forEach(btn => btn.addEventListener('click', () => { filterButtons.forEach(b => b.classList.remove('active')); btn.classList.add('active'); currentFilter = btn.dataset.filter; applyFilters(); })); search.addEventListener('input', applyFilters); setActiveNode('simon'); </script> </body> </html>
Save file
Quick jump
open a path
Open