killer2 / web_debug /index.html
JackWPP's picture
feat: 添加Markdown报告功能,支持复制和下载操作,优化界面布局
4de2d46
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, viewport-fit=cover"
/>
<title>狼人杀调试控制台</title>
<link rel="stylesheet" href="./assets/styles.css" />
</head>
<body>
<div class="backdrop"></div>
<div class="orb orb-a"></div>
<div class="orb orb-b"></div>
<div class="orb orb-c"></div>
<div class="app">
<aside class="panel">
<div class="panel-header">
<div class="brand">
<span class="brand-mark">WW</span>
<div>
<div class="brand-title">调试控制台</div>
<div class="brand-sub">从日志实时读取对局</div>
</div>
</div>
<button id="refresh-btn" class="ghost-btn">刷新</button>
</div>
<div class="panel-body">
<div class="section-title">对局列表</div>
<div id="sessions" class="session-list"></div>
</div>
<div class="panel-footer">
<div class="status-pill" id="log-path">logs/</div>
</div>
</aside>
<main class="main">
<header class="main-header">
<div>
<div class="headline" id="session-title">请选择一个对局</div>
<div class="subhead" id="session-meta">尚未加载数据</div>
</div>
<div class="header-right">
<div class="header-actions">
<button id="copy-md-btn" class="ghost-btn">复制Markdown</button>
<button id="download-md-btn" class="ghost-btn">下载Markdown</button>
</div>
<div class="live-indicator">
<span class="dot"></span>
<span id="live-label">未开启</span>
</div>
</div>
</header>
<section class="cards">
<div class="card">
<div class="card-title">事件数</div>
<div class="card-value" id="stat-total">-</div>
<div class="card-foot">本对局已记录的总事件</div>
</div>
<div class="card">
<div class="card-title">输入/输出</div>
<div class="card-value" id="stat-io">-</div>
<div class="card-foot">perceive / interact</div>
</div>
<div class="card">
<div class="card-title">兜底次数</div>
<div class="card-value" id="stat-fallback">-</div>
<div class="card-foot">输出不合规触发的纠错/兜底</div>
</div>
<div class="card">
<div class="card-title">无效次数</div>
<div class="card-value" id="stat-roles">-</div>
<div class="card-foot">解析失败(例如不在候选列表)</div>
</div>
</section>
<section class="controls">
<div class="control">
<label for="search">搜索</label>
<input id="search" type="text" placeholder="按状态/角色/玩家名/结果/关键字过滤..." />
</div>
<div class="control">
<label>状态</label>
<div id="status-filters" class="chip-row"></div>
</div>
<div class="control">
<label>角色</label>
<div id="role-filters" class="chip-row"></div>
</div>
<div class="control">
<label>自动刷新</label>
<div class="toggle">
<input id="auto-refresh" type="checkbox" />
<span>5s</span>
</div>
</div>
</section>
<section class="dash">
<div class="dash-card">
<div class="section-title">对局关键</div>
<div id="game-key" class="dash-body"></div>
</div>
<div class="dash-card">
<div class="section-title">投票汇总</div>
<div id="vote-board" class="dash-body"></div>
</div>
<div class="dash-card">
<div class="section-title">技能过程</div>
<div id="skill-board" class="dash-body"></div>
</div>
<div class="dash-card">
<div class="section-title">记忆快照</div>
<div id="memory-board" class="dash-body"></div>
</div>
</section>
<section class="content">
<div class="timeline">
<div class="section-title">事件时间线</div>
<div id="events" class="event-list"></div>
</div>
<div class="detail">
<div class="section-title">事件详情</div>
<div id="detail-card" class="detail-card empty">
<div class="detail-empty">点击左侧事件查看详情(Prompt / 候选 / 纠错 / 记忆)。</div>
</div>
</div>
</section>
</main>
</div>
<script src="./assets/app.js"></script>
</body>
</html>