137 lines
4.1 KiB
HTML
137 lines
4.1 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>HWLAB DEV MVP Gate</title>
|
|
<link rel="stylesheet" href="./styles.css" />
|
|
<script type="module" src="./app.mjs"></script>
|
|
</head>
|
|
<body>
|
|
<main class="shell">
|
|
<header class="topbar">
|
|
<div>
|
|
<p class="eyebrow">HWLAB L6 Frontend / CLI MVP</p>
|
|
<h1>DEV MVP Gate</h1>
|
|
</div>
|
|
<div class="status" id="status"></div>
|
|
</header>
|
|
|
|
<section class="panel compact">
|
|
<div class="panel-head">
|
|
<h2>Acceptance Source</h2>
|
|
<p>Contract-driven view of the checked-in M0-M5 gate report and M5 dry-run plan.</p>
|
|
</div>
|
|
<div class="metrics six" id="meta-grid"></div>
|
|
</section>
|
|
|
|
<section class="panel compact">
|
|
<div class="panel-head">
|
|
<h2>M0-M5 Gates</h2>
|
|
<p>Local contract and dry-run status. Live DEV remains separate from fixture evidence.</p>
|
|
</div>
|
|
<div class="milestones" id="milestone-grid"></div>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<div class="panel-head">
|
|
<h2>DEV Health Contract</h2>
|
|
<p>Read from the M5 gate fixture; live health is not claimed while blockers are open.</p>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Component</th>
|
|
<th>Service</th>
|
|
<th>Status</th>
|
|
<th>Observed</th>
|
|
<th>Endpoint</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="health-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<div class="panel-head">
|
|
<h2>Artifact / Deploy Commit</h2>
|
|
<p>Artifact identity fields required by the MVP DoD.</p>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>Commit</th>
|
|
<th>Image</th>
|
|
<th>Digest</th>
|
|
<th>Health timestamp</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="artifact-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="split">
|
|
<section class="panel compact">
|
|
<div class="panel-head">
|
|
<h2>2 Box / 2 Gateway / Patch Panel</h2>
|
|
<p>Topology contract for the hardware trusted loop.</p>
|
|
</div>
|
|
<div class="metrics two" id="topology-grid"></div>
|
|
</section>
|
|
|
|
<section class="panel compact">
|
|
<div class="panel-head">
|
|
<h2>Agent Session Evidence</h2>
|
|
<p>Agent and worker session IDs tied to trace, audit, evidence, and cleanup.</p>
|
|
</div>
|
|
<div class="metrics two" id="agent-grid"></div>
|
|
</section>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<div class="panel-head">
|
|
<h2>Evidence Records</h2>
|
|
<p>Direct and agent hardware operations remain fixture-bound until live DEV blockers clear.</p>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Evidence</th>
|
|
<th>Operation</th>
|
|
<th>Service</th>
|
|
<th>URI</th>
|
|
<th>SHA-256</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="evidence-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="split">
|
|
<section class="panel compact danger">
|
|
<div class="panel-head">
|
|
<h2>Blocked Evidence</h2>
|
|
<p>Open blocker evidence that prevents live DEV acceptance.</p>
|
|
</div>
|
|
<ul class="blockers" id="blocker-list"></ul>
|
|
</section>
|
|
|
|
<section class="panel compact">
|
|
<div class="panel-head">
|
|
<h2>Operator Commands</h2>
|
|
<p>Safe CLI entry points for manual acceptance.</p>
|
|
</div>
|
|
<ol class="commands" id="command-list"></ol>
|
|
</section>
|
|
</section>
|
|
</main>
|
|
</body>
|
|
</html>
|