Files
mesh/agent/agent-ui/index.html
Gilles Soulier 1d177e96a6 first
2026-01-05 13:20:54 +01:00

92 lines
2.5 KiB
HTML

<!--
Created by: Codex
Date: 2026-01-05
Purpose: Mesh Agent UI shell
Refs: CLAUDE.md
-->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Mesh Agent</title>
<link rel="stylesheet" href="/src/styles.css" />
</head>
<body>
<div id="app">
<header class="topbar">
<div>
<p class="eyebrow">Mesh</p>
<h1>Agent Control</h1>
<p class="subtitle">Desktop UI for the P2P data plane</p>
</div>
<div class="status" id="status-badge">Stopped</div>
</header>
<section class="grid">
<div class="card">
<h2>Status</h2>
<p class="label">State</p>
<p class="value" id="status-text">Stopped</p>
<p class="label">Last error</p>
<p class="value muted" id="error-text">None</p>
<div class="actions">
<button id="start-btn">Start Agent</button>
<button class="ghost" id="stop-btn">Stop Agent</button>
</div>
</div>
<div class="card">
<h2>Config</h2>
<form id="config-form">
<label>
Device ID
<input name="device_id" type="text" />
</label>
<label>
Server URL
<input name="server_url" type="text" />
</label>
<label>
WS URL
<input name="ws_url" type="text" />
</label>
<label>
Auth Token
<input name="auth_token" type="password" />
</label>
<label>
QUIC Port
<input name="quic_port" type="number" min="0" />
</label>
<label>
Log Level
<input name="log_level" type="text" />
</label>
<label>
Gotify URL
<input name="gotify_url" type="text" />
</label>
<label>
Gotify Token
<input name="gotify_token" type="password" />
</label>
<div class="actions">
<button type="button" class="ghost" id="reload-btn">Reload</button>
<button type="submit" id="save-btn">Save</button>
</div>
</form>
</div>
</section>
<footer class="footer">
<p>Agent runs inside this UI process. Close the app to stop it.</p>
</footer>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>