Files
oikos/web/dist/assets/Signals-C_6d4rqi.js
dtoro d4d99a7473
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled
feat: Phase 1 — extract the client (web SPA + desktop) to dtoro/oikos-web
Problem: the hexagonal refactor churns the backend tree for nine more
phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper,
compose/web image) must move to its own repo first so doc/layout
rewrites land once on a backend-only tree.

Change:
- New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/
  (updateURL repointed to oikos-web releases), compose/, own CI (web +
  desktop jobs), own deploy script (CI-green gate, TOCTOU guard,
  version-tagged images, prune-to-3), own webhook receiver on :9798 +
  launchd unit, own compose project publishing the same 8091:80.
- Cutover executed on mac-mini in order: oikos stack's web service
  stopped+removed, oikos-web project brought up on 8091; outer Caddy
  untouched (targets the published port) — serving + Authentik flow +
  /wails 404 quirk verified post-cutover.
- Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI
  workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install
  targets, the compose web service, oikos-web from deploy.sh's fallback
  prune list; wails + go-keyring dropped from go.mod, vendor synced.
- README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now
  point at the new repo; mbse + mascot design docs carry a path note.

Risk: production SPA serving depends on the new pipeline now; rollback
is versioned-image re-up of the old web service from a pre-split
checkout (port 8091). Desktop builds installed before the split still
check dtoro/oikos releases — one manual reinstall, noted in the
oikos-web release notes.

Verification: go vet, make test (race), make generate-check, golangci
(no new findings; baseline down 400→365); post-cutover curls —
localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
2026-08-15 22:27:52 +02:00

2 lines
5.6 KiB
JavaScript

import{p as ie,W as xe,R as ue,s as l,B as N,a8 as f,a as s,g as a,b as de,c as Z,u as k,f as M,y as Q,a6 as we,o as be,af as ye,a7 as r,z as ke,m as Pe,D as y,aD as Se,v as pe,j as O,t as le,aE as Ae,aB as D,aF as Te,aG as De,w as Me,e as ne,ab as Re}from"./index-B5w8gw75.js";import{T as Ee,a as V,b as X,c as We}from"./tabs-trigger-iqr7CeDz.js";import{S as ze,a as Be,b as L,c as je}from"./select-trigger-BFw7c3mx.js";import{D as Y}from"./DataTable-B-TAV_HV.js";import"./hidden-input-CbX2doyK.js";import"./on-mount-effect.svelte-Lpx0iWhb.js";import"./clone-bSRBQ4eT.js";import"./StatusBadgeRenderer-BEdJTFrn.js";var Ce=M('<div class="flex justify-end gap-2"><!> <!> <!></div>');function Oe(U,t){ie(t,!0);let R=xe(t,"acting",3,null);var F=Ce(),I=Z(F);{var P=n=>{{let o=k(()=>R()===t.row.id);N(n,{size:"sm",variant:"outline",get disabled(){return a(o)},onclick:()=>{var b;return(b=t.onAck)==null?void 0:b.call(t,t.row.id)},children:(b,S)=>{var E=f("Ack");s(b,E)},$$slots:{default:!0}})}};ue(I,n=>{t.row.state==="raised"&&n(P)})}var _=l(I,2);{let n=k(()=>R()===t.row.id);N(_,{size:"sm",variant:"outline",get disabled(){return a(n)},onclick:()=>{var o;return(o=t.onMute)==null?void 0:o.call(t,t.row.id)},children:(o,b)=>{var S=f("Mute 1h");s(o,S)},$$slots:{default:!0}})}var m=l(_,2);{let n=k(()=>R()===t.row.id);N(m,{size:"sm",get disabled(){return a(n)},onclick:()=>{var o;return(o=t.onResolve)==null?void 0:o.call(t,t.row.id)},children:(o,b)=>{var S=f("Resolve");s(o,S)},$$slots:{default:!0}})}s(U,F),de()}var oe=M("<!> <!> <!> <!>",1),Fe=M("<!> <!>",1),Ie=M("Open <!>",1),Ge=M("<!> <!> <!>",1),Ke=M('<div class="flex h-full flex-col gap-4 p-2"><div class="flex items-center justify-between"><h1 class="text-lg font-semibold">Signals</h1> <!></div> <!></div>');function Ye(U,t){ie(t,!0);const R=()=>ke(Me,"$liveEvents",F),[F,I]=Pe();let P=Q(we([])),_=Q("all"),m=Q(null);async function n(){y(P,await Se(),!0)}be(()=>(n(),pe())),ye(()=>{const e=R()[0];!e||!e.type.startsWith("signal.")||n()});async function o(e){y(m,e,!0);const i=await De(e);y(m,null),i?(D.success("Signal acknowledged"),n()):D.error("Acknowledge failed")}async function b(e){y(m,e,!0);const i=await Ae(e);y(m,null),i?(D.success("Signal resolved"),n()):D.error("Resolve failed")}async function S(e){y(m,e,!0);const i=new Date(Date.now()+3600*1e3).toISOString(),g=await Te(e,i);y(m,null),g?(D.success("Signal muted for 1h"),n()):D.error("Mute failed")}function E(e){return a(_)==="all"?e:e.filter(i=>i.severity===a(_))}const q=k(()=>E(a(P).filter(e=>["raised","acknowledged","acting"].includes(e.state)))),ce=k(()=>E(a(P).filter(e=>e.state==="muted"))),ve=k(()=>E(a(P).filter(e=>["resolved","failed"].includes(e.state))));function ee(e,i){const g=[{key:"target",header:"Target",class:"font-mono text-xs",width:"180px",accessor:H=>H.target??"—",truncate:!0},{key:"kind",header:"Kind",width:"120px"},{key:"severity",header:"Severity",render:"status-badge",renderProps:{kind:"severity"},width:"100px"},{key:"state",header:"State",render:"status-badge",renderProps:{kind:"state"},width:"110px"},{key:"occurrence_count",header:"Occurrences",width:"100px",align:"right"},{key:"last_seen_at",header:"Last seen",render:"date",width:"170px"}];return e&&g.push({key:"_actions",header:"",render:Oe,renderProps:{acting:i,onAck:o,onMute:S,onResolve:b},align:"right",headerClass:"text-right",width:"220px"}),g}const te=k(()=>ee(!0,a(m))),fe=ee(!1,null);var ae=Ke(),se=Z(ae),ge=l(Z(se),2);r(ge,()=>je,(e,i)=>{i(e,{type:"single",get value(){return a(_)},set value(g){y(_,g,!0)},children:(g,H)=>{var W=Fe(),z=O(W);r(z,()=>ze,(p,B)=>{B(p,{class:"w-40",children:(v,$)=>{var u=f();le(()=>ne(u,a(_)==="all"?"All severities":a(_))),s(v,u)},$$slots:{default:!0}})});var G=l(z,2);r(G,()=>Be,(p,B)=>{B(p,{children:(v,$)=>{var u=oe(),A=O(u);r(A,()=>L,(x,d)=>{d(x,{value:"all",children:(c,w)=>{var h=f("All severities");s(c,h)},$$slots:{default:!0}})});var j=l(A,2);r(j,()=>L,(x,d)=>{d(x,{value:"critical",children:(c,w)=>{var h=f("Critical");s(c,h)},$$slots:{default:!0}})});var C=l(j,2);r(C,()=>L,(x,d)=>{d(x,{value:"warning",children:(c,w)=>{var h=f("Warning");s(c,h)},$$slots:{default:!0}})});var K=l(C,2);r(K,()=>L,(x,d)=>{d(x,{value:"info",children:(c,w)=>{var h=f("Info");s(c,h)},$$slots:{default:!0}})}),s(v,u)},$$slots:{default:!0}})}),s(g,W)},$$slots:{default:!0}})});var he=l(se,2);r(he,()=>We,(e,i)=>{i(e,{value:"open",class:"flex flex-1 flex-col overflow-hidden",children:(g,H)=>{var W=oe(),z=O(W);r(z,()=>Ee,(v,$)=>{$(v,{children:(u,A)=>{var j=Ge(),C=O(j);r(C,()=>V,(d,c)=>{c(d,{value:"open",children:(w,h)=>{var T=Ie(),_e=l(O(T));{var me=J=>{Re(J,{variant:"destructive",class:"ml-1",children:($e,Le)=>{var re=f();le(()=>ne(re,a(q).length)),s($e,re)},$$slots:{default:!0}})};ue(_e,J=>{a(q).length&&J(me)})}s(w,T)},$$slots:{default:!0}})});var K=l(C,2);r(K,()=>V,(d,c)=>{c(d,{value:"muted",children:(w,h)=>{var T=f("Muted");s(w,T)},$$slots:{default:!0}})});var x=l(K,2);r(x,()=>V,(d,c)=>{c(d,{value:"resolved",children:(w,h)=>{var T=f("Resolved");s(w,T)},$$slots:{default:!0}})}),s(u,j)},$$slots:{default:!0}})});var G=l(z,2);r(G,()=>X,(v,$)=>{$(v,{value:"open",class:"flex-1 overflow-auto",children:(u,A)=>{Y(u,{get columns(){return a(te)},get data(){return a(q)}})},$$slots:{default:!0}})});var p=l(G,2);r(p,()=>X,(v,$)=>{$(v,{value:"muted",class:"flex-1 overflow-auto",children:(u,A)=>{Y(u,{get columns(){return a(te)},get data(){return a(ce)}})},$$slots:{default:!0}})});var B=l(p,2);r(B,()=>X,(v,$)=>{$(v,{value:"resolved",class:"flex-1 overflow-auto",children:(u,A)=>{Y(u,{get columns(){return fe},get data(){return a(ve)}})},$$slots:{default:!0}})}),s(g,W)},$$slots:{default:!0}})}),s(U,ae),de(),I()}export{Ye as default};