import{j as e,bX as n,f as r,R as l,bF as c,cb as o,h as p,S as d,fK as h,gC as m,gD as u}from"./index-C4inJ1rU.js";import{P as x,a as g,B as b,C as a}from"./PageLayout-CdGXajgM.js";import{R as i,C as s}from"./Grid-rJkrpDAP.js";import{B as y}from"./book-open-CJXrRE3C.js";import{T as j}from"./terminal-DBN8OPLd.js";import{W as f}from"./wrench-d23m0Iuc.js";const v=[{title:"Dashboard",to:"/",icon:l,text:"Live Repeater status, packet counters, airtime, and link health."},{title:"Contacts / Neighbors",to:"/contacts",icon:c,text:"Map, topology, zero-hop contacts, wardriving overlays, and path analysis."},{title:"Packet Observatory",to:"/raw",icon:o,text:"Developer view for the packet pipeline, parsing, decryption, and disambiguation stages."},{title:"Terminal",to:"/terminal",icon:j,text:"Browser CLI for supported Repeater and MeshCore operations."},{title:"Configuration",to:"/configuration",icon:f,text:"Radio, repeater, transport keys, web frontend, API tokens, updates, and Console settings."},{title:"Radio Hardware",to:"/radio-hardware",icon:p,text:"Read-only current hardware, serial ports, and board presets from the backend."},{title:"Policy Engine",to:"/policy-engine",icon:d,text:"Policy groups and entries without editing raw JSON."},{title:"Database",to:"/database",icon:o,text:"Database stats plus guarded vacuum and purge actions."},{title:"Memory Debug",to:"/memory",icon:h,text:"Process memory, GC, and top allocation diagnostics."},{title:"Backup / Restore",to:"/backup",icon:m,text:"Settings export, full backup, import, and identity key export with secret warnings."}];function H(){return e.jsxs(x,{children:[e.jsx(g,{title:"Help",icon:e.jsx(n,{}),subtitle:e.jsx("p",{className:"type-body-sm text-fg-muted",children:"openHop Console keeps the advanced React dashboard while adding current Repeater route/API coverage additively."})}),e.jsxs(b,{ready:!0,children:[e.jsxs(i,{template:"auto",children:[e.jsx(s,{span:"full",lg:7,children:e.jsxs(a,{neomorphic:!0,children:[e.jsx(r,{icon:e.jsx(y,{}),title:"What is openHop Console?"}),e.jsxs("div",{className:"space-y-3 type-body-sm text-fg-muted",children:[e.jsx("p",{children:"openHop Console is a local web dashboard served by the Repeater web server. It preserves Console-only features such as WebUI Companion, Contacts topology, MeshGraph, Packet Observatory, packet pipeline workers, and external source tooling."}),e.jsx("p",{children:"Compatibility identifiers remain where the running backend expects them, including /opt/pymc_console/web/html, /api/check_pymc_console, pymc_usb, pymc_tcp, protocol fields, and local storage migration keys."}),e.jsx("p",{children:"Current openHop Repeater service references use /opt/openhop_repeater, /etc/openhop_repeater, /var/lib/openhop_repeater, /var/log/openhop_repeater, and openhop-repeater.service."})]})]})}),e.jsx(s,{span:"full",lg:5,children:e.jsxs(a,{neomorphic:!0,children:[e.jsx(r,{title:"New Repeater Parity Routes"}),e.jsxs("ul",{className:"space-y-2 type-body-sm text-fg-muted",children:[e.jsx("li",{children:"/setup — first-run setup wizard shell"}),e.jsx("li",{children:"/gps — GPS diagnostics and live stream"}),e.jsx("li",{children:"/configuration — Console configuration hub"}),e.jsx("li",{children:"/radio-hardware — radio hardware, serial ports, and board presets"}),e.jsx("li",{children:"/observer — Observer identity and MQTT broker management"}),e.jsx("li",{children:"/policy-engine — policy groups and entries"}),e.jsx("li",{children:"/database — database stats, vacuum, and guarded purge"}),e.jsx("li",{children:"/memory — memory diagnostics"}),e.jsx("li",{children:"/backup — export/import/restore tools"}),e.jsx("li",{children:"/sensors — generic Sensor Readings"}),e.jsx("li",{children:"/cad-calibration — CAD calibration workflow"}),e.jsx("li",{children:"/rf-health-correlation — RF activity/error correlation"}),e.jsx("li",{children:"/neighbors, /system-stats, /room-servers, /companions, /gps-diagnostics, /rf-health, /cad, /observers, /mqtt-management — compatibility aliases"})]})]})})]}),e.jsx(i,{template:"auto",children:v.map(t=>e.jsx(s,{span:"full",md:6,lg:4,children:e.jsx(u,{to:t.to,className:"block h-full",children:e.jsx(a,{compact:!0,className:"h-full hover:bg-elevated transition-base",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(t.icon,{className:"w-5 h-5 text-sys-blue mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"type-body text-fg-primary",children:t.title}),e.jsx("p",{className:"type-body-sm text-fg-muted mt-1",children:t.text})]})]})})})},t.to))})]})]})}export{H as default};
