1import{u as p,j as e}from"./index-CTxC1O8w.js";import{S as f}from"./seo-head-p1dT0wrP.js";import{C as d}from"./circle-alert-DOmhCbSg.js";import{C as g}from"./circle-check-CNUL7hIy.js";import{C as j}from"./circle-x-Dx8TA0pm.js";import{C as v}from"./clock-B2kCExuf.js";import"./index-W5eLmp8z.js";const b={api_health:"API health",home:"Homepage",agent_scan:"Agent Scan",trust_atlas:"Agent Directory",trust_methodology:"Trust Methodology",pricing:"Certification Pathways",provider_openai:"AI scoring provider",provider_stripe:"Payments provider"};function c({status:t}){return t==="ok"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-emerald-700 text-sm",children:[e.jsx(g,{className:"w-4 h-4"})," Operational"]}):t==="degraded"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-amber-700 text-sm",children:[e.jsx(d,{className:"w-4 h-4"})," Degraded"]}):t==="down"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-rose-700 text-sm",children:[e.jsx(j,{className:"w-4 h-4"})," Down"]}):e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-slate-500 text-sm",children:[e.jsx(v,{className:"w-4 h-4"})," No data yet"]})}function l(t){return t.uptime===null?"n/a":`${(t.uptime*100).toFixed(2)}%`}function B(){const{data:t,isLoading:o}=p({queryKey:["/api/status"],refetchInterval:6e4}),r=(t==null?void 0:t.probes)??[],a=r.length===0?"unknown":r.every(s=>s.currentStatus==="ok")?"ok":r.some(s=>s.currentStatus==="down")?"down":"degraded",i=r.find(s=>s.name==="provider_openai"),m=i?i.recent.slice(-5).filter(s=>s.status!=="ok").length:0,x=!!i&&i.currentStatus!=="ok"&&m>=5;return e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx(f,{title:"System Status",description:"Live uptime and latency for Protum's public surfaces. Synthetic probes run every 60 seconds.",path:"/status"}),e.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-12",children:[e.jsxs("div",{className:"mb-2 text-xs font-mono uppercase tracking-wider text-[#2563EB]",children:[e.jsx("span",{className:"inline-block w-10 h-px bg-[#2563EB] align-middle mr-2"}),"System Status"]}),e.jsx("h1",{className:"font-display text-3xl md:text-4xl font-bold text-[#1E293B] mb-3",children:"Protum status"}),e.jsx("p",{className:"text-slate-600 mb-8 max-w-2xl",children:"Synthetic probes run from inside our infrastructure every 60 seconds. Numbers reflect what those probes saw, not third-party uptime data."}),e.jsx("div",{className:"border border-slate-200 rounded-sm p-5 mb-8 bg-slate-50",children:e.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs uppercase tracking-wider text-slate-500 font-mono mb-1",children:"Overall"}),e.jsxs("div",{className:"text-xl font-semibold text-[#1E293B]",children:[a==="ok"&&"All systems operational",a==="degraded"&&"Partial degradation",a==="down"&&"Active incident",a==="unknown"&&"Awaiting first probe data"]})]}),e.jsx(c,{status:a==="unknown"?"unknown":a})]})}),x&&e.jsxs("div",{className:"border border-amber-200 bg-amber-50 rounded-sm p-4 mb-8 flex items-start gap-3","data-testid":"banner-openai-degraded",children:[e.jsx(d,{className:"w-5 h-5 text-amber-700 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-amber-900",children:[e.jsx("div",{className:"font-semibold mb-1",children:"AI scoring temporarily degraded"}),e.jsx("div",{children:"Our AI scoring provider is reporting elevated errors. New agent scans may be slower than usual or fail to complete. Existing scan results, the public Agent Directory, and all other surfaces are unaffected."})]})]}),o&&e.jsx("div",{className:"text-slate-500",children:"Loading statusâ¦"}),e.jsx("div",{className:"space-y-4",children:r.map(s=>e.jsxs("div",{className:"border border-slate-200 rounded-sm p-5",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3 flex-wrap gap-2",children:[e.jsx("div",{className:"font-semibold text-[#1E293B]",children:b[s.name]??s.name}),e.jsx(c,{status:s.currentStatus})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4 text-sm mb-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-slate-500 uppercase font-mono",children:"24h uptime"}),e.jsx("div",{className:"text-[#1E293B] font-medium",children:l(s.uptime24h)}),e.jsxs("div",{className:"text-xs text-slate-400",children:[s.uptime24h.samples," checks"]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-slate-500 uppercase font-mono",children:"7d uptime"}),e.jsx("div",{className:"text-[#1E293B] font-medium",children:l(s.uptime7d)}),e.jsxs("div",{className:"text-xs text-slate-400",children:[s.uptime7d.samples," checks"]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-slate-500 uppercase font-mono",children:"90d uptime"}),e.jsx("div",{className:"text-[#1E293B] font-medium",children:l(s.uptime90d)}),e.jsxs("div",{className:"text-xs text-slate-400",children:[s.uptime90d.samples," checks"]})]})]}),s.recent.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"text-xs text-slate-500 uppercase font-mono mb-1",children:["Last ",s.recent.length," checks"]}),e.jsx("div",{className:"flex gap-0.5 items-end h-8",children:s.recent.map((n,u)=>{const h=n.status==="ok"?"bg-emerald-500":n.status==="degraded"?"bg-amber-500":"bg-rose-500";return e.jsx("div",{className:`flex-1 ${h} opacity-80 hover:opacity-100`,title:`${new Date(n.t).toLocaleStr
1ing()} · ${n.status} (${n.latencyMs}ms)`,style:{height:"100%"}},u)})})]}),s.lastCheckedAt&&e.jsxs("div",{className:"text-xs text-slate-400 mt-3 font-mono",children:["Last checked ",new Date(s.lastCheckedAt).toLocaleString()]})]},s.name))}),e.jsx("div",{className:"mt-10 text-xs text-slate-400 font-mono",children:"Data source: in-cluster synthetic probes. We do not currently use a third-party uptime service."})]})]})}export{B as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.