diff --git a/dashboard/src/main.tsx b/dashboard/src/main.tsx index 2a365fe..de04ed3 100644 --- a/dashboard/src/main.tsx +++ b/dashboard/src/main.tsx @@ -602,7 +602,7 @@ function App() { -
+
processes.refetch()} />}> {processes.error ? : null} diff --git a/docs/screenshots/issue-39/process-alerts-desktop.png b/docs/screenshots/issue-39/process-alerts-desktop.png new file mode 100644 index 0000000..8820041 Binary files /dev/null and b/docs/screenshots/issue-39/process-alerts-desktop.png differ diff --git a/docs/screenshots/issue-39/process-alerts-mobile.png b/docs/screenshots/issue-39/process-alerts-mobile.png new file mode 100644 index 0000000..09e83d9 Binary files /dev/null and b/docs/screenshots/issue-39/process-alerts-mobile.png differ diff --git a/src/github_agent_bridge/dashboard_static/assets/index-C9QNToVa.js b/src/github_agent_bridge/dashboard_static/assets/index-C25QDM5A.js similarity index 72% rename from src/github_agent_bridge/dashboard_static/assets/index-C9QNToVa.js rename to src/github_agent_bridge/dashboard_static/assets/index-C25QDM5A.js index a5407a6..988b143 100644 --- a/src/github_agent_bridge/dashboard_static/assets/index-C9QNToVa.js +++ b/src/github_agent_bridge/dashboard_static/assets/index-C25QDM5A.js @@ -107,4 +107,4 @@ var ys=e=>{throw TypeError(e)};var Lt=(e,t,s)=>t.has(e)||ys("Cannot "+s);var a=( * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const qn=z("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),hs="-",Qn=e=>{const t=Un(e),{conflictingClassGroups:s,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:c=>{const l=c.split(hs);return l[0]===""&&l.length!==1&&l.shift(),xr(l,t)||$n(c)},getConflictingClassGroupIds:(c,l)=>{const d=s[c]||[];return l&&r[c]?[...d,...r[c]]:d}}},xr=(e,t)=>{var c;if(e.length===0)return t.classGroupId;const s=e[0],r=t.nextPart.get(s),i=r?xr(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(hs);return(c=t.validators.find(({validator:l})=>l(o)))==null?void 0:c.classGroupId},Ts=/^\[(.+)\]$/,$n=e=>{if(Ts.test(e)){const t=Ts.exec(e)[1],s=t==null?void 0:t.substring(0,t.indexOf(":"));if(s)return"arbitrary.."+s}},Un=e=>{const{theme:t,prefix:s}=e,r={nextPart:new Map,validators:[]};return Kn(Object.entries(e.classGroups),s).forEach(([o,c])=>{ts(c,r,o,t)}),r},ts=(e,t,s,r)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:As(t,i);o.classGroupId=s;return}if(typeof i=="function"){if(zn(i)){ts(i(r),t,s,r);return}t.validators.push({validator:i,classGroupId:s});return}Object.entries(i).forEach(([o,c])=>{ts(c,As(t,o),s,r)})})},As=(e,t)=>{let s=e;return t.split(hs).forEach(r=>{s.nextPart.has(r)||s.nextPart.set(r,{nextPart:new Map,validators:[]}),s=s.nextPart.get(r)}),s},zn=e=>e.isThemeGetter,Kn=(e,t)=>t?e.map(([s,r])=>{const i=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([c,l])=>[t+c,l])):o);return[s,i]}):e,Gn=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,s=new Map,r=new Map;const i=(o,c)=>{s.set(o,c),t++,t>e&&(t=0,r=s,s=new Map)};return{get(o){let c=s.get(o);if(c!==void 0)return c;if((c=r.get(o))!==void 0)return i(o,c),c},set(o,c){s.has(o)?s.set(o,c):i(o,c)}}},gr="!",Bn=e=>{const{separator:t,experimentalParseClassName:s}=e,r=t.length===1,i=t[0],o=t.length,c=l=>{const d=[];let u=0,h=0,y;for(let g=0;gh?y-h:void 0;return{modifiers:d,hasImportantModifier:b,baseClassName:x,maybePostfixModifierPosition:p}};return s?l=>s({className:l,parseClassName:c}):c},Hn=e=>{if(e.length<=1)return e;const t=[];let s=[];return e.forEach(r=>{r[0]==="["?(t.push(...s.sort(),r),s=[]):s.push(r)}),t.push(...s.sort()),t},Jn=e=>({cache:Gn(e.cacheSize),parseClassName:Bn(e),...Qn(e)}),Wn=/\s+/,Vn=(e,t)=>{const{parseClassName:s,getClassGroupId:r,getConflictingClassGroupIds:i}=t,o=[],c=e.trim().split(Wn);let l="";for(let d=c.length-1;d>=0;d-=1){const u=c[d],{modifiers:h,hasImportantModifier:y,baseClassName:j,maybePostfixModifierPosition:b}=s(u);let x=!!b,p=r(x?j.substring(0,b):j);if(!p){if(!x){l=u+(l.length>0?" "+l:l);continue}if(p=r(j),!p){l=u+(l.length>0?" "+l:l);continue}x=!1}const g=Hn(h).join(":"),m=y?g+gr:g,k=m+p;if(o.includes(k))continue;o.push(k);const _=i(p,x);for(let v=0;v<_.length;++v){const O=_[v];o.push(m+O)}l=u+(l.length>0?" "+l:l)}return l};function Xn(){let e=0,t,s,r="";for(;e{if(typeof e=="string")return e;let t,s="";for(let r=0;ry(h),e());return s=Jn(u),r=s.cache.get,i=s.cache.set,o=l,l(d)}function l(d){const u=r(d);if(u)return u;const h=Vn(d,s);return i(d,h),h}return function(){return o(Xn.apply(null,arguments))}}const E=e=>{const t=s=>s[e]||[];return t.isThemeGetter=!0,t},yr=/^\[(?:([a-z-]+):)?(.+)\]$/i,Yn=/^\d+\/\d+$/,ei=new Set(["px","full","screen"]),ti=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,si=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ri=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ni=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ii=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ue=e=>He(e)||ei.has(e)||Yn.test(e),be=e=>ot(e,"length",fi),He=e=>!!e&&!Number.isNaN(Number(e)),qt=e=>ot(e,"number",He),ut=e=>!!e&&Number.isInteger(Number(e)),ai=e=>e.endsWith("%")&&He(e.slice(0,-1)),N=e=>yr.test(e),ye=e=>ti.test(e),oi=new Set(["length","size","percentage"]),li=e=>ot(e,oi,vr),ci=e=>ot(e,"position",vr),di=new Set(["image","url"]),ui=e=>ot(e,di,pi),hi=e=>ot(e,"",mi),ht=()=>!0,ot=(e,t,s)=>{const r=yr.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):s(r[2]):!1},fi=e=>si.test(e)&&!ri.test(e),vr=()=>!1,mi=e=>ni.test(e),pi=e=>ii.test(e),xi=()=>{const e=E("colors"),t=E("spacing"),s=E("blur"),r=E("brightness"),i=E("borderColor"),o=E("borderRadius"),c=E("borderSpacing"),l=E("borderWidth"),d=E("contrast"),u=E("grayscale"),h=E("hueRotate"),y=E("invert"),j=E("gap"),b=E("gradientColorStops"),x=E("gradientColorStopPositions"),p=E("inset"),g=E("margin"),m=E("opacity"),k=E("padding"),_=E("saturate"),v=E("scale"),O=E("sepia"),A=E("skew"),W=E("space"),C=E("translate"),F=()=>["auto","contain","none"],T=()=>["auto","hidden","clip","visible","scroll"],G=()=>["auto",N,t],P=()=>[N,t],xe=()=>["",ue,be],Z=()=>["auto",He,N],ne=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Me=()=>["solid","dashed","dotted","double","none"],lt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ze=()=>["start","end","center","between","around","evenly","stretch"],ge=()=>["","0",N],ct=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Y=()=>[He,N];return{cacheSize:500,separator:":",theme:{colors:[ht],spacing:[ue,be],blur:["none","",ye,N],brightness:Y(),borderColor:[e],borderRadius:["none","","full",ye,N],borderSpacing:P(),borderWidth:xe(),contrast:Y(),grayscale:ge(),hueRotate:Y(),invert:ge(),gap:P(),gradientColorStops:[e],gradientColorStopPositions:[ai,be],inset:G(),margin:G(),opacity:Y(),padding:P(),saturate:Y(),scale:Y(),sepia:ge(),skew:Y(),space:P(),translate:P()},classGroups:{aspect:[{aspect:["auto","square","video",N]}],container:["container"],columns:[{columns:[ye]}],"break-after":[{"break-after":ct()}],"break-before":[{"break-before":ct()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...ne(),N]}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[p]}],"inset-x":[{"inset-x":[p]}],"inset-y":[{"inset-y":[p]}],start:[{start:[p]}],end:[{end:[p]}],top:[{top:[p]}],right:[{right:[p]}],bottom:[{bottom:[p]}],left:[{left:[p]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ut,N]}],basis:[{basis:G()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",N]}],grow:[{grow:ge()}],shrink:[{shrink:ge()}],order:[{order:["first","last","none",ut,N]}],"grid-cols":[{"grid-cols":[ht]}],"col-start-end":[{col:["auto",{span:["full",ut,N]},N]}],"col-start":[{"col-start":Z()}],"col-end":[{"col-end":Z()}],"grid-rows":[{"grid-rows":[ht]}],"row-start-end":[{row:["auto",{span:[ut,N]},N]}],"row-start":[{"row-start":Z()}],"row-end":[{"row-end":Z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",N]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",N]}],gap:[{gap:[j]}],"gap-x":[{"gap-x":[j]}],"gap-y":[{"gap-y":[j]}],"justify-content":[{justify:["normal",...ze()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...ze(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...ze(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[k]}],px:[{px:[k]}],py:[{py:[k]}],ps:[{ps:[k]}],pe:[{pe:[k]}],pt:[{pt:[k]}],pr:[{pr:[k]}],pb:[{pb:[k]}],pl:[{pl:[k]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[W]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[W]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",N,t]}],"min-w":[{"min-w":[N,t,"min","max","fit"]}],"max-w":[{"max-w":[N,t,"none","full","min","max","fit","prose",{screen:[ye]},ye]}],h:[{h:[N,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[N,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[N,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[N,t,"auto","min","max","fit"]}],"font-size":[{text:["base",ye,be]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",qt]}],"font-family":[{font:[ht]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",N]}],"line-clamp":[{"line-clamp":["none",He,qt]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ue,N]}],"list-image":[{"list-image":["none",N]}],"list-style-type":[{list:["none","disc","decimal",N]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[m]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Me(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ue,be]}],"underline-offset":[{"underline-offset":["auto",ue,N]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",N]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",N]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[m]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ne(),ci]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",li]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},ui]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[x]}],"gradient-via-pos":[{via:[x]}],"gradient-to-pos":[{to:[x]}],"gradient-from":[{from:[b]}],"gradient-via":[{via:[b]}],"gradient-to":[{to:[b]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[m]}],"border-style":[{border:[...Me(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[m]}],"divide-style":[{divide:Me()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...Me()]}],"outline-offset":[{"outline-offset":[ue,N]}],"outline-w":[{outline:[ue,be]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:xe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[m]}],"ring-offset-w":[{"ring-offset":[ue,be]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",ye,hi]}],"shadow-color":[{shadow:[ht]}],opacity:[{opacity:[m]}],"mix-blend":[{"mix-blend":[...lt(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":lt()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[r]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",ye,N]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[y]}],saturate:[{saturate:[_]}],sepia:[{sepia:[O]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[s]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[m]}],"backdrop-saturate":[{"backdrop-saturate":[_]}],"backdrop-sepia":[{"backdrop-sepia":[O]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[c]}],"border-spacing-x":[{"border-spacing-x":[c]}],"border-spacing-y":[{"border-spacing-y":[c]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",N]}],duration:[{duration:Y()}],ease:[{ease:["linear","in","out","in-out",N]}],delay:[{delay:Y()}],animate:[{animate:["none","spin","ping","pulse","bounce",N]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[v]}],"scale-x":[{"scale-x":[v]}],"scale-y":[{"scale-y":[v]}],rotate:[{rotate:[ut,N]}],"translate-x":[{"translate-x":[C]}],"translate-y":[{"translate-y":[C]}],"skew-x":[{"skew-x":[A]}],"skew-y":[{"skew-y":[A]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",N]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",N]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",N]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[ue,be,qt]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},gi=Zn(xi),bi=new hn({defaultOptions:{queries:{retry:1}}}),Is=12,yi=12,vi=10080*60*1e3,wi=1e3;function de(...e){return gi(Tr(e))}async function ae(e){const t=await fetch(e,{headers:{Accept:"application/json"}});if(!t.ok)throw new Error(`${t.status} ${t.statusText}`);return t.json()}function re(e){if(e==null)return"n/a";const t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;const s=Math.floor(t/60);return s<60?`${s}m ${t%60}s`:`${Math.floor(s/60)}h ${s%60}m`}const ji=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}),Ni=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"});function Ct(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function ki(e){const t=Ct(e);return t?ji.format(t):e??""}function mt(e){const t=Ct(e);return t?Ni.format(t):e??""}function wr(e,t){const s=Ct(e);if(!s)return e??"";const r=t-s.getTime(),i=Math.abs(r);if(i>vi)return mt(e);const o=r>=0?"ago":"from now",c=Math.round(i/1e3);if(c<45)return r>=0?"just now":"soon";if(c<90)return`1m ${o}`;const l=Math.round(c/60);if(l<60)return`${l}m ${o}`;if(l<90)return`1h ${o}`;const d=Math.round(l/60);return d<24?`${d}h ${o}`:d<36?`1d ${o}`:`${Math.round(d/24)}d ${o}`}function pe({value:e,compact:t=!1,relative:s=!1,now:r=Date.now()}){const i=Ct(e);return i?n.jsx("time",{dateTime:i.toISOString(),title:`UTC: ${i.toISOString()}`,children:s?wr(e,r):t?mt(e):ki(e)}):n.jsx(n.Fragment,{children:e??""})}function jr(e,t){const s=Ct(e);return s?Math.max(0,Math.floor((t-s.getTime())/1e3)):null}function fs(e,t){return e.status==="running"?jr(e.started_at,t)??e.runtime_seconds:e.runtime_seconds}function ms(e,t){return e.status==="pending"?jr(e.created_at,t)??e.queue_wait_seconds:e.queue_wait_seconds}function Ci(e){const[t,s]=J.useState(()=>Date.now());return J.useEffect(()=>{if(!e)return;s(Date.now());const r=window.setInterval(()=>s(Date.now()),wi);return()=>window.clearInterval(r)},[e]),t}function Si(e){return(e??"").split(/\r?\n/).map(s=>s.trim()).find(Boolean)??""}function Ft(e,t,s=1){const r=Si(t),i=s>1?` (${s})`:"";return r?`${e}${i}: ${r}`:`${e}${i}`}function Tt(e){return e==="openclaw_stdout"||e==="openclaw_stderr"}function Nr(e){return e.map(t=>t==null?void 0:t.trim()).filter(Boolean).join(` -`)}function Ri(e){const t=[];for(const s of e){const r=t[t.length-1];if(r&&Tt(s.event_type)&&r.eventType===s.event_type){r.count+=1,r.meta=s.ts,r.detail=Nr([r.detail,s.detail]),r.summary=Ft(s.summary,r.detail,r.count);continue}t.push({id:String(s.id),badge:s.event_type,meta:s.ts,summary:Tt(s.event_type)?Ft(s.summary,s.detail):s.summary,detail:s.detail,eventType:s.event_type,count:1})}return t}function _i(e){const t=[];return e.forEach((s,r)=>{const i=t[t.length-1];if(i&&Tt(s.kind)&&i.kind===s.kind){i.count+=1,i.meta=s.timestamp,i.text=Nr([i.text,s.text]),i.summary=Ft(`${s.role} · ${s.kind}`,i.text,i.count);return}t.push({id:`${s.timestamp??"entry"}-${r}`,badge:s.title,meta:s.timestamp,summary:Tt(s.kind)?Ft(`${s.role} · ${s.kind}`,s.text):`${s.role} · ${s.kind}`,text:s.text,kind:s.kind,count:1})}),t}function Ls(e,t,s,r){return e==="openclaw_stdout"?!1:t||s>=r-2}function Pi(e){return{pending:{badge:"border-amber-300 bg-amber-50 text-amber-800",dot:"bg-amber-500"},running:{badge:"border-blue-300 bg-blue-50 text-blue-700",dot:"bg-blue-600"},blocked:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},denied:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},done:{badge:"border-emerald-300 bg-emerald-50 text-emerald-700",dot:"bg-emerald-600"},waiting_approval:{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}[e]??{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}function Mi(e,t){const s=new URLSearchParams;for(const[r,i]of Object.entries(e))i.trim()&&s.set(r,i.trim());return s.set("limit",String(t)),`/api/jobs?${s.toString()}`}function bt(e){try{const t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"?t.href:"#"}catch{return"#"}}function kr(e){return`/jobs/${e}`}function Ds(e){try{return JSON.parse(e.data)}catch{return null}}function Oi(e,t){return e.some(s=>s.id===t.id)?e:[...e,t]}function Ei(e,t){const s=qs(t);return e.some(r=>qs(r)===s)?e:[...e,t]}function qs(e){return`${e.timestamp??""}:${e.role}:${e.kind}:${e.title}:${e.text}`}function Fi(e=window.location.pathname){const t=e.match(/^\/jobs\/(\d+)\/?$/);return t?Number(t[1]):null}function Ti(){var P,xe,Z,ne,Me,lt,ze,ge,ct,Y,gs,bs;const e=ur(),[t,s]=J.useState({status:"",repo:"",thread:"",action:"",intent:"",actor:""}),[r,i]=J.useState(Is),[o,c]=J.useState(()=>window.location.pathname),l=Fi(o),d=l!==null,u=l,h=ie({queryKey:["metrics"],queryFn:()=>ae("/api/metrics/summary"),enabled:!d}),y=ie({queryKey:["me"],queryFn:()=>ae("/api/me"),refetchInterval:!1}),j=ie({queryKey:["job-actors"],queryFn:()=>ae("/api/jobs/actors"),enabled:!d}),b=ie({queryKey:["jobs",t,r],queryFn:()=>ae(Mi(t,r)),enabled:!d}),x=ie({queryKey:["processes"],queryFn:()=>ae("/api/processes"),enabled:!d}),p=ie({queryKey:["alerts"],queryFn:()=>ae("/api/alerts"),enabled:!d}),g=ie({queryKey:["job",u],queryFn:()=>ae(`/api/jobs/${u}`),enabled:u!==null}),m=ie({queryKey:["job-session",u],queryFn:()=>ae(`/api/jobs/${u}/session`),enabled:u!==null}),k=ie({queryKey:["job-session-events",u],queryFn:()=>ae(`/api/jobs/${u}/session/events`),enabled:u!==null}),_=ie({queryKey:["job-session-transcript",u],queryFn:()=>ae(`/api/jobs/${u}/session/transcript`),enabled:u!==null});J.useEffect(()=>{if(u===null)return;const D=new EventSource(`/api/jobs/${u}/session/stream`);return D.addEventListener("session_event",It=>{const Ke=Ds(It);Ke&&(e.setQueryData(["job-session-events",u],Oe=>({events:Oi((Oe==null?void 0:Oe.events)??[],Ke)})),e.invalidateQueries({queryKey:["job",u]}),e.invalidateQueries({queryKey:["jobs"]}))}),D.addEventListener("transcript_entry",It=>{const Ke=Ds(It);!Ke||Ke.job_id!==u||e.setQueryData(["job-session-transcript",u],Oe=>({entries:Ei((Oe==null?void 0:Oe.entries)??[],Ke.entry)}))}),D.onerror=()=>{D.close()},()=>D.close()},[u,e]),J.useEffect(()=>{const D=()=>{c(window.location.pathname)};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[]);const v=J.useCallback(D=>{window.history.pushState({},"",kr(D)),c(window.location.pathname)},[]),O=((P=h.data)==null?void 0:P.metrics.status_counts)??{},A=((xe=b.data)==null?void 0:xe.jobs)??[],W=J.useCallback(D=>{s(D),i(Is)},[]),C=u?((Z=g.data)==null?void 0:Z.job)??null:null,F=A.some(D=>D.status==="running"||D.status==="pending")||(C==null?void 0:C.status)==="running"||(C==null?void 0:C.status)==="pending",T=Ci(F),G=n.jsx(Ii,{selectedJobId:u,selectedJob:C,loading:g.isLoading,error:g.error,session:(ne=m.data)==null?void 0:ne.session,sessionEvents:(Me=k.data)==null?void 0:Me.events,transcript:(lt=_.data)==null?void 0:lt.entries,now:T});return n.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[n.jsx("header",{className:"border-b border-slate-800 bg-slate-950 text-white",children:n.jsxs("div",{className:"mx-auto flex w-full max-w-[1440px] items-center justify-between gap-3 px-4 py-4 md:px-6",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h1",{className:"truncate text-xl font-semibold",children:"GitHub Agent Bridge"}),n.jsx("p",{className:"text-sm text-slate-300",children:"Read-only operational dashboard"})]}),n.jsx(Li,{user:(ze=y.data)==null?void 0:ze.user,loading:y.isLoading})]})}),n.jsx("main",{className:"mx-auto grid w-full max-w-[1440px] gap-4 px-3 py-4 sm:px-4 md:px-6 md:py-5",children:l!==null?n.jsx(Ai,{jobId:l,detail:G,onRefresh:()=>{g.refetch(),m.refetch(),k.refetch(),_.refetch()}}):n.jsxs(n.Fragment,{children:[h.error?n.jsx(Be,{tone:"error",text:h.error.message}):null,n.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4","aria-label":"Summary metrics",children:[n.jsx(Pt,{title:"Pending",value:O.pending??0,icon:n.jsx(On,{className:"h-5 w-5"})}),n.jsx(Pt,{title:"Running",value:O.running??0,icon:n.jsx(_n,{className:"h-5 w-5"})}),n.jsx(Pt,{title:"Blocked",value:O.blocked??0,icon:n.jsx(pr,{className:"h-5 w-5"})}),n.jsx(Pt,{title:"Done",value:O.done??0,icon:n.jsx(Mn,{className:"h-5 w-5"})})]}),n.jsxs("section",{className:"grid gap-3",children:[n.jsx(Di,{count:A.length,limit:r,loading:b.isLoading,onRefresh:()=>b.refetch()}),n.jsxs(Ee,{title:"Recent jobs",flushHeader:!0,children:[n.jsx(qi,{filters:t,actorOptions:((ge=j.data)==null?void 0:ge.actors)??[],onChange:W}),b.error?n.jsx(Be,{tone:"error",text:b.error.message}):null,n.jsx($i,{jobs:A,loading:b.isLoading,onViewJob:v,now:T}),A.length>=r?n.jsx("div",{className:"mt-3 flex justify-center",children:n.jsx("button",{className:"inline-flex h-9 items-center justify-center rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50",type:"button",onClick:()=>i(D=>D+yi),children:"Load more jobs"})}):null]})]}),n.jsxs("section",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]",children:[n.jsxs(Ee,{title:"Process activity",action:n.jsx(At,{onClick:()=>x.refetch()}),children:[x.error?n.jsx(Be,{tone:"error",text:x.error.message}):null,n.jsx(Ji,{data:x.data,loading:x.isLoading})]}),n.jsxs(Ee,{title:"Monitor alerts",action:n.jsx(At,{onClick:()=>p.refetch()}),children:[p.error?n.jsx(Be,{tone:"error",text:p.error.message}):null,n.jsx(Wi,{alerts:(ct=p.data)==null?void 0:ct.alerts,loading:p.isLoading,now:T})]})]}),n.jsxs("section",{className:"grid gap-4 xl:grid-cols-3",children:[n.jsx(Ee,{title:"Runtime percentiles",children:n.jsx(Qs,{label:"runtime",values:(Y=h.data)==null?void 0:Y.metrics.runtime_seconds})}),n.jsx(Ee,{title:"Jobs per day",children:n.jsx(Bi,{values:(gs=h.data)==null?void 0:gs.metrics.by_created_day,loading:h.isLoading,totalJobs:Hi(O)})}),n.jsx(Ee,{title:"Queue wait percentiles",children:n.jsx(Qs,{label:"queue wait",values:(bs=h.data)==null?void 0:bs.metrics.queue_wait_seconds})})]})]})})]})}function Ai({jobId:e,detail:t,onRefresh:s}){return n.jsxs("div",{className:"grid min-w-0 gap-3 sm:gap-4",children:[n.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[n.jsxs("a",{className:"inline-flex h-9 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50",href:"/",children:[n.jsx(Pn,{className:"h-4 w-4","aria-hidden":!0}),"Dashboard"]}),n.jsx(At,{onClick:s})]}),n.jsx(Ee,{title:`Job #${e}`,className:"p-3 sm:p-4",children:t})]})}function Ii({selectedJobId:e,selectedJob:t,loading:s,error:r,session:i,sessionEvents:o,transcript:c,now:l}){return t?n.jsx(zi,{job:t,session:i,sessionEvents:o,transcript:c,now:l}):e!==null&&s?n.jsx(U,{text:"Loading selected job..."}):e!==null&&r?n.jsx(Be,{tone:"error",text:`Job #${e}: ${r.message}`}):n.jsx(U,{text:"Select a job to inspect its timeline, worklog and GitHub links."})}function Li({user:e,loading:t}){const s=e!=null&&e.login?`@${e.login}`:t?"Loading profile...":"GitHub OAuth",r=e!=null&&e.avatar_url?n.jsx("img",{className:"h-10 w-10 rounded-full border border-slate-700 bg-slate-800",src:e.avatar_url,alt:e.login?`${e.login} avatar`:"",referrerPolicy:"no-referrer"}):n.jsx("span",{className:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-700 bg-slate-900",children:n.jsx(Et,{className:"h-5 w-5","aria-hidden":!0})}),i=e!=null&&e.html_url?n.jsx("a",{className:"truncate font-semibold text-white hover:underline",href:bt(e.html_url),rel:"noreferrer",target:"_blank",children:s}):n.jsx("div",{className:"truncate font-semibold text-white",children:s});return n.jsxs("div",{className:"flex max-w-full shrink-0 items-center gap-3 text-sm text-slate-300","aria-label":e!=null&&e.login?`Signed in as ${e.login}`:"Dashboard account",children:[n.jsx(Ln,{className:"hidden h-4 w-4 shrink-0 sm:block","aria-hidden":!0}),n.jsxs("div",{className:"hidden min-w-0 text-right sm:block",children:[i,n.jsx("div",{className:"text-xs text-slate-400",children:"Signed in · read-only"})]}),r]})}function Di({count:e,limit:t,loading:s,onRefresh:r}){return n.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-lg border border-border bg-white px-3 py-3 shadow-sm md:px-4",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h2",{className:"text-base font-semibold",children:"Jobs"}),n.jsx("p",{className:"text-xs text-muted",children:s?"Refreshing latest jobs...":`Showing ${e} of the latest ${t} requested jobs`})]}),n.jsx(At,{onClick:r,compactOnMobile:!0})]})}function Ee({title:e,action:t,children:s,className:r,flushHeader:i=!1}){return n.jsxs("section",{className:de("min-w-0 rounded-lg border border-border bg-panel p-4 shadow-sm",r),children:[n.jsxs("div",{className:de("flex items-center justify-between gap-3",!i&&"mb-4"),children:[n.jsx("h2",{className:"text-sm font-semibold",children:e}),t]}),s]})}function Pt({title:e,value:t,icon:s}){return n.jsxs("div",{className:"rounded-lg border border-border bg-panel p-3 shadow-sm md:p-4",children:[n.jsxs("div",{className:"flex items-center justify-between text-muted",children:[n.jsx("span",{className:"text-sm font-medium",children:e}),s]}),n.jsx("strong",{className:"mt-3 block text-2xl leading-none md:mt-4 md:text-3xl",children:t})]})}function qi({filters:e,actorOptions:t,onChange:s}){const[r,i]=J.useState(e);return J.useEffect(()=>i(e),[e]),n.jsxs("details",{className:"my-3 rounded-md border border-border bg-slate-50/70",children:[n.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3 px-3 py-2 text-sm font-semibold marker:hidden",children:[n.jsxs("span",{className:"inline-flex items-center gap-2",children:[n.jsx(Fn,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Filters"]}),n.jsx(mr,{className:"h-4 w-4 text-muted","aria-hidden":!0})]}),n.jsxs("form",{className:"grid gap-3 border-t border-border bg-white p-3 md:grid-cols-3 xl:grid-cols-7",onSubmit:o=>{o.preventDefault(),s(r)},children:[n.jsx(Ge,{label:"Status",children:n.jsxs("select",{className:"control",value:r.status,onChange:o=>i({...r,status:o.target.value}),children:[n.jsx("option",{value:"",children:"All"}),n.jsx("option",{value:"pending",children:"pending"}),n.jsx("option",{value:"running",children:"running"}),n.jsx("option",{value:"blocked",children:"blocked"}),n.jsx("option",{value:"done",children:"done"}),n.jsx("option",{value:"denied",children:"denied"}),n.jsx("option",{value:"waiting_approval",children:"waiting_approval"})]})}),n.jsx(Ge,{label:"Repository",children:n.jsx("input",{className:"control",value:r.repo,placeholder:"owner/repo",onChange:o=>i({...r,repo:o.target.value})})}),n.jsx(Ge,{label:"Thread",children:n.jsx("input",{className:"control",value:r.thread,inputMode:"numeric",placeholder:"issue or PR",onChange:o=>i({...r,thread:o.target.value})})}),n.jsx(Ge,{label:"Action",children:n.jsx("input",{className:"control",value:r.action,placeholder:"reply_comment",onChange:o=>i({...r,action:o.target.value})})}),n.jsx(Ge,{label:"Actor",children:n.jsx(Qi,{value:r.actor,options:t,onChange:o=>i({...r,actor:o})})}),n.jsx(Ge,{label:"Intent",children:n.jsxs("select",{className:"control",value:r.intent,onChange:o=>i({...r,intent:o.target.value}),children:[n.jsx("option",{value:"",children:"All"}),n.jsx("option",{value:"review_only",children:"review_only"}),n.jsx("option",{value:"work_allowed",children:"work_allowed"})]})}),n.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 self-end rounded-md bg-primary px-3 text-sm font-semibold text-white",type:"submit",children:[n.jsx(In,{className:"h-4 w-4","aria-hidden":!0}),"Apply"]})]})]})}function Qi({value:e,options:t,onChange:s}){const[r,i]=J.useState(!1),o=e.trim().replace(/^@/,"").toLowerCase(),c=t.filter(d=>!o||d.login.toLowerCase().includes(o)).slice(0,8),l=t.find(d=>d.login.toLowerCase()===o);return n.jsxs("div",{className:"relative",children:[n.jsxs("div",{className:"control flex items-center gap-2 px-2",children:[l?n.jsx("img",{className:"h-5 w-5 shrink-0 rounded-full bg-slate-100",src:bt(l.avatar_url??""),alt:`${l.login} avatar`,referrerPolicy:"no-referrer"}):n.jsx(Et,{className:"h-4 w-4 shrink-0 text-muted","aria-hidden":!0}),n.jsx("input",{className:"min-w-0 flex-1 bg-transparent font-mono text-sm outline-none",value:e,placeholder:"@login",onChange:d=>{s(d.target.value),i(!0)},onFocus:()=>i(!0),onBlur:()=>window.setTimeout(()=>i(!1),100)}),e?n.jsx("button",{className:"rounded-sm p-1 text-muted hover:bg-slate-100",type:"button","aria-label":"Clear actor filter",onClick:()=>s(""),children:n.jsx(qn,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null]}),r&&c.length>0?n.jsx("div",{className:"absolute left-0 right-0 z-20 mt-1 max-h-72 overflow-auto rounded-md border border-border bg-white p-1 shadow-lg",children:c.map(d=>n.jsxs("button",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-left hover:bg-slate-50",type:"button",onMouseDown:u=>u.preventDefault(),onClick:()=>{s(d.login),i(!1)},children:[d.avatar_url?n.jsx("img",{className:"h-6 w-6 shrink-0 rounded-full bg-slate-100",src:bt(d.avatar_url),alt:`${d.login} avatar`,referrerPolicy:"no-referrer"}):n.jsx(Et,{className:"h-5 w-5 shrink-0 text-muted","aria-hidden":!0}),n.jsxs("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground",children:["@",d.login]}),n.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-1.5 py-0.5 text-[10px] font-semibold text-muted",children:d.job_count})]},d.login))}):null]})}function Ge({label:e,children:t}){return n.jsxs("label",{className:"grid gap-1 text-xs font-semibold text-muted",children:[e,t]})}function $i({jobs:e,loading:t,onViewJob:s,now:r}){return t&&e.length===0?n.jsx(U,{text:"Loading jobs..."}):e.length===0?n.jsx(U,{text:"No jobs match the current filters."}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"grid gap-2 md:hidden",children:e.map(i=>n.jsx(Ui,{job:i,onViewJob:s,now:r},i.id))}),n.jsx("div",{className:"hidden max-h-[640px] overflow-auto rounded-md border border-border md:block",children:n.jsxs("table",{className:"min-w-full border-collapse text-sm",children:[n.jsx("thead",{children:n.jsxs("tr",{className:"sticky top-0 border-b border-border bg-panel text-left text-xs text-muted",children:[n.jsx("th",{className:"px-2 py-2 font-semibold",children:"ID"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Status"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Repo / thread"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Action"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Actor"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Attempts"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Queue wait"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Runtime"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Updated"})]})}),n.jsx("tbody",{children:e.map(i=>n.jsxs("tr",{className:"cursor-pointer border-b border-border hover:bg-slate-50",onClick:()=>s(i.id),children:[n.jsxs("td",{className:"px-2 py-3 font-mono",children:["#",i.id]}),n.jsx("td",{className:"px-2 py-3",children:n.jsx(xs,{status:i.status})}),n.jsxs("td",{className:"px-2 py-3",children:[n.jsx("div",{className:"font-mono",children:i.repo??i.work_key}),n.jsxs("div",{className:"text-xs text-muted",children:["thread ",i.thread??"n/a"]})]}),n.jsxs("td",{className:"px-2 py-3",children:[n.jsx("div",{children:i.action}),n.jsx("div",{className:"text-xs text-muted",children:i.intent})]}),n.jsx("td",{className:"px-2 py-3",children:n.jsx(ps,{actor:i.trigger_actor,avatarUrl:i.trigger_actor_avatar_url})}),n.jsx("td",{className:"px-2 py-3",children:i.attempts}),n.jsx("td",{className:"px-2 py-3",children:re(ms(i,r))}),n.jsx("td",{className:"px-2 py-3",children:re(fs(i,r))}),n.jsx("td",{className:"px-2 py-3 font-mono text-xs",children:n.jsx(pe,{value:i.updated_at,compact:!0,relative:!0,now:r})})]},i.id))})]})})]})}function Ui({job:e,onViewJob:t,now:s}){return n.jsx("article",{className:"rounded-md border border-border bg-white shadow-[0_1px_0_rgba(15,23,42,0.03)]",children:n.jsxs("button",{className:"grid w-full gap-2 p-3 text-left hover:bg-slate-50",type:"button",onClick:()=>t(e.id),children:[n.jsxs("div",{className:"flex items-start justify-between gap-2",children:[n.jsxs("div",{className:"min-w-0 space-y-1",children:[n.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-2",children:[n.jsxs("span",{className:"shrink-0 font-mono text-xs font-semibold text-muted",children:["#",e.id]}),n.jsx("span",{className:"truncate font-mono text-sm",children:e.repo??e.work_key})]}),n.jsx("div",{className:"line-clamp-2 text-sm leading-snug text-foreground",children:e.subject}),n.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted",children:[n.jsxs("span",{children:["thread ",e.thread??"n/a"," · ",e.action]}),n.jsx(ps,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url})]})]}),n.jsx(xs,{status:e.status})]}),n.jsxs("div",{className:"grid grid-cols-3 gap-2 text-xs",children:[n.jsx(ee,{label:"Wait",value:re(ms(e,s))}),n.jsx(ee,{label:"Runtime",value:re(fs(e,s))}),n.jsx(ee,{label:"Updated",value:n.jsx(pe,{value:e.updated_at,compact:!0,relative:!0,now:s})})]})]})})}function ps({actor:e,avatarUrl:t,framed:s=!1}){const r=t?n.jsx("img",{className:"h-4 w-4 shrink-0 rounded-full bg-slate-100",src:bt(t),alt:e?`${e} avatar`:"",referrerPolicy:"no-referrer"}):n.jsx(Et,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),i=n.jsxs(n.Fragment,{children:[r,n.jsx("span",{className:"min-w-0 truncate",children:e?`@${e}`:"unknown actor"})]});return s?n.jsx("span",{className:"inline-flex h-7 max-w-full items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-muted",children:i}):n.jsx("span",{className:"inline-flex min-w-0 max-w-full items-center gap-1 font-mono text-xs text-muted",children:i})}function zi({job:e,session:t,sessionEvents:s,transcript:r,now:i,compact:o=!1}){var b;const c=kr(e.id),l=s??[],d=r??[],u=Ri(l),h=_i(d),y=fs(e,i),j=ms(e,i);return n.jsxs("div",{className:"grid min-w-0 gap-4",children:[n.jsxs("div",{className:"grid gap-2",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(xs,{status:e.status}),n.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-foreground hover:bg-slate-50",href:c,children:[n.jsx(Tn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",e.id]}),n.jsx(ps,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url,framed:!0})]}),n.jsx("div",{className:"min-w-0 break-words font-mono text-sm [overflow-wrap:anywhere]",children:e.work_key}),n.jsx("p",{className:"min-w-0 break-words text-sm text-muted [overflow-wrap:anywhere]",children:e.subject})]}),n.jsxs("div",{className:de("grid gap-2 text-sm sm:gap-3",o?"grid-cols-1":"grid-cols-3"),children:[n.jsx(ee,{label:"Queue wait",value:re(j)}),n.jsx(ee,{label:e.status==="running"?"Running for":"Runtime",value:re(y)}),n.jsx(ee,{label:"Coalesced",value:String(e.coalesced_count)})]}),n.jsxs("div",{className:de("grid gap-2 text-sm sm:gap-3",o?"grid-cols-1":"grid-cols-2 xl:grid-cols-4"),children:[n.jsx(ee,{label:"Created",value:n.jsx(pe,{value:e.created_at,compact:!0,relative:!0,now:i})}),n.jsx(ee,{label:"Started",value:e.started_at?n.jsx(pe,{value:e.started_at,compact:!0,relative:!0,now:i}):"n/a"}),n.jsx(ee,{label:"Updated",value:n.jsx(pe,{value:e.updated_at,compact:!0,relative:!0,now:i})}),n.jsx(ee,{label:"Finished",value:e.finished_at?n.jsx(pe,{value:e.finished_at,compact:!0,relative:!0,now:i}):"n/a"})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Timeline"}),n.jsx("div",{className:"grid min-w-0 gap-3",children:(e.worklog??[]).length>0?(b=e.worklog)==null?void 0:b.map(x=>n.jsxs("div",{className:"min-w-0 border-l-2 border-primary pl-3",children:[n.jsx("div",{className:"text-sm font-semibold",children:x.phase}),n.jsx("div",{className:"font-mono text-xs text-muted",children:n.jsx(pe,{value:x.ts,relative:!0,now:i})}),n.jsx("div",{className:"break-words text-sm [overflow-wrap:anywhere]",children:x.summary}),x.detail?n.jsx("div",{className:"mt-1 break-words font-mono text-xs text-muted [overflow-wrap:anywhere]",children:x.detail}):null]},x.id)):n.jsx(U,{text:"No worklog entries."})})]}),n.jsxs("div",{children:[n.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[n.jsx(Dn,{className:"h-4 w-4","aria-hidden":!0}),"OpenClaw session"]}),t?n.jsxs("div",{className:"grid gap-3",children:[n.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[n.jsx(ee,{label:"Session ID",value:t.id}),n.jsx(ee,{label:"Source",value:t.source})]}),n.jsx("p",{className:"break-words text-xs text-muted [overflow-wrap:anywhere]",children:t.detail})]}):n.jsx(U,{text:"Session correlation is loading."})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Agent activity"}),n.jsx("div",{className:"grid max-h-[460px] min-w-0 gap-2 overflow-auto pr-1",children:u.length>0?u.map((x,p)=>n.jsx(Gi,{event:x,defaultOpen:Ls(x.eventType,e.status==="running",p,u.length),now:i},x.id)):n.jsx(U,{text:e.status==="running"?"Waiting for live agent output...":"No agent activity has been recorded for this session."})})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Session transcript"}),n.jsx("div",{className:"grid max-h-[620px] min-w-0 gap-2 overflow-auto pr-1",children:h.length>0?h.map((x,p)=>n.jsx(Ki,{entry:x,defaultOpen:Ls(x.kind,e.status==="running",p,h.length),now:i},x.id)):n.jsx(U,{text:e.status==="running"?"Waiting for live transcript entries...":"No OpenClaw transcript entries are available for this session."})})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"GitHub links"}),n.jsx("ul",{className:"grid gap-2 text-sm",children:e.github_urls.length>0?e.github_urls.map(x=>n.jsx("li",{children:n.jsxs("a",{className:"break-all text-primary hover:underline [overflow-wrap:anywhere]",href:bt(x),rel:"noreferrer",target:"_blank",children:[n.jsx(En,{className:"mr-1 inline h-3.5 w-3.5 align-[-2px]","aria-hidden":!0}),x]})},x)):n.jsx("li",{className:"text-muted",children:"No links recorded."})})]})]})}function Ki({entry:e,defaultOpen:t,now:s}){return n.jsx(Cr,{badge:e.badge,meta:n.jsx(pe,{value:e.meta,relative:!0,now:s}),count:e.count,summary:e.summary,defaultOpen:t,children:n.jsx("pre",{className:"max-h-72 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.text})})}function Gi({event:e,defaultOpen:t,now:s}){return n.jsx(Cr,{badge:e.badge,meta:n.jsx(pe,{value:e.meta,relative:!0,now:s}),count:e.count,summary:e.summary,defaultOpen:t,children:e.detail?n.jsx("pre",{className:"max-h-56 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.detail}):null})}function Cr({badge:e,meta:t,count:s,summary:r,defaultOpen:i,children:o}){const[c,l]=J.useState(!!i);return n.jsxs("details",{className:"group min-w-0 rounded border border-border bg-slate-50/60",open:c,onToggle:d=>l(d.currentTarget.open),children:[n.jsxs("summary",{className:"grid cursor-pointer list-none gap-1 px-2 py-1.5 marker:hidden hover:bg-white",children:[n.jsxs("div",{className:"grid min-w-0 gap-1 sm:flex sm:items-center sm:justify-between sm:gap-2",children:[n.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[n.jsx(mr,{className:"h-3.5 w-3.5 shrink-0 text-muted transition-transform group-open:rotate-180","aria-hidden":!0}),n.jsx("span",{className:"truncate font-mono text-[11px] font-semibold text-muted",children:e}),s&&s>1?n.jsx("span",{className:"rounded-sm border border-border px-1 font-mono text-[10px] text-muted",children:s}):null]}),n.jsx("span",{className:"min-w-0 truncate pl-5 font-mono text-[11px] text-muted sm:shrink-0 sm:pl-0",children:t})]}),n.jsx("div",{className:"min-w-0 break-words pl-5 text-xs text-foreground [overflow-wrap:anywhere] sm:truncate",children:r})]}),n.jsx("div",{className:"min-w-0 border-t border-border bg-white px-2 py-2",children:o})]})}function Qs({label:e,values:t}){const s=[{name:"median",seconds:(t==null?void 0:t.median)??0},{name:"p90",seconds:(t==null?void 0:t.p90)??0},{name:"p99",seconds:(t==null?void 0:t.p99)??0}];return n.jsx("div",{className:"h-56",children:n.jsx(rs,{width:"100%",height:"100%",children:n.jsxs(Zs,{data:s,children:[n.jsx(ns,{strokeDasharray:"3 3"}),n.jsx(is,{dataKey:"name"}),n.jsx(as,{tickFormatter:re}),n.jsx(os,{formatter:r=>[re(Number(r)),e]}),n.jsx(Ys,{dataKey:"seconds",fill:"#0969da",radius:[4,4,0,0]})]})})})}function Bi({values:e,loading:t,totalJobs:s}){const r=Object.entries(e??{}).map(([i,o])=>({day:i,count:o}));return t&&r.length===0?n.jsx(U,{text:"Loading job history..."}):r.length===0?n.jsx(U,{text:s>0?"Job history has no valid creation dates.":"No job history available."}):n.jsx("div",{className:"h-56",children:n.jsx(rs,{width:"100%",height:"100%",children:n.jsxs(Zs,{data:r,children:[n.jsx(ns,{strokeDasharray:"3 3"}),n.jsx(is,{dataKey:"day",minTickGap:16}),n.jsx(as,{allowDecimals:!1}),n.jsx(os,{formatter:i=>[Number(i),"jobs"]}),n.jsx(Ys,{dataKey:"count",fill:"#16a34a",radius:[4,4,0,0]})]})})})}function Hi(e){return Object.values(e).reduce((t,s)=>t+s,0)}function Ji({data:e,loading:t}){var y,j,b,x,p,g;if(t&&!e)return n.jsx(U,{text:"Loading process activity..."});if(!e)return n.jsx(U,{text:"No process snapshot available."});const s=e.executor.children??[],r=s.flatMap(m=>Rr(m)),i=r.reduce((m,k)=>m+k.cpu_ticks,0),o=r.reduce((m,k)=>m+Vi(k),0),c=e.executor.service==="active",l=r.slice(0,8).map(m=>({label:`pid ${m.pid}`,ticks:m.cpu_ticks})),d=(e.samples??[]).map(m=>({label:mt(m.ts),ticks:m.cpu_ticks,io:m.io_bytes,active:m.active_since_last_sample?"active":"quiet"})),u=d.length>0?d:l,h=(y=e.samples)==null?void 0:y[e.samples.length-1];return n.jsxs("div",{className:"grid gap-4",children:[n.jsx("div",{className:"rounded-md border border-slate-200 bg-slate-50 p-3",children:n.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx("span",{className:de("inline-flex h-6 items-center rounded-full border px-2 text-xs font-semibold",c?"border-emerald-300 bg-emerald-50 text-emerald-700":"border-slate-300 bg-white text-slate-600"),children:c?"active":"idle"}),n.jsxs("span",{className:"font-mono text-xs text-muted",children:["service ",e.executor.service]})]}),n.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:e.running_jobs.length>0?`${e.running_jobs.length} running job${e.running_jobs.length===1?"":"s"}`:"No running jobs"}),e.running_jobs.length>0?n.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:e.running_jobs.slice(0,4).map(m=>n.jsxs("span",{className:"inline-flex min-h-6 items-center gap-1.5 rounded-full border border-blue-200 bg-white px-2 font-mono text-[11px] font-semibold text-blue-700",children:[n.jsx("span",{className:"h-2 w-2 rounded-full bg-blue-600 animate-live-pulse","aria-hidden":!0}),"#",m.id," ",re(m.age_seconds)]},m.id))}):null,h?n.jsxs("p",{className:"mt-1 text-xs text-muted",children:["Last persisted sample ",mt(h.ts)," · ",h.active_since_last_sample?"activity observed":`quiet ${re(h.idle_seconds)}`]}):null,n.jsx("p",{className:"mt-1 text-xs text-muted",children:e.detail})]}),n.jsxs("div",{className:"grid min-w-[190px] grid-cols-3 gap-2 text-center text-xs",children:[n.jsx(Qt,{label:"PID",value:e.executor.pid?String(e.executor.pid):"n/a"}),n.jsx(Qt,{label:"Children",value:String(r.length)}),n.jsx(Qt,{label:"CPU ticks",value:String(i)})]})]})}),n.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[n.jsx(Mt,{label:"Live process",value:((j=e.signals)==null?void 0:j.live_process.state)??(r.length>0?"live":"no_child_process"),detail:`${((b=e.signals)==null?void 0:b.live_process.child_count)??r.length} children`}),n.jsx(Mt,{label:"Process activity",value:((x=e.signals)==null?void 0:x.process_activity.state)??(h!=null&&h.active_since_last_sample?"active":"quiet"),detail:h?`sample ${mt(h.ts)}`:"no sample"}),n.jsx(Mt,{label:"Semantic progress",value:(p=e.signals)!=null&&p.semantic_progress.length?"recent":"none",detail:$s(e.running_jobs,"semantic_progress")}),n.jsx(Mt,{label:"Visible progress",value:(g=e.signals)!=null&&g.visible_progress.length?"streaming":"none",detail:$s(e.running_jobs,"visible_progress")})]}),e.alerts.length>0?n.jsx(Be,{tone:"error",text:e.alerts[0]}):null,n.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)]",children:[n.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[n.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[n.jsxs("h3",{className:"flex items-center gap-2 text-sm font-semibold",children:[n.jsx(Fs,{className:"h-4 w-4","aria-hidden":!0}),d.length>0?"CPU history":"CPU ticks"]}),n.jsxs("span",{className:"font-mono text-xs text-muted",children:[_r(o)," I/O"]})]}),u.length>0?n.jsx("div",{className:"h-40",children:n.jsx(rs,{width:"100%",height:"100%",children:n.jsxs(Er,{data:u,children:[n.jsx(ns,{strokeDasharray:"3 3"}),n.jsx(is,{dataKey:"label",tick:!1}),n.jsx(as,{allowDecimals:!1,tick:{fontSize:11}}),n.jsx(os,{formatter:m=>[Number(m),"cpu ticks"]}),n.jsx(Fr,{type:"monotone",dataKey:"ticks",stroke:"#0f766e",strokeWidth:2,dot:{r:3},activeDot:{r:5},isAnimationActive:!1})]})})}):n.jsx(U,{text:"No executor CPU samples available."})]}),n.jsxs("div",{className:"min-w-0",children:[n.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[n.jsx(Fs,{className:"h-4 w-4","aria-hidden":!0}),"Executor children"]}),s.length>0?n.jsx("div",{className:"grid gap-2",children:s.map(m=>n.jsx(Sr,{process:m},m.pid))}):n.jsx(U,{text:"No child process detected for the executor."})]})]})]})}function Wi({alerts:e,loading:t,now:s}){if(t&&!e)return n.jsx(U,{text:"Loading monitor alerts..."});const r=e??[];return r.length===0?n.jsx(U,{text:"No active monitor alerts."}):n.jsx("div",{className:"grid gap-2",children:r.slice(0,5).map(i=>n.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-2.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs font-semibold text-red-700",children:[n.jsx(pr,{className:"h-3.5 w-3.5","aria-hidden":!0}),n.jsx("span",{children:i.severity}),n.jsx("span",{className:"font-normal text-red-600",children:wr(i.last_seen,s)}),i.observations>1?n.jsxs("span",{className:"rounded-full border border-red-200 bg-white px-1.5",children:[i.observations,"x"]}):null]}),n.jsx("p",{className:"mt-1 break-words text-sm font-medium text-red-950 [overflow-wrap:anywhere]",children:i.message})]},i.fingerprint))})}function Sr({process:e}){var r,i;const t=((r=e.io_bytes)==null?void 0:r.read_bytes)??0,s=((i=e.io_bytes)==null?void 0:i.write_bytes)??0;return n.jsxs("div",{className:"rounded-md border border-border bg-white p-2.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[n.jsxs("span",{className:"font-mono",children:["pid ",e.pid]}),n.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["state ",e.state]}),n.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["cpu ",e.cpu_ticks]}),n.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["I/O ",_r(t+s)]})]}),n.jsx("div",{className:"mt-2 break-words font-mono text-xs text-muted",children:e.cmd||"unknown command"}),e.children&&e.children.length>0?n.jsx("div",{className:"mt-3 border-l-2 border-border pl-3",children:e.children.map(o=>n.jsx(Sr,{process:o},o.pid))}):null]})}function Qt({label:e,value:t}){return n.jsxs("div",{className:"rounded-md border border-border bg-white px-2 py-2",children:[n.jsx("div",{className:"font-mono text-sm font-semibold text-foreground",children:t}),n.jsx("div",{className:"mt-0.5 text-[11px] font-semibold uppercase text-muted",children:e})]})}function Mt({label:e,value:t,detail:s}){return n.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-2.5",children:[n.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:e}),n.jsx("div",{className:"mt-1 truncate text-sm font-semibold text-foreground",children:t}),n.jsx("div",{className:"mt-1 truncate font-mono text-[11px] text-muted",children:s})]})}function $s(e,t){const s=e.find(i=>i[t]),r=s==null?void 0:s[t];return!s||!r?"no running heartbeat":`#${s.id} ${r.phase} ${re(r.age_seconds??null)}`}function Rr(e){return[e,...(e.children??[]).flatMap(t=>Rr(t))]}function Vi(e){var t,s;return(((t=e.io_bytes)==null?void 0:t.read_bytes)??0)+(((s=e.io_bytes)==null?void 0:s.write_bytes)??0)}function _r(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}function ee({label:e,value:t}){return n.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[n.jsx("div",{className:"text-xs font-semibold text-muted",children:e}),n.jsx("div",{className:"mt-1 min-w-0 break-words text-sm [overflow-wrap:anywhere]",children:t})]})}function xs({status:e}){const t=Pi(e),s=e==="running"||e==="pending";return n.jsxs("span",{className:de("inline-flex min-h-6 items-center gap-1.5 rounded-full border px-2 text-xs font-semibold",t.badge),children:[n.jsx("span",{className:de("h-2.5 w-2.5 rounded-full",t.dot,s&&"animate-live-pulse"),"aria-hidden":!0}),e]})}function U({text:e}){return n.jsx("div",{className:"rounded-md border border-dashed border-border p-6 text-center text-sm text-muted",children:e})}function Be({tone:e,text:t}){return n.jsx("div",{className:de("rounded-md border p-3 text-sm",e==="error"&&"border-red-300 bg-red-50 text-red-700"),children:t})}function At({onClick:e,compactOnMobile:t=!1}){return n.jsxs("button",{className:de("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50",t?"w-8 px-0 sm:w-auto sm:px-3":"px-3"),onClick:e,type:"button","aria-label":"Refresh",children:[n.jsx(An,{className:"h-4 w-4","aria-hidden":!0}),n.jsx("span",{className:de(t&&"hidden sm:inline"),children:"Refresh"})]})}qr.createRoot(document.getElementById("root")).render(n.jsx(J.StrictMode,{children:n.jsx(fn,{client:bi,children:n.jsx(Ti,{})})})); +`)}function Ri(e){const t=[];for(const s of e){const r=t[t.length-1];if(r&&Tt(s.event_type)&&r.eventType===s.event_type){r.count+=1,r.meta=s.ts,r.detail=Nr([r.detail,s.detail]),r.summary=Ft(s.summary,r.detail,r.count);continue}t.push({id:String(s.id),badge:s.event_type,meta:s.ts,summary:Tt(s.event_type)?Ft(s.summary,s.detail):s.summary,detail:s.detail,eventType:s.event_type,count:1})}return t}function _i(e){const t=[];return e.forEach((s,r)=>{const i=t[t.length-1];if(i&&Tt(s.kind)&&i.kind===s.kind){i.count+=1,i.meta=s.timestamp,i.text=Nr([i.text,s.text]),i.summary=Ft(`${s.role} · ${s.kind}`,i.text,i.count);return}t.push({id:`${s.timestamp??"entry"}-${r}`,badge:s.title,meta:s.timestamp,summary:Tt(s.kind)?Ft(`${s.role} · ${s.kind}`,s.text):`${s.role} · ${s.kind}`,text:s.text,kind:s.kind,count:1})}),t}function Ls(e,t,s,r){return e==="openclaw_stdout"?!1:t||s>=r-2}function Pi(e){return{pending:{badge:"border-amber-300 bg-amber-50 text-amber-800",dot:"bg-amber-500"},running:{badge:"border-blue-300 bg-blue-50 text-blue-700",dot:"bg-blue-600"},blocked:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},denied:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},done:{badge:"border-emerald-300 bg-emerald-50 text-emerald-700",dot:"bg-emerald-600"},waiting_approval:{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}[e]??{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}function Mi(e,t){const s=new URLSearchParams;for(const[r,i]of Object.entries(e))i.trim()&&s.set(r,i.trim());return s.set("limit",String(t)),`/api/jobs?${s.toString()}`}function bt(e){try{const t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"?t.href:"#"}catch{return"#"}}function kr(e){return`/jobs/${e}`}function Ds(e){try{return JSON.parse(e.data)}catch{return null}}function Oi(e,t){return e.some(s=>s.id===t.id)?e:[...e,t]}function Ei(e,t){const s=qs(t);return e.some(r=>qs(r)===s)?e:[...e,t]}function qs(e){return`${e.timestamp??""}:${e.role}:${e.kind}:${e.title}:${e.text}`}function Fi(e=window.location.pathname){const t=e.match(/^\/jobs\/(\d+)\/?$/);return t?Number(t[1]):null}function Ti(){var P,xe,Z,ne,Me,lt,ze,ge,ct,Y,gs,bs;const e=ur(),[t,s]=J.useState({status:"",repo:"",thread:"",action:"",intent:"",actor:""}),[r,i]=J.useState(Is),[o,c]=J.useState(()=>window.location.pathname),l=Fi(o),d=l!==null,u=l,h=ie({queryKey:["metrics"],queryFn:()=>ae("/api/metrics/summary"),enabled:!d}),y=ie({queryKey:["me"],queryFn:()=>ae("/api/me"),refetchInterval:!1}),j=ie({queryKey:["job-actors"],queryFn:()=>ae("/api/jobs/actors"),enabled:!d}),b=ie({queryKey:["jobs",t,r],queryFn:()=>ae(Mi(t,r)),enabled:!d}),x=ie({queryKey:["processes"],queryFn:()=>ae("/api/processes"),enabled:!d}),p=ie({queryKey:["alerts"],queryFn:()=>ae("/api/alerts"),enabled:!d}),g=ie({queryKey:["job",u],queryFn:()=>ae(`/api/jobs/${u}`),enabled:u!==null}),m=ie({queryKey:["job-session",u],queryFn:()=>ae(`/api/jobs/${u}/session`),enabled:u!==null}),k=ie({queryKey:["job-session-events",u],queryFn:()=>ae(`/api/jobs/${u}/session/events`),enabled:u!==null}),_=ie({queryKey:["job-session-transcript",u],queryFn:()=>ae(`/api/jobs/${u}/session/transcript`),enabled:u!==null});J.useEffect(()=>{if(u===null)return;const D=new EventSource(`/api/jobs/${u}/session/stream`);return D.addEventListener("session_event",It=>{const Ke=Ds(It);Ke&&(e.setQueryData(["job-session-events",u],Oe=>({events:Oi((Oe==null?void 0:Oe.events)??[],Ke)})),e.invalidateQueries({queryKey:["job",u]}),e.invalidateQueries({queryKey:["jobs"]}))}),D.addEventListener("transcript_entry",It=>{const Ke=Ds(It);!Ke||Ke.job_id!==u||e.setQueryData(["job-session-transcript",u],Oe=>({entries:Ei((Oe==null?void 0:Oe.entries)??[],Ke.entry)}))}),D.onerror=()=>{D.close()},()=>D.close()},[u,e]),J.useEffect(()=>{const D=()=>{c(window.location.pathname)};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[]);const v=J.useCallback(D=>{window.history.pushState({},"",kr(D)),c(window.location.pathname)},[]),O=((P=h.data)==null?void 0:P.metrics.status_counts)??{},A=((xe=b.data)==null?void 0:xe.jobs)??[],W=J.useCallback(D=>{s(D),i(Is)},[]),C=u?((Z=g.data)==null?void 0:Z.job)??null:null,F=A.some(D=>D.status==="running"||D.status==="pending")||(C==null?void 0:C.status)==="running"||(C==null?void 0:C.status)==="pending",T=Ci(F),G=n.jsx(Ii,{selectedJobId:u,selectedJob:C,loading:g.isLoading,error:g.error,session:(ne=m.data)==null?void 0:ne.session,sessionEvents:(Me=k.data)==null?void 0:Me.events,transcript:(lt=_.data)==null?void 0:lt.entries,now:T});return n.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[n.jsx("header",{className:"border-b border-slate-800 bg-slate-950 text-white",children:n.jsxs("div",{className:"mx-auto flex w-full max-w-[1440px] items-center justify-between gap-3 px-4 py-4 md:px-6",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h1",{className:"truncate text-xl font-semibold",children:"GitHub Agent Bridge"}),n.jsx("p",{className:"text-sm text-slate-300",children:"Read-only operational dashboard"})]}),n.jsx(Li,{user:(ze=y.data)==null?void 0:ze.user,loading:y.isLoading})]})}),n.jsx("main",{className:"mx-auto grid w-full max-w-[1440px] gap-4 px-3 py-4 sm:px-4 md:px-6 md:py-5",children:l!==null?n.jsx(Ai,{jobId:l,detail:G,onRefresh:()=>{g.refetch(),m.refetch(),k.refetch(),_.refetch()}}):n.jsxs(n.Fragment,{children:[h.error?n.jsx(Be,{tone:"error",text:h.error.message}):null,n.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4","aria-label":"Summary metrics",children:[n.jsx(Pt,{title:"Pending",value:O.pending??0,icon:n.jsx(On,{className:"h-5 w-5"})}),n.jsx(Pt,{title:"Running",value:O.running??0,icon:n.jsx(_n,{className:"h-5 w-5"})}),n.jsx(Pt,{title:"Blocked",value:O.blocked??0,icon:n.jsx(pr,{className:"h-5 w-5"})}),n.jsx(Pt,{title:"Done",value:O.done??0,icon:n.jsx(Mn,{className:"h-5 w-5"})})]}),n.jsxs("section",{className:"grid gap-3",children:[n.jsx(Di,{count:A.length,limit:r,loading:b.isLoading,onRefresh:()=>b.refetch()}),n.jsxs(Ee,{title:"Recent jobs",flushHeader:!0,children:[n.jsx(qi,{filters:t,actorOptions:((ge=j.data)==null?void 0:ge.actors)??[],onChange:W}),b.error?n.jsx(Be,{tone:"error",text:b.error.message}):null,n.jsx($i,{jobs:A,loading:b.isLoading,onViewJob:v,now:T}),A.length>=r?n.jsx("div",{className:"mt-3 flex justify-center",children:n.jsx("button",{className:"inline-flex h-9 items-center justify-center rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50",type:"button",onClick:()=>i(D=>D+yi),children:"Load more jobs"})}):null]})]}),n.jsxs("section",{className:"grid gap-4",children:[n.jsxs(Ee,{title:"Process activity",action:n.jsx(At,{onClick:()=>x.refetch()}),children:[x.error?n.jsx(Be,{tone:"error",text:x.error.message}):null,n.jsx(Ji,{data:x.data,loading:x.isLoading})]}),n.jsxs(Ee,{title:"Monitor alerts",action:n.jsx(At,{onClick:()=>p.refetch()}),children:[p.error?n.jsx(Be,{tone:"error",text:p.error.message}):null,n.jsx(Wi,{alerts:(ct=p.data)==null?void 0:ct.alerts,loading:p.isLoading,now:T})]})]}),n.jsxs("section",{className:"grid gap-4 xl:grid-cols-3",children:[n.jsx(Ee,{title:"Runtime percentiles",children:n.jsx(Qs,{label:"runtime",values:(Y=h.data)==null?void 0:Y.metrics.runtime_seconds})}),n.jsx(Ee,{title:"Jobs per day",children:n.jsx(Bi,{values:(gs=h.data)==null?void 0:gs.metrics.by_created_day,loading:h.isLoading,totalJobs:Hi(O)})}),n.jsx(Ee,{title:"Queue wait percentiles",children:n.jsx(Qs,{label:"queue wait",values:(bs=h.data)==null?void 0:bs.metrics.queue_wait_seconds})})]})]})})]})}function Ai({jobId:e,detail:t,onRefresh:s}){return n.jsxs("div",{className:"grid min-w-0 gap-3 sm:gap-4",children:[n.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[n.jsxs("a",{className:"inline-flex h-9 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50",href:"/",children:[n.jsx(Pn,{className:"h-4 w-4","aria-hidden":!0}),"Dashboard"]}),n.jsx(At,{onClick:s})]}),n.jsx(Ee,{title:`Job #${e}`,className:"p-3 sm:p-4",children:t})]})}function Ii({selectedJobId:e,selectedJob:t,loading:s,error:r,session:i,sessionEvents:o,transcript:c,now:l}){return t?n.jsx(zi,{job:t,session:i,sessionEvents:o,transcript:c,now:l}):e!==null&&s?n.jsx(U,{text:"Loading selected job..."}):e!==null&&r?n.jsx(Be,{tone:"error",text:`Job #${e}: ${r.message}`}):n.jsx(U,{text:"Select a job to inspect its timeline, worklog and GitHub links."})}function Li({user:e,loading:t}){const s=e!=null&&e.login?`@${e.login}`:t?"Loading profile...":"GitHub OAuth",r=e!=null&&e.avatar_url?n.jsx("img",{className:"h-10 w-10 rounded-full border border-slate-700 bg-slate-800",src:e.avatar_url,alt:e.login?`${e.login} avatar`:"",referrerPolicy:"no-referrer"}):n.jsx("span",{className:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-700 bg-slate-900",children:n.jsx(Et,{className:"h-5 w-5","aria-hidden":!0})}),i=e!=null&&e.html_url?n.jsx("a",{className:"truncate font-semibold text-white hover:underline",href:bt(e.html_url),rel:"noreferrer",target:"_blank",children:s}):n.jsx("div",{className:"truncate font-semibold text-white",children:s});return n.jsxs("div",{className:"flex max-w-full shrink-0 items-center gap-3 text-sm text-slate-300","aria-label":e!=null&&e.login?`Signed in as ${e.login}`:"Dashboard account",children:[n.jsx(Ln,{className:"hidden h-4 w-4 shrink-0 sm:block","aria-hidden":!0}),n.jsxs("div",{className:"hidden min-w-0 text-right sm:block",children:[i,n.jsx("div",{className:"text-xs text-slate-400",children:"Signed in · read-only"})]}),r]})}function Di({count:e,limit:t,loading:s,onRefresh:r}){return n.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-lg border border-border bg-white px-3 py-3 shadow-sm md:px-4",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h2",{className:"text-base font-semibold",children:"Jobs"}),n.jsx("p",{className:"text-xs text-muted",children:s?"Refreshing latest jobs...":`Showing ${e} of the latest ${t} requested jobs`})]}),n.jsx(At,{onClick:r,compactOnMobile:!0})]})}function Ee({title:e,action:t,children:s,className:r,flushHeader:i=!1}){return n.jsxs("section",{className:de("min-w-0 rounded-lg border border-border bg-panel p-4 shadow-sm",r),children:[n.jsxs("div",{className:de("flex items-center justify-between gap-3",!i&&"mb-4"),children:[n.jsx("h2",{className:"text-sm font-semibold",children:e}),t]}),s]})}function Pt({title:e,value:t,icon:s}){return n.jsxs("div",{className:"rounded-lg border border-border bg-panel p-3 shadow-sm md:p-4",children:[n.jsxs("div",{className:"flex items-center justify-between text-muted",children:[n.jsx("span",{className:"text-sm font-medium",children:e}),s]}),n.jsx("strong",{className:"mt-3 block text-2xl leading-none md:mt-4 md:text-3xl",children:t})]})}function qi({filters:e,actorOptions:t,onChange:s}){const[r,i]=J.useState(e);return J.useEffect(()=>i(e),[e]),n.jsxs("details",{className:"my-3 rounded-md border border-border bg-slate-50/70",children:[n.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3 px-3 py-2 text-sm font-semibold marker:hidden",children:[n.jsxs("span",{className:"inline-flex items-center gap-2",children:[n.jsx(Fn,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Filters"]}),n.jsx(mr,{className:"h-4 w-4 text-muted","aria-hidden":!0})]}),n.jsxs("form",{className:"grid gap-3 border-t border-border bg-white p-3 md:grid-cols-3 xl:grid-cols-7",onSubmit:o=>{o.preventDefault(),s(r)},children:[n.jsx(Ge,{label:"Status",children:n.jsxs("select",{className:"control",value:r.status,onChange:o=>i({...r,status:o.target.value}),children:[n.jsx("option",{value:"",children:"All"}),n.jsx("option",{value:"pending",children:"pending"}),n.jsx("option",{value:"running",children:"running"}),n.jsx("option",{value:"blocked",children:"blocked"}),n.jsx("option",{value:"done",children:"done"}),n.jsx("option",{value:"denied",children:"denied"}),n.jsx("option",{value:"waiting_approval",children:"waiting_approval"})]})}),n.jsx(Ge,{label:"Repository",children:n.jsx("input",{className:"control",value:r.repo,placeholder:"owner/repo",onChange:o=>i({...r,repo:o.target.value})})}),n.jsx(Ge,{label:"Thread",children:n.jsx("input",{className:"control",value:r.thread,inputMode:"numeric",placeholder:"issue or PR",onChange:o=>i({...r,thread:o.target.value})})}),n.jsx(Ge,{label:"Action",children:n.jsx("input",{className:"control",value:r.action,placeholder:"reply_comment",onChange:o=>i({...r,action:o.target.value})})}),n.jsx(Ge,{label:"Actor",children:n.jsx(Qi,{value:r.actor,options:t,onChange:o=>i({...r,actor:o})})}),n.jsx(Ge,{label:"Intent",children:n.jsxs("select",{className:"control",value:r.intent,onChange:o=>i({...r,intent:o.target.value}),children:[n.jsx("option",{value:"",children:"All"}),n.jsx("option",{value:"review_only",children:"review_only"}),n.jsx("option",{value:"work_allowed",children:"work_allowed"})]})}),n.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 self-end rounded-md bg-primary px-3 text-sm font-semibold text-white",type:"submit",children:[n.jsx(In,{className:"h-4 w-4","aria-hidden":!0}),"Apply"]})]})]})}function Qi({value:e,options:t,onChange:s}){const[r,i]=J.useState(!1),o=e.trim().replace(/^@/,"").toLowerCase(),c=t.filter(d=>!o||d.login.toLowerCase().includes(o)).slice(0,8),l=t.find(d=>d.login.toLowerCase()===o);return n.jsxs("div",{className:"relative",children:[n.jsxs("div",{className:"control flex items-center gap-2 px-2",children:[l?n.jsx("img",{className:"h-5 w-5 shrink-0 rounded-full bg-slate-100",src:bt(l.avatar_url??""),alt:`${l.login} avatar`,referrerPolicy:"no-referrer"}):n.jsx(Et,{className:"h-4 w-4 shrink-0 text-muted","aria-hidden":!0}),n.jsx("input",{className:"min-w-0 flex-1 bg-transparent font-mono text-sm outline-none",value:e,placeholder:"@login",onChange:d=>{s(d.target.value),i(!0)},onFocus:()=>i(!0),onBlur:()=>window.setTimeout(()=>i(!1),100)}),e?n.jsx("button",{className:"rounded-sm p-1 text-muted hover:bg-slate-100",type:"button","aria-label":"Clear actor filter",onClick:()=>s(""),children:n.jsx(qn,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null]}),r&&c.length>0?n.jsx("div",{className:"absolute left-0 right-0 z-20 mt-1 max-h-72 overflow-auto rounded-md border border-border bg-white p-1 shadow-lg",children:c.map(d=>n.jsxs("button",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-left hover:bg-slate-50",type:"button",onMouseDown:u=>u.preventDefault(),onClick:()=>{s(d.login),i(!1)},children:[d.avatar_url?n.jsx("img",{className:"h-6 w-6 shrink-0 rounded-full bg-slate-100",src:bt(d.avatar_url),alt:`${d.login} avatar`,referrerPolicy:"no-referrer"}):n.jsx(Et,{className:"h-5 w-5 shrink-0 text-muted","aria-hidden":!0}),n.jsxs("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground",children:["@",d.login]}),n.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-1.5 py-0.5 text-[10px] font-semibold text-muted",children:d.job_count})]},d.login))}):null]})}function Ge({label:e,children:t}){return n.jsxs("label",{className:"grid gap-1 text-xs font-semibold text-muted",children:[e,t]})}function $i({jobs:e,loading:t,onViewJob:s,now:r}){return t&&e.length===0?n.jsx(U,{text:"Loading jobs..."}):e.length===0?n.jsx(U,{text:"No jobs match the current filters."}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"grid gap-2 md:hidden",children:e.map(i=>n.jsx(Ui,{job:i,onViewJob:s,now:r},i.id))}),n.jsx("div",{className:"hidden max-h-[640px] overflow-auto rounded-md border border-border md:block",children:n.jsxs("table",{className:"min-w-full border-collapse text-sm",children:[n.jsx("thead",{children:n.jsxs("tr",{className:"sticky top-0 border-b border-border bg-panel text-left text-xs text-muted",children:[n.jsx("th",{className:"px-2 py-2 font-semibold",children:"ID"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Status"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Repo / thread"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Action"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Actor"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Attempts"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Queue wait"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Runtime"}),n.jsx("th",{className:"px-2 py-2 font-semibold",children:"Updated"})]})}),n.jsx("tbody",{children:e.map(i=>n.jsxs("tr",{className:"cursor-pointer border-b border-border hover:bg-slate-50",onClick:()=>s(i.id),children:[n.jsxs("td",{className:"px-2 py-3 font-mono",children:["#",i.id]}),n.jsx("td",{className:"px-2 py-3",children:n.jsx(xs,{status:i.status})}),n.jsxs("td",{className:"px-2 py-3",children:[n.jsx("div",{className:"font-mono",children:i.repo??i.work_key}),n.jsxs("div",{className:"text-xs text-muted",children:["thread ",i.thread??"n/a"]})]}),n.jsxs("td",{className:"px-2 py-3",children:[n.jsx("div",{children:i.action}),n.jsx("div",{className:"text-xs text-muted",children:i.intent})]}),n.jsx("td",{className:"px-2 py-3",children:n.jsx(ps,{actor:i.trigger_actor,avatarUrl:i.trigger_actor_avatar_url})}),n.jsx("td",{className:"px-2 py-3",children:i.attempts}),n.jsx("td",{className:"px-2 py-3",children:re(ms(i,r))}),n.jsx("td",{className:"px-2 py-3",children:re(fs(i,r))}),n.jsx("td",{className:"px-2 py-3 font-mono text-xs",children:n.jsx(pe,{value:i.updated_at,compact:!0,relative:!0,now:r})})]},i.id))})]})})]})}function Ui({job:e,onViewJob:t,now:s}){return n.jsx("article",{className:"rounded-md border border-border bg-white shadow-[0_1px_0_rgba(15,23,42,0.03)]",children:n.jsxs("button",{className:"grid w-full gap-2 p-3 text-left hover:bg-slate-50",type:"button",onClick:()=>t(e.id),children:[n.jsxs("div",{className:"flex items-start justify-between gap-2",children:[n.jsxs("div",{className:"min-w-0 space-y-1",children:[n.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-2",children:[n.jsxs("span",{className:"shrink-0 font-mono text-xs font-semibold text-muted",children:["#",e.id]}),n.jsx("span",{className:"truncate font-mono text-sm",children:e.repo??e.work_key})]}),n.jsx("div",{className:"line-clamp-2 text-sm leading-snug text-foreground",children:e.subject}),n.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted",children:[n.jsxs("span",{children:["thread ",e.thread??"n/a"," · ",e.action]}),n.jsx(ps,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url})]})]}),n.jsx(xs,{status:e.status})]}),n.jsxs("div",{className:"grid grid-cols-3 gap-2 text-xs",children:[n.jsx(ee,{label:"Wait",value:re(ms(e,s))}),n.jsx(ee,{label:"Runtime",value:re(fs(e,s))}),n.jsx(ee,{label:"Updated",value:n.jsx(pe,{value:e.updated_at,compact:!0,relative:!0,now:s})})]})]})})}function ps({actor:e,avatarUrl:t,framed:s=!1}){const r=t?n.jsx("img",{className:"h-4 w-4 shrink-0 rounded-full bg-slate-100",src:bt(t),alt:e?`${e} avatar`:"",referrerPolicy:"no-referrer"}):n.jsx(Et,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),i=n.jsxs(n.Fragment,{children:[r,n.jsx("span",{className:"min-w-0 truncate",children:e?`@${e}`:"unknown actor"})]});return s?n.jsx("span",{className:"inline-flex h-7 max-w-full items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-muted",children:i}):n.jsx("span",{className:"inline-flex min-w-0 max-w-full items-center gap-1 font-mono text-xs text-muted",children:i})}function zi({job:e,session:t,sessionEvents:s,transcript:r,now:i,compact:o=!1}){var b;const c=kr(e.id),l=s??[],d=r??[],u=Ri(l),h=_i(d),y=fs(e,i),j=ms(e,i);return n.jsxs("div",{className:"grid min-w-0 gap-4",children:[n.jsxs("div",{className:"grid gap-2",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(xs,{status:e.status}),n.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-foreground hover:bg-slate-50",href:c,children:[n.jsx(Tn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",e.id]}),n.jsx(ps,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url,framed:!0})]}),n.jsx("div",{className:"min-w-0 break-words font-mono text-sm [overflow-wrap:anywhere]",children:e.work_key}),n.jsx("p",{className:"min-w-0 break-words text-sm text-muted [overflow-wrap:anywhere]",children:e.subject})]}),n.jsxs("div",{className:de("grid gap-2 text-sm sm:gap-3",o?"grid-cols-1":"grid-cols-3"),children:[n.jsx(ee,{label:"Queue wait",value:re(j)}),n.jsx(ee,{label:e.status==="running"?"Running for":"Runtime",value:re(y)}),n.jsx(ee,{label:"Coalesced",value:String(e.coalesced_count)})]}),n.jsxs("div",{className:de("grid gap-2 text-sm sm:gap-3",o?"grid-cols-1":"grid-cols-2 xl:grid-cols-4"),children:[n.jsx(ee,{label:"Created",value:n.jsx(pe,{value:e.created_at,compact:!0,relative:!0,now:i})}),n.jsx(ee,{label:"Started",value:e.started_at?n.jsx(pe,{value:e.started_at,compact:!0,relative:!0,now:i}):"n/a"}),n.jsx(ee,{label:"Updated",value:n.jsx(pe,{value:e.updated_at,compact:!0,relative:!0,now:i})}),n.jsx(ee,{label:"Finished",value:e.finished_at?n.jsx(pe,{value:e.finished_at,compact:!0,relative:!0,now:i}):"n/a"})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Timeline"}),n.jsx("div",{className:"grid min-w-0 gap-3",children:(e.worklog??[]).length>0?(b=e.worklog)==null?void 0:b.map(x=>n.jsxs("div",{className:"min-w-0 border-l-2 border-primary pl-3",children:[n.jsx("div",{className:"text-sm font-semibold",children:x.phase}),n.jsx("div",{className:"font-mono text-xs text-muted",children:n.jsx(pe,{value:x.ts,relative:!0,now:i})}),n.jsx("div",{className:"break-words text-sm [overflow-wrap:anywhere]",children:x.summary}),x.detail?n.jsx("div",{className:"mt-1 break-words font-mono text-xs text-muted [overflow-wrap:anywhere]",children:x.detail}):null]},x.id)):n.jsx(U,{text:"No worklog entries."})})]}),n.jsxs("div",{children:[n.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[n.jsx(Dn,{className:"h-4 w-4","aria-hidden":!0}),"OpenClaw session"]}),t?n.jsxs("div",{className:"grid gap-3",children:[n.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[n.jsx(ee,{label:"Session ID",value:t.id}),n.jsx(ee,{label:"Source",value:t.source})]}),n.jsx("p",{className:"break-words text-xs text-muted [overflow-wrap:anywhere]",children:t.detail})]}):n.jsx(U,{text:"Session correlation is loading."})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Agent activity"}),n.jsx("div",{className:"grid max-h-[460px] min-w-0 gap-2 overflow-auto pr-1",children:u.length>0?u.map((x,p)=>n.jsx(Gi,{event:x,defaultOpen:Ls(x.eventType,e.status==="running",p,u.length),now:i},x.id)):n.jsx(U,{text:e.status==="running"?"Waiting for live agent output...":"No agent activity has been recorded for this session."})})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Session transcript"}),n.jsx("div",{className:"grid max-h-[620px] min-w-0 gap-2 overflow-auto pr-1",children:h.length>0?h.map((x,p)=>n.jsx(Ki,{entry:x,defaultOpen:Ls(x.kind,e.status==="running",p,h.length),now:i},x.id)):n.jsx(U,{text:e.status==="running"?"Waiting for live transcript entries...":"No OpenClaw transcript entries are available for this session."})})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"GitHub links"}),n.jsx("ul",{className:"grid gap-2 text-sm",children:e.github_urls.length>0?e.github_urls.map(x=>n.jsx("li",{children:n.jsxs("a",{className:"break-all text-primary hover:underline [overflow-wrap:anywhere]",href:bt(x),rel:"noreferrer",target:"_blank",children:[n.jsx(En,{className:"mr-1 inline h-3.5 w-3.5 align-[-2px]","aria-hidden":!0}),x]})},x)):n.jsx("li",{className:"text-muted",children:"No links recorded."})})]})]})}function Ki({entry:e,defaultOpen:t,now:s}){return n.jsx(Cr,{badge:e.badge,meta:n.jsx(pe,{value:e.meta,relative:!0,now:s}),count:e.count,summary:e.summary,defaultOpen:t,children:n.jsx("pre",{className:"max-h-72 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.text})})}function Gi({event:e,defaultOpen:t,now:s}){return n.jsx(Cr,{badge:e.badge,meta:n.jsx(pe,{value:e.meta,relative:!0,now:s}),count:e.count,summary:e.summary,defaultOpen:t,children:e.detail?n.jsx("pre",{className:"max-h-56 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.detail}):null})}function Cr({badge:e,meta:t,count:s,summary:r,defaultOpen:i,children:o}){const[c,l]=J.useState(!!i);return n.jsxs("details",{className:"group min-w-0 rounded border border-border bg-slate-50/60",open:c,onToggle:d=>l(d.currentTarget.open),children:[n.jsxs("summary",{className:"grid cursor-pointer list-none gap-1 px-2 py-1.5 marker:hidden hover:bg-white",children:[n.jsxs("div",{className:"grid min-w-0 gap-1 sm:flex sm:items-center sm:justify-between sm:gap-2",children:[n.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[n.jsx(mr,{className:"h-3.5 w-3.5 shrink-0 text-muted transition-transform group-open:rotate-180","aria-hidden":!0}),n.jsx("span",{className:"truncate font-mono text-[11px] font-semibold text-muted",children:e}),s&&s>1?n.jsx("span",{className:"rounded-sm border border-border px-1 font-mono text-[10px] text-muted",children:s}):null]}),n.jsx("span",{className:"min-w-0 truncate pl-5 font-mono text-[11px] text-muted sm:shrink-0 sm:pl-0",children:t})]}),n.jsx("div",{className:"min-w-0 break-words pl-5 text-xs text-foreground [overflow-wrap:anywhere] sm:truncate",children:r})]}),n.jsx("div",{className:"min-w-0 border-t border-border bg-white px-2 py-2",children:o})]})}function Qs({label:e,values:t}){const s=[{name:"median",seconds:(t==null?void 0:t.median)??0},{name:"p90",seconds:(t==null?void 0:t.p90)??0},{name:"p99",seconds:(t==null?void 0:t.p99)??0}];return n.jsx("div",{className:"h-56",children:n.jsx(rs,{width:"100%",height:"100%",children:n.jsxs(Zs,{data:s,children:[n.jsx(ns,{strokeDasharray:"3 3"}),n.jsx(is,{dataKey:"name"}),n.jsx(as,{tickFormatter:re}),n.jsx(os,{formatter:r=>[re(Number(r)),e]}),n.jsx(Ys,{dataKey:"seconds",fill:"#0969da",radius:[4,4,0,0]})]})})})}function Bi({values:e,loading:t,totalJobs:s}){const r=Object.entries(e??{}).map(([i,o])=>({day:i,count:o}));return t&&r.length===0?n.jsx(U,{text:"Loading job history..."}):r.length===0?n.jsx(U,{text:s>0?"Job history has no valid creation dates.":"No job history available."}):n.jsx("div",{className:"h-56",children:n.jsx(rs,{width:"100%",height:"100%",children:n.jsxs(Zs,{data:r,children:[n.jsx(ns,{strokeDasharray:"3 3"}),n.jsx(is,{dataKey:"day",minTickGap:16}),n.jsx(as,{allowDecimals:!1}),n.jsx(os,{formatter:i=>[Number(i),"jobs"]}),n.jsx(Ys,{dataKey:"count",fill:"#16a34a",radius:[4,4,0,0]})]})})})}function Hi(e){return Object.values(e).reduce((t,s)=>t+s,0)}function Ji({data:e,loading:t}){var y,j,b,x,p,g;if(t&&!e)return n.jsx(U,{text:"Loading process activity..."});if(!e)return n.jsx(U,{text:"No process snapshot available."});const s=e.executor.children??[],r=s.flatMap(m=>Rr(m)),i=r.reduce((m,k)=>m+k.cpu_ticks,0),o=r.reduce((m,k)=>m+Vi(k),0),c=e.executor.service==="active",l=r.slice(0,8).map(m=>({label:`pid ${m.pid}`,ticks:m.cpu_ticks})),d=(e.samples??[]).map(m=>({label:mt(m.ts),ticks:m.cpu_ticks,io:m.io_bytes,active:m.active_since_last_sample?"active":"quiet"})),u=d.length>0?d:l,h=(y=e.samples)==null?void 0:y[e.samples.length-1];return n.jsxs("div",{className:"grid gap-4",children:[n.jsx("div",{className:"rounded-md border border-slate-200 bg-slate-50 p-3",children:n.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx("span",{className:de("inline-flex h-6 items-center rounded-full border px-2 text-xs font-semibold",c?"border-emerald-300 bg-emerald-50 text-emerald-700":"border-slate-300 bg-white text-slate-600"),children:c?"active":"idle"}),n.jsxs("span",{className:"font-mono text-xs text-muted",children:["service ",e.executor.service]})]}),n.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:e.running_jobs.length>0?`${e.running_jobs.length} running job${e.running_jobs.length===1?"":"s"}`:"No running jobs"}),e.running_jobs.length>0?n.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:e.running_jobs.slice(0,4).map(m=>n.jsxs("span",{className:"inline-flex min-h-6 items-center gap-1.5 rounded-full border border-blue-200 bg-white px-2 font-mono text-[11px] font-semibold text-blue-700",children:[n.jsx("span",{className:"h-2 w-2 rounded-full bg-blue-600 animate-live-pulse","aria-hidden":!0}),"#",m.id," ",re(m.age_seconds)]},m.id))}):null,h?n.jsxs("p",{className:"mt-1 text-xs text-muted",children:["Last persisted sample ",mt(h.ts)," · ",h.active_since_last_sample?"activity observed":`quiet ${re(h.idle_seconds)}`]}):null,n.jsx("p",{className:"mt-1 text-xs text-muted",children:e.detail})]}),n.jsxs("div",{className:"grid min-w-[190px] grid-cols-3 gap-2 text-center text-xs",children:[n.jsx(Qt,{label:"PID",value:e.executor.pid?String(e.executor.pid):"n/a"}),n.jsx(Qt,{label:"Children",value:String(r.length)}),n.jsx(Qt,{label:"CPU ticks",value:String(i)})]})]})}),n.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[n.jsx(Mt,{label:"Live process",value:((j=e.signals)==null?void 0:j.live_process.state)??(r.length>0?"live":"no_child_process"),detail:`${((b=e.signals)==null?void 0:b.live_process.child_count)??r.length} children`}),n.jsx(Mt,{label:"Process activity",value:((x=e.signals)==null?void 0:x.process_activity.state)??(h!=null&&h.active_since_last_sample?"active":"quiet"),detail:h?`sample ${mt(h.ts)}`:"no sample"}),n.jsx(Mt,{label:"Semantic progress",value:(p=e.signals)!=null&&p.semantic_progress.length?"recent":"none",detail:$s(e.running_jobs,"semantic_progress")}),n.jsx(Mt,{label:"Visible progress",value:(g=e.signals)!=null&&g.visible_progress.length?"streaming":"none",detail:$s(e.running_jobs,"visible_progress")})]}),e.alerts.length>0?n.jsx(Be,{tone:"error",text:e.alerts[0]}):null,n.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)]",children:[n.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[n.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[n.jsxs("h3",{className:"flex items-center gap-2 text-sm font-semibold",children:[n.jsx(Fs,{className:"h-4 w-4","aria-hidden":!0}),d.length>0?"CPU history":"CPU ticks"]}),n.jsxs("span",{className:"font-mono text-xs text-muted",children:[_r(o)," I/O"]})]}),u.length>0?n.jsx("div",{className:"h-40",children:n.jsx(rs,{width:"100%",height:"100%",children:n.jsxs(Er,{data:u,children:[n.jsx(ns,{strokeDasharray:"3 3"}),n.jsx(is,{dataKey:"label",tick:!1}),n.jsx(as,{allowDecimals:!1,tick:{fontSize:11}}),n.jsx(os,{formatter:m=>[Number(m),"cpu ticks"]}),n.jsx(Fr,{type:"monotone",dataKey:"ticks",stroke:"#0f766e",strokeWidth:2,dot:{r:3},activeDot:{r:5},isAnimationActive:!1})]})})}):n.jsx(U,{text:"No executor CPU samples available."})]}),n.jsxs("div",{className:"min-w-0",children:[n.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[n.jsx(Fs,{className:"h-4 w-4","aria-hidden":!0}),"Executor children"]}),s.length>0?n.jsx("div",{className:"grid gap-2",children:s.map(m=>n.jsx(Sr,{process:m},m.pid))}):n.jsx(U,{text:"No child process detected for the executor."})]})]})]})}function Wi({alerts:e,loading:t,now:s}){if(t&&!e)return n.jsx(U,{text:"Loading monitor alerts..."});const r=e??[];return r.length===0?n.jsx(U,{text:"No active monitor alerts."}):n.jsx("div",{className:"grid gap-2",children:r.slice(0,5).map(i=>n.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-2.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs font-semibold text-red-700",children:[n.jsx(pr,{className:"h-3.5 w-3.5","aria-hidden":!0}),n.jsx("span",{children:i.severity}),n.jsx("span",{className:"font-normal text-red-600",children:wr(i.last_seen,s)}),i.observations>1?n.jsxs("span",{className:"rounded-full border border-red-200 bg-white px-1.5",children:[i.observations,"x"]}):null]}),n.jsx("p",{className:"mt-1 break-words text-sm font-medium text-red-950 [overflow-wrap:anywhere]",children:i.message})]},i.fingerprint))})}function Sr({process:e}){var r,i;const t=((r=e.io_bytes)==null?void 0:r.read_bytes)??0,s=((i=e.io_bytes)==null?void 0:i.write_bytes)??0;return n.jsxs("div",{className:"rounded-md border border-border bg-white p-2.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[n.jsxs("span",{className:"font-mono",children:["pid ",e.pid]}),n.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["state ",e.state]}),n.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["cpu ",e.cpu_ticks]}),n.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["I/O ",_r(t+s)]})]}),n.jsx("div",{className:"mt-2 break-words font-mono text-xs text-muted",children:e.cmd||"unknown command"}),e.children&&e.children.length>0?n.jsx("div",{className:"mt-3 border-l-2 border-border pl-3",children:e.children.map(o=>n.jsx(Sr,{process:o},o.pid))}):null]})}function Qt({label:e,value:t}){return n.jsxs("div",{className:"rounded-md border border-border bg-white px-2 py-2",children:[n.jsx("div",{className:"font-mono text-sm font-semibold text-foreground",children:t}),n.jsx("div",{className:"mt-0.5 text-[11px] font-semibold uppercase text-muted",children:e})]})}function Mt({label:e,value:t,detail:s}){return n.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-2.5",children:[n.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:e}),n.jsx("div",{className:"mt-1 truncate text-sm font-semibold text-foreground",children:t}),n.jsx("div",{className:"mt-1 truncate font-mono text-[11px] text-muted",children:s})]})}function $s(e,t){const s=e.find(i=>i[t]),r=s==null?void 0:s[t];return!s||!r?"no running heartbeat":`#${s.id} ${r.phase} ${re(r.age_seconds??null)}`}function Rr(e){return[e,...(e.children??[]).flatMap(t=>Rr(t))]}function Vi(e){var t,s;return(((t=e.io_bytes)==null?void 0:t.read_bytes)??0)+(((s=e.io_bytes)==null?void 0:s.write_bytes)??0)}function _r(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}function ee({label:e,value:t}){return n.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[n.jsx("div",{className:"text-xs font-semibold text-muted",children:e}),n.jsx("div",{className:"mt-1 min-w-0 break-words text-sm [overflow-wrap:anywhere]",children:t})]})}function xs({status:e}){const t=Pi(e),s=e==="running"||e==="pending";return n.jsxs("span",{className:de("inline-flex min-h-6 items-center gap-1.5 rounded-full border px-2 text-xs font-semibold",t.badge),children:[n.jsx("span",{className:de("h-2.5 w-2.5 rounded-full",t.dot,s&&"animate-live-pulse"),"aria-hidden":!0}),e]})}function U({text:e}){return n.jsx("div",{className:"rounded-md border border-dashed border-border p-6 text-center text-sm text-muted",children:e})}function Be({tone:e,text:t}){return n.jsx("div",{className:de("rounded-md border p-3 text-sm",e==="error"&&"border-red-300 bg-red-50 text-red-700"),children:t})}function At({onClick:e,compactOnMobile:t=!1}){return n.jsxs("button",{className:de("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50",t?"w-8 px-0 sm:w-auto sm:px-3":"px-3"),onClick:e,type:"button","aria-label":"Refresh",children:[n.jsx(An,{className:"h-4 w-4","aria-hidden":!0}),n.jsx("span",{className:de(t&&"hidden sm:inline"),children:"Refresh"})]})}qr.createRoot(document.getElementById("root")).render(n.jsx(J.StrictMode,{children:n.jsx(fn,{client:bi,children:n.jsx(Ti,{})})})); diff --git a/src/github_agent_bridge/dashboard_static/assets/index-Ck-5PREv.css b/src/github_agent_bridge/dashboard_static/assets/index-CMqlfGS7.css similarity index 99% rename from src/github_agent_bridge/dashboard_static/assets/index-Ck-5PREv.css rename to src/github_agent_bridge/dashboard_static/assets/index-CMqlfGS7.css index ae85971..e23d8a5 100644 --- a/src/github_agent_bridge/dashboard_static/assets/index-Ck-5PREv.css +++ b/src/github_agent_bridge/dashboard_static/assets/index-CMqlfGS7.css @@ -1 +1 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}#root{overflow-x:hidden}.animate-live-pulse{animation:live-pulse 1.25s ease-in-out infinite}.control{height:36px;width:100%;border-radius:6px;border:1px solid hsl(214 20% 88%);background:#fff;padding:0 10px;color:#1a222e;font:inherit}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.max-h-56{max-height:14rem}.max-h-72{max-height:18rem}.max-h-\[460px\]{max-height:460px}.max-h-\[620px\]{max-height:620px}.max-h-\[640px\]{max-height:640px}.min-h-6{min-height:1.5rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[190px\]{min-width:190px}.min-w-full{min-width:100%}.max-w-\[1440px\]{max-width:1440px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:8px}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-border{--tw-border-opacity: 1;border-color:hsl(214 20% 88% / var(--tw-border-opacity, 1))}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-primary{--tw-border-opacity: 1;border-color:hsl(212 92% 42% / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-background{--tw-bg-opacity: 1;background-color:hsl(210 20% 98% / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-panel{--tw-bg-opacity: 1;background-color:hsl(0 0% 100% / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:hsl(212 92% 42% / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-1{padding:.25rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pr-1{padding-right:.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{--tw-text-opacity: 1;color:hsl(216 28% 14% / var(--tw-text-opacity, 1))}.text-muted{--tw-text-opacity: 1;color:hsl(215 16% 47% / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:hsl(212 92% 42% / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-950{--tw-text-opacity: 1;color:rgb(69 10 10 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.shadow-\[0_1px_0_rgba\(15\,23\,42\,0\.03\)\]{--tw-shadow: 0 1px 0 rgba(15,23,42,.03);--tw-shadow-colored: 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}@media(prefers-reduced-motion:reduce){.animate-live-pulse{animation:none}}.marker\:hidden *::marker{display:none}.marker\:hidden::marker{display:none}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.group[open] .group-open\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media(min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:p-4{padding:1rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:pl-0{padding-left:0}}@media(min-width:768px){.md\:mt-4{margin-top:1rem}.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:p-4{padding:1rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media(min-width:1024px){.lg\:grid-cols-\[minmax\(0\,0\.9fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,2fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}} +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}#root{overflow-x:hidden}.animate-live-pulse{animation:live-pulse 1.25s ease-in-out infinite}.control{height:36px;width:100%;border-radius:6px;border:1px solid hsl(214 20% 88%);background:#fff;padding:0 10px;color:#1a222e;font:inherit}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.max-h-56{max-height:14rem}.max-h-72{max-height:18rem}.max-h-\[460px\]{max-height:460px}.max-h-\[620px\]{max-height:620px}.max-h-\[640px\]{max-height:640px}.min-h-6{min-height:1.5rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[190px\]{min-width:190px}.min-w-full{min-width:100%}.max-w-\[1440px\]{max-width:1440px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:8px}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-border{--tw-border-opacity: 1;border-color:hsl(214 20% 88% / var(--tw-border-opacity, 1))}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-primary{--tw-border-opacity: 1;border-color:hsl(212 92% 42% / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-background{--tw-bg-opacity: 1;background-color:hsl(210 20% 98% / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-panel{--tw-bg-opacity: 1;background-color:hsl(0 0% 100% / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:hsl(212 92% 42% / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-1{padding:.25rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pr-1{padding-right:.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{--tw-text-opacity: 1;color:hsl(216 28% 14% / var(--tw-text-opacity, 1))}.text-muted{--tw-text-opacity: 1;color:hsl(215 16% 47% / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:hsl(212 92% 42% / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-950{--tw-text-opacity: 1;color:rgb(69 10 10 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.shadow-\[0_1px_0_rgba\(15\,23\,42\,0\.03\)\]{--tw-shadow: 0 1px 0 rgba(15,23,42,.03);--tw-shadow-colored: 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}@media(prefers-reduced-motion:reduce){.animate-live-pulse{animation:none}}.marker\:hidden *::marker{display:none}.marker\:hidden::marker{display:none}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.group[open] .group-open\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media(min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:p-4{padding:1rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:pl-0{padding-left:0}}@media(min-width:768px){.md\:mt-4{margin-top:1rem}.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:p-4{padding:1rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media(min-width:1024px){.lg\:grid-cols-\[minmax\(0\,0\.9fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}} diff --git a/src/github_agent_bridge/dashboard_static/index.html b/src/github_agent_bridge/dashboard_static/index.html index a2dfdbd..49f029d 100644 --- a/src/github_agent_bridge/dashboard_static/index.html +++ b/src/github_agent_bridge/dashboard_static/index.html @@ -4,9 +4,9 @@ GitHub Agent Bridge Dashboard - + - +