guanghulab/ops-agent/web/index.html
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

121 lines
4.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>🛡️ 铸渊运维守卫 · 运维面板 v2.0</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- ─── 顶栏 ─── -->
<header class="header">
<div class="header-left">
<span class="logo">🛡️</span>
<h1>铸渊运维守卫</h1>
<span class="version">v2.0</span>
</div>
<div class="header-right">
<span class="status-dot" id="connectionDot"></span>
<span class="status-text" id="connectionText">连接中...</span>
</div>
</header>
<!-- ─── 统计卡片 ─── -->
<section class="stats-grid">
<div class="stat-card">
<div class="stat-value" id="statChecks">0</div>
<div class="stat-label">总巡检</div>
</div>
<div class="stat-card">
<div class="stat-value" id="statRepairs">0</div>
<div class="stat-label">自动修复</div>
</div>
<div class="stat-card stat-warning">
<div class="stat-value" id="statOpenTickets">0</div>
<div class="stat-label">开放工单</div>
</div>
<div class="stat-card">
<div class="stat-value" id="statChats">0</div>
<div class="stat-label">对话次数</div>
</div>
</section>
<!-- ─── 主内容 ─── -->
<main class="main-grid">
<!-- 左: 对话面板 -->
<section class="chat-panel">
<div class="panel-header">
<h2>💬 运维对话</h2>
<div class="chat-controls">
<span class="session-info" id="sessionInfo" title="多轮对话,我记得上下文">🧠 多轮对话</span>
<button class="btn-small" id="btnNewSession" title="开始新对话">🔄 新会话</button>
<button class="btn-small" id="btnClearChat">清空</button>
</div>
</div>
<div class="chat-messages" id="chatMessages">
<div class="chat-msg system">
<p>🛡️ 你好,冰朔。我是铸渊运维守卫 v2.0。</p>
<p>我现在能<strong>记住我们的对话上下文</strong>,你可以追问。</p>
<p>问我问题时,我会<strong>自动执行相关检查</strong>再回答你。比如:</p>
<ul>
<li>"为什么MCP连不上" → 我会自动检查端口和日志</li>
<li>"服务器内存够用吗?" → 我会自动查看系统资源</li>
<li>"GLADA最近报什么错" → 我会自动查看GLADA日志</li>
<li>"刚才说的第二步怎么做?" → 我记得上次的回答</li>
</ul>
</div>
</div>
<div class="chat-input-area">
<input type="text" id="chatInput" placeholder="输入你的问题...(我会自动执行诊断)" autocomplete="off">
<button class="btn-primary" id="btnSend">发送</button>
</div>
</section>
<!-- 右: 工单 + 系统信息 -->
<section class="right-panel">
<!-- 工单列表 -->
<div class="tickets-panel">
<div class="panel-header">
<h2>🎫 运维工单</h2>
<div class="ticket-filters">
<button class="btn-filter active" data-filter="open">开放</button>
<button class="btn-filter" data-filter="all">全部</button>
</div>
</div>
<div class="tickets-list" id="ticketsList">
<div class="empty-state">暂无工单 · 系统运行正常</div>
</div>
</div>
<!-- 系统信息面板 -->
<div class="system-info-panel" id="systemInfoPanel">
<div class="panel-header">
<h2>💻 系统信息</h2>
<button class="btn-small" id="btnRefreshSysInfo">刷新</button>
</div>
<div class="sysinfo-content" id="sysinfoContent">
<div class="empty-state">加载中...</div>
</div>
</div>
</section>
</main>
<!-- ─── 操作栏 ─── -->
<section class="action-bar">
<button class="btn-action" id="btnQuickCheck">⚡ 快速巡检</button>
<button class="btn-action" id="btnDeepCheck">🔍 深度巡检</button>
<span class="last-check" id="lastCheckTime">上次巡检: --</span>
</section>
<!-- ─── 实时事件流 ─── -->
<section class="events-panel">
<div class="panel-header">
<h2>📡 实时事件</h2>
</div>
<div class="events-list" id="eventsList"></div>
</section>
<script src="app.js"></script>
</body>
</html>