@pushpalsdev/cli 1.0.55 → 1.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/monitor-ui/+not-found.html +1 -1
- package/monitor-ui/_expo/static/js/web/{entry-5e6db7139bc13703a24f952bd64faf4c.js → entry-5fe4b1b2c73e657048674b0a7f392de9.js} +2 -2
- package/monitor-ui/_sitemap.html +1 -1
- package/monitor-ui/index.html +1 -1
- package/monitor-ui/modal.html +1 -1
- package/package.json +1 -1
- package/runtime/sandbox/apps/workerpals/src/execute_job.ts +122 -34
|
@@ -435,5 +435,5 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
435
435
|
@keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}}
|
|
436
436
|
@keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}}
|
|
437
437
|
@keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}}
|
|
438
|
-
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"></div></div><script src="/_expo/static/js/web/entry-
|
|
438
|
+
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"></div></div><script src="/_expo/static/js/web/entry-5fe4b1b2c73e657048674b0a7f392de9.js" defer></script>
|
|
439
439
|
</body></html>
|
|
@@ -1022,11 +1022,11 @@ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e
|
|
|
1022
1022
|
__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.ChatComposer=function(e){const l=(0,t.c)(50),{theme:f,input:x,setInput:y,connected:S,onSend:C,onComposerKeyPress:P}=e;let j;l[0]!==y?(j=e=>{y(t=>{const n=String(t??"").trim();return n?n.toLowerCase().includes(e.toLowerCase())?t:`${n}\n\n${e}`:e})},l[0]=y,l[1]=j):j=l[1];const k=j;let z,H,v,F,M,L;l[2]!==k||l[3]!==f.border||l[4]!==f.fontSans||l[5]!==f.panelAlt||l[6]!==f.textMuted?(z=b.map(e=>(0,p.jsx)(n.default,{style:[h.quickPromptChip,{borderColor:f.border,backgroundColor:f.panelAlt}],onPress:()=>k(e.text),accessibilityRole:"button",accessibilityLabel:`Apply ${e.label} prompt template`,accessibilityHint:"Adds this template text into the composer.",children:(0,p.jsx)(s.default,{style:[h.quickPromptLabel,{color:f.textMuted,fontFamily:f.fontSans}],children:e.label})},e.label)),l[2]=k,l[3]=f.border,l[4]=f.fontSans,l[5]=f.panelAlt,l[6]=f.textMuted,l[7]=z):z=l[7];l[8]!==z?(H=(0,p.jsx)(u.default,{style:h.quickPromptContainer,children:(0,p.jsx)(o.default,{horizontal:!0,showsHorizontalScrollIndicator:!1,children:z})}),l[8]=z,l[9]=H):H=l[9];l[10]!==f.border||l[11]!==f.panel?(v=[h.composer,{borderColor:f.border,backgroundColor:f.panel}],l[10]=f.border,l[11]=f.panel,l[12]=v):v=l[12];l[13]!==f.border||l[14]!==f.fontSans||l[15]!==f.inputBg||l[16]!==f.text?(F=[h.composerInput,{color:f.text,borderColor:f.border,backgroundColor:f.inputBg,fontFamily:f.fontSans}],l[13]=f.border,l[14]=f.fontSans,l[15]=f.inputBg,l[16]=f.text,l[17]=F):F=l[17];l[18]!==x||l[19]!==P||l[20]!==y||l[21]!==F||l[22]!==f.textMuted?(M=(0,p.jsx)(c.default,{style:F,value:x,onChangeText:y,placeholder:"Ask PushPals anything...",placeholderTextColor:f.textMuted,multiline:!0,onKeyPress:P,accessibilityLabel:"Chat composer input"}),l[18]=x,l[19]=P,l[20]=y,l[21]=F,l[22]=f.textMuted,l[23]=M):M=l[23];l[24]!==S||l[25]!==x?(L=!S||!x.trim(),l[24]=S,l[25]=x,l[26]=L):L=l[26];const q=S&&x.trim()?1:.45;let I,w,A,W,B,R,_;l[27]!==q||l[28]!==f.accent?(I=[h.sendButton,{backgroundColor:f.accent,opacity:q}],l[27]=q,l[28]=f.accent,l[29]=I):I=l[29];l[30]!==f.fontSans?(w=(0,p.jsx)(s.default,{style:[h.sendLabel,{fontFamily:f.fontSans}],children:"Send"}),l[30]=f.fontSans,l[31]=w):w=l[31];l[32]!==C||l[33]!==w||l[34]!==L||l[35]!==I?(A=(0,p.jsx)(n.default,{onPress:C,disabled:L,style:I,accessibilityRole:"button",accessibilityLabel:"Send message",accessibilityHint:"Submits the current prompt through the local PushPals server session.",children:w}),l[32]=C,l[33]=w,l[34]=L,l[35]=I,l[36]=A):A=l[36];l[37]!==f.fontSans||l[38]!==f.textMuted?(W=(0,p.jsx)(s.default,{style:[h.shortcutHint,{color:f.textMuted,fontFamily:f.fontSans}],children:"Alt+Enter / Cmd+Enter"}),l[37]=f.fontSans,l[38]=f.textMuted,l[39]=W):W=l[39];l[40]!==A||l[41]!==W?(B=(0,p.jsxs)(u.default,{style:h.sendWrap,children:[A,W]}),l[40]=A,l[41]=W,l[42]=B):B=l[42];l[43]!==B||l[44]!==v||l[45]!==M?(R=(0,p.jsxs)(u.default,{style:v,children:[M,B]}),l[43]=B,l[44]=v,l[45]=M,l[46]=R):R=l[46];l[47]!==R||l[48]!==H?(_=(0,p.jsxs)(p.Fragment,{children:[H,R]}),l[47]=R,l[48]=H,l[49]=_):_=l[49];return _};var t=r(d[0]);r(d[1]);var n=e(r(d[2])),o=e(r(d[3])),l=e(r(d[4])),s=e(r(d[5])),c=e(r(d[6])),u=e(r(d[7])),p=r(d[8]);const b=[{label:"Plan & Scope",text:"Plan this change with explicit file targets, acceptance criteria, and validation steps before execution:"},{label:"Execute",text:"Implement this task and include a concise progress summary every major step:"},{label:"Status Digest",text:"Summarize active requests, running jobs, and what I should review next."},{label:"Autonomy Sync",text:"Compare my current request queue with autonomous objectives and flag overlap or conflicts."}];const h=l.default.create({quickPromptContainer:{paddingHorizontal:12,paddingBottom:8},quickPromptChip:{borderWidth:1,borderRadius:999,paddingHorizontal:12,paddingVertical:6,marginRight:8},quickPromptLabel:{fontSize:11,fontWeight:"700",letterSpacing:.2},composer:{flexDirection:"row",alignItems:"flex-end",borderTopWidth:1,paddingHorizontal:12,paddingVertical:10},composerInput:{flex:1,minHeight:44,maxHeight:130,borderWidth:1,borderRadius:12,paddingHorizontal:11,paddingVertical:8,fontSize:14},sendWrap:{marginLeft:8,alignItems:"center"},sendButton:{height:44,borderRadius:12,paddingHorizontal:16,justifyContent:"center",alignItems:"center"},sendLabel:{color:"#FFFFFF",fontWeight:"700",fontSize:13},shortcutHint:{marginTop:4,fontSize:10,fontWeight:"600"}})},1011,[1134,21,417,317,136,123,427,310,2]);
|
|
1023
1023
|
__d(function(g,r,i,a,m,e,d){"use strict";function b(b){const l=b.match(/workerpal-([a-z0-9]+)/i);return l?.[1]?l[1].slice(0,8):null}Object.defineProperty(e,'__esModule',{value:!0}),e.resolveChatSpeaker=function(l,o){const t=(l??"").trim(),n=t.toLowerCase(),u="dark"===o.mode?{local:{bg:"#1A3342",border:"#2B6984",label:"#93D5FF"},remote:{bg:"#222C48",border:"#4F66D9",label:"#B6C5FF"},worker:{bg:"#213628",border:"#4D9F67",label:"#A4E2BA"},scm:{bg:"#352919",border:"#B88949",label:"#FFD4A2"},server:{bg:"#2A2638",border:"#7D6BB3",label:"#D4C5FF"},agent:{bg:o.bubbleAgent,border:o.bubbleAgentBorder,label:o.accent}}:{local:{bg:"#E9F6FF",border:"#9CCBF0",label:"#165B86"},remote:{bg:"#EEF0FF",border:"#AAB8F8",label:"#35449A"},worker:{bg:"#EAF8EC",border:"#9CD2AE",label:"#1E6C40"},scm:{bg:"#FFF4E7",border:"#E1B67A",label:"#8A5D1D"},server:{bg:"#F0EDFA",border:"#B8AFE5",label:"#5C4DA5"},agent:{bg:o.bubbleAgent,border:o.bubbleAgentBorder,label:o.accentText}};if(n.includes("localbuddy"))return{label:"Local Buddy",bubbleBg:u.local.bg,bubbleBorder:u.local.border,labelColor:u.local.label};if(n.includes("remotebuddy"))return{label:"Remote Buddy",bubbleBg:u.remote.bg,bubbleBorder:u.remote.border,labelColor:u.remote.label};if(n.includes("workerpal")||n.includes("workerpals")){const l=b(n);return{label:l?`WorkerPal ${l}`:"WorkerPal",bubbleBg:u.worker.bg,bubbleBorder:u.worker.border,labelColor:u.worker.label}}if(n.includes("source_control_manager")||n.includes("sourcecontrolmanager")||n.includes("scm"))return{label:"Source Control Manager",bubbleBg:u.scm.bg,bubbleBorder:u.scm.border,labelColor:u.scm.label};if(n.includes("server"))return{label:"Server",bubbleBg:u.server.bg,bubbleBorder:u.server.border,labelColor:u.server.label};if(!t)return{label:"Agent",bubbleBg:u.agent.bg,bubbleBorder:u.agent.border,labelColor:u.agent.label};const c=t.replace(/^agent:/i,"").replace(/[-_]+/g," ").trim();return{label:c.replace(/\b\w/g,b=>b.toUpperCase())||"Agent",bubbleBg:u.agent.bg,bubbleBorder:u.agent.border,labelColor:u.agent.label}}},1012,[]);
|
|
1024
1024
|
__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.CoordinationPane=function(e){const s=(0,t.c)(134),{theme:b,isWide:T,rows:W,requestCounts:A,jobCounts:B,completionCounts:L,onReusePrompt:k,onOpenLogs:z}=e,_=v;let $;s[0]===Symbol.for("react.memo_cache_sentinel")?($=async e=>{const t=_(e);if(t)try{if(!await n.default.canOpenURL(t))return void console.error(`[CoordinationPane] Cannot open review URL: ${t}`);await n.default.openURL(t)}catch(e){const n=e;console.error(`[CoordinationPane] Failed to open review URL: ${t}`,n)}},s[0]=$):$=s[0];const V=$;let D;s[1]!==W?(D=W.filter(M),s[1]=W,s[2]=D):D=s[2];const H=D.length;let I;s[3]!==W?(I=W.filter(q),s[3]=W,s[4]=I):I=s[4];const U=I.length;let O;s[5]!==W?(O=W.filter(F),s[5]=W,s[6]=O):O=s[6];const N=O.length;let E;s[7]!==W?(E=W.filter(R),s[7]=W,s[8]=E):E=s[8];const Q=E.length;let G,J,K,X,Y,Z,ee,te,ne,oe,le,re,ie,ae,se,de;if(s[9]!==N||s[10]!==Q||s[11]!==L||s[12]!==U||s[13]!==T||s[14]!==B||s[15]!==z||s[16]!==k||s[17]!==H||s[18]!==A||s[19]!==W||s[20]!==b){const e=W.filter(w).slice(0,8),t=W.filter(C).slice(0,8);let n,R,F,q;if(s[34]!==N||s[35]!==Q||s[36]!==L||s[37]!==U||s[38]!==T||s[39]!==B||s[40]!==k||s[41]!==H||s[42]!==A||s[43]!==W||s[44]!==b){const e=W.slice(0,24);K=l.default,ee=P.fill,te=P.content;const t=String(H);let S;s[55]!==L?(S=(0,f.queueValue)(L,"processed"),s[55]=L,s[56]=S):S=s[56];const C=`${S} processed completions`,w=H>0?"positive":"accent";let M;s[57]!==t||s[58]!==C||s[59]!==w||s[60]!==b?(M=(0,y.jsx)(p.MetricTile,{title:"Ready For Review",value:t,detail:C,tone:w,theme:b}),s[57]=t,s[58]=C,s[59]=w,s[60]=b,s[61]=M):M=s[61];const v=String(N);let z;s[62]!==B?(z=(0,f.queueValue)(B,"claimed"),s[62]=B,s[63]=z):z=s[63];const _=`${z} running jobs`,$=N>0?"warning":"accent";let V;s[64]!==v||s[65]!==_||s[66]!==$||s[67]!==b?(V=(0,y.jsx)(p.MetricTile,{title:"Active Handoffs",value:v,detail:_,tone:$,theme:b}),s[64]=v,s[65]=_,s[66]=$,s[67]=b,s[68]=V):V=s[68];const D=String(Q);let I;s[69]!==A?(I=(0,f.queueValue)(A,"pending"),s[69]=A,s[70]=I):I=s[70];const O=`${I} pending requests`,E=Q>0?"warning":"positive";let G;s[71]!==D||s[72]!==O||s[73]!==E||s[74]!==b?(G=(0,y.jsx)(p.MetricTile,{title:"Awaiting Remote",value:D,detail:O,tone:E,theme:b}),s[71]=D,s[72]=O,s[73]=E,s[74]=b,s[75]=G):G=s[75];const X=String(U);let Z;s[76]!==B?(Z=(0,f.queueValue)(B,"failed"),s[76]=B,s[77]=Z):Z=s[77];const oe=`${Z} failed jobs`,le=U>0?"danger":"positive";let re;s[78]!==X||s[79]!==oe||s[80]!==le||s[81]!==b?(re=(0,y.jsx)(p.MetricTile,{title:"Blocked",value:X,detail:oe,tone:le,theme:b}),s[78]=X,s[79]=oe,s[80]=le,s[81]=b,s[82]=re):re=s[82],s[83]!==M||s[84]!==V||s[85]!==G||s[86]!==re?(ne=(0,y.jsxs)(u.default,{style:P.metricRow,children:[M,V,G,re]}),s[83]=M,s[84]=V,s[85]=G,s[86]=re,s[87]=ne):ne=s[87],J=u.default;const ie=T&&P.gridWide;let ae,se;s[88]!==ie?(Y=[P.grid,ie],s[88]=ie,s[89]=Y):Y=s[89],n=u.default,s[90]!==b.border||s[91]!==b.panel?(R=[P.mainPanel,{borderColor:b.border,backgroundColor:b.panel}],s[90]=b.border,s[91]=b.panel,s[92]=R):R=s[92],s[93]!==b.fontSans||s[94]!==b.text?(ae=(0,y.jsx)(c.default,{style:[P.sectionTitle,{color:b.text,fontFamily:b.fontSans}],children:"Change Coordination Board"}),s[93]=b.fontSans,s[94]=b.text,s[95]=ae):ae=s[95],s[96]!==b.fontSans||s[97]!==b.textMuted?(se=[P.systemMeta,{color:b.textMuted,fontFamily:b.fontSans}],s[96]=b.fontSans,s[97]=b.textMuted,s[98]=se):se=s[98],F=(0,y.jsxs)(u.default,{style:P.rowBetween,children:[ae,(0,y.jsxs)(c.default,{style:se,children:[e.length," latest requests"]})]}),q=0===e.length?(0,y.jsxs)(u.default,{style:P.emptyState,children:[(0,y.jsx)(c.default,{style:[P.emptyTitle,{color:b.text,fontFamily:b.fontSans}],children:"Nothing to coordinate yet"}),(0,y.jsx)(c.default,{style:[P.emptySubtitle,{color:b.textMuted,fontFamily:b.fontSans}],children:"Send a task from chat and this board will trace the full handoff from request to integration."})]}):e.map(e=>{const t=x(e.stage),n=(0,f.toneColor)(b,t),l=e.completions[0],s=l&&"processed"===l.status?`${l.branch??"branch"} @ ${l.commitSha?.slice(0,8)??"--"}`:null;return(0,y.jsxs)(u.default,{style:[P.card,{borderColor:b.border,backgroundColor:b.panelAlt}],children:[(0,y.jsxs)(u.default,{style:P.rowBetween,children:[(0,y.jsx)(c.default,{style:[P.requestId,{color:b.text,fontFamily:b.fontMono}],children:e.request.id.slice(0,8)}),(0,y.jsx)(u.default,{style:[P.statusPill,{borderColor:`${n}66`,backgroundColor:`${n}22`}],children:(0,y.jsx)(c.default,{style:[P.statusPillText,{color:n,fontFamily:b.fontSans}],children:h(e.stage)})})]}),(0,y.jsx)(c.default,{style:[P.requestPrompt,{color:b.text,fontFamily:b.fontSans}],children:(0,f.clip)(e.request.prompt,280)}),(0,y.jsxs)(c.default,{style:[P.requestSubline,{color:b.textMuted,fontFamily:b.fontSans}],children:["priority ",e.request.priority??"normal"," | created"," ",(0,f.prettyTs)(e.request.createdAt)," | updated ",(0,f.relativeMs)(e.request.updatedAt)]}),(0,y.jsx)(c.default,{style:[P.stageDetail,{color:b.textMuted,fontFamily:b.fontSans}],children:e.stageDetail}),(0,y.jsxs)(u.default,{style:P.laneRow,children:[(0,y.jsxs)(u.default,{style:[P.laneChip,{borderColor:b.border,backgroundColor:b.panel}],children:[(0,y.jsx)(c.default,{style:[P.laneLabel,{color:b.textMuted,fontFamily:b.fontSans}],children:"User"}),(0,y.jsx)(c.default,{style:[P.laneValue,{color:b.text,fontFamily:b.fontSans}],children:"Requested"})]}),(0,y.jsxs)(u.default,{style:[P.laneChip,{borderColor:b.border,backgroundColor:b.panel}],children:[(0,y.jsx)(c.default,{style:[P.laneLabel,{color:b.textMuted,fontFamily:b.fontSans}],children:"Remote"}),(0,y.jsx)(c.default,{style:[P.laneValue,{color:b.text,fontFamily:b.fontSans}],children:e.jobs.length>0?`${e.jobs.length} job(s)`:"Waiting"})]}),(0,y.jsxs)(u.default,{style:[P.laneChip,{borderColor:b.border,backgroundColor:b.panel}],children:[(0,y.jsx)(c.default,{style:[P.laneLabel,{color:b.textMuted,fontFamily:b.fontSans}],children:"Worker"}),(0,y.jsx)(c.default,{style:[P.laneValue,{color:b.text,fontFamily:b.fontSans}],children:e.jobs.some(j)?"Running":"Idle"})]}),(0,y.jsxs)(u.default,{style:[P.laneChip,{borderColor:b.border,backgroundColor:b.panel}],children:[(0,y.jsx)(c.default,{style:[P.laneLabel,{color:b.textMuted,fontFamily:b.fontSans}],children:"SCM"}),(0,y.jsx)(c.default,{style:[P.laneValue,{color:b.text,fontFamily:b.fontSans}],children:s?"Ready":"Pending"})]})]}),s?(0,y.jsxs)(c.default,{style:[P.reviewRef,{color:b.positive,fontFamily:b.fontMono}],children:["review ",s]}):null,(0,y.jsx)(o.default,{style:[P.reuseButton,{borderColor:b.border,backgroundColor:b.panel}],onPress:()=>k(e.request.prompt),accessibilityRole:"button",accessibilityLabel:`Reuse request ${e.request.id.slice(0,8)} prompt`,accessibilityHint:"Moves this prompt back into chat composer for edits or retry.",children:(0,y.jsx)(c.default,{style:[P.reuseLabel,{color:b.accent,fontFamily:b.fontSans}],children:"Reuse Prompt In Chat"})})]},e.request.id)}),s[34]=N,s[35]=Q,s[36]=L,s[37]=U,s[38]=T,s[39]=B,s[40]=k,s[41]=H,s[42]=A,s[43]=W,s[44]=b,s[45]=J,s[46]=K,s[47]=n,s[48]=Y,s[49]=ee,s[50]=te,s[51]=ne,s[52]=R,s[53]=F,s[54]=q}else J=s[45],K=s[46],n=s[47],Y=s[48],ee=s[49],te=s[50],ne=s[51],R=s[52],F=s[53],q=s[54];s[99]!==n||s[100]!==R||s[101]!==F||s[102]!==q?(Z=(0,y.jsxs)(n,{style:R,children:[F,q]}),s[99]=n,s[100]=R,s[101]=F,s[102]=q,s[103]=Z):Z=s[103],G=u.default;const M=T&&P.sidePanelWide;let v;s[104]!==b.border||s[105]!==b.panel?(v={borderColor:b.border,backgroundColor:b.panel},s[104]=b.border,s[105]=b.panel,s[106]=v):v=s[106],s[107]!==M||s[108]!==v?(oe=[P.sidePanel,M,v],s[107]=M,s[108]=v,s[109]=oe):oe=s[109],s[110]!==b.fontSans||s[111]!==b.text?(le=(0,y.jsx)(c.default,{style:[P.sectionTitle,{color:b.text,fontFamily:b.fontSans}],children:"Review Queue"}),s[110]=b.fontSans,s[111]=b.text,s[112]=le):le=s[112],re=0===e.length?(0,y.jsx)(c.default,{style:[P.emptySubtitle,{color:b.textMuted,fontFamily:b.fontSans}],children:"No processed completions yet."}):e.map(e=>{const t=e.completions.find(S),n=_(t);return(0,y.jsxs)(u.default,{style:[P.sideCard,{borderColor:b.border,backgroundColor:b.panelAlt}],children:[(0,y.jsx)(c.default,{style:[P.requestId,{color:b.text,fontFamily:b.fontMono}],children:e.request.id.slice(0,8)}),(0,y.jsx)(c.default,{style:[P.sidePrompt,{color:b.text,fontFamily:b.fontSans}],children:(0,f.clip)(e.request.prompt,110)}),(0,y.jsxs)(c.default,{style:[P.sideMeta,{color:b.positive,fontFamily:b.fontMono}],children:[t?.branch??"--"," | ",t?.commitSha?.slice(0,8)??"--"]}),(0,y.jsxs)(u.default,{style:P.sideActions,children:[(0,y.jsx)(o.default,{style:[P.sideActionButton,{borderColor:b.border,backgroundColor:b.panel}],onPress:()=>k(e.request.prompt),children:(0,y.jsx)(c.default,{style:[P.sideActionLabel,{color:b.accent,fontFamily:b.fontSans}],children:"Retry"})}),(0,y.jsx)(o.default,{style:[P.sideActionButton,{borderColor:b.border,backgroundColor:b.panel}],onPress:()=>z(e),children:(0,y.jsx)(c.default,{style:[P.sideActionLabel,{color:b.accent,fontFamily:b.fontSans}],children:"Open Logs"})}),(0,y.jsx)(o.default,{style:[P.sideActionButton,P.sideActionButtonWide,{borderColor:b.border,backgroundColor:b.panel},!n&&P.sideActionDisabled],onPress:()=>{V(t)},disabled:!n,children:(0,y.jsx)(c.default,{style:[P.sideActionLabel,{color:n?b.positive:b.textMuted,fontFamily:b.fontSans}],children:"PR"})})]})]},`review-${e.request.id}`)}),s[113]!==b.fontSans||s[114]!==b.text?(ie=(0,y.jsx)(c.default,{style:[P.sectionTitle,{color:b.text,fontFamily:b.fontSans,marginTop:14}],children:"Needs Attention"}),s[113]=b.fontSans,s[114]=b.text,s[115]=ie):ie=s[115],X=0===t.length?(0,y.jsx)(c.default,{style:[P.emptySubtitle,{color:b.textMuted,fontFamily:b.fontSans}],children:"No failed coordination chains."}):t.map(e=>(0,y.jsxs)(u.default,{style:[P.sideCard,{borderColor:`${b.danger}66`,backgroundColor:`${b.danger}14`}],children:[(0,y.jsx)(c.default,{style:[P.requestId,{color:b.text,fontFamily:b.fontMono}],children:e.request.id.slice(0,8)}),(0,y.jsx)(c.default,{style:[P.sidePrompt,{color:b.text,fontFamily:b.fontSans}],children:(0,f.clip)(e.request.prompt,110)}),(0,y.jsx)(c.default,{style:[P.sideMeta,{color:b.danger,fontFamily:b.fontSans}],children:e.stageDetail}),(0,y.jsxs)(u.default,{style:P.sideActions,children:[(0,y.jsx)(o.default,{style:[P.sideActionButton,{borderColor:b.border,backgroundColor:b.panel}],onPress:()=>k(e.request.prompt),children:(0,y.jsx)(c.default,{style:[P.sideActionLabel,{color:b.accent,fontFamily:b.fontSans}],children:"Retry"})}),(0,y.jsx)(o.default,{style:[P.sideActionButton,{borderColor:b.border,backgroundColor:b.panel}],onPress:()=>z(e),children:(0,y.jsx)(c.default,{style:[P.sideActionLabel,{color:b.accent,fontFamily:b.fontSans}],children:"Open Logs"})})]})]},`blocked-${e.request.id}`)),s[9]=N,s[10]=Q,s[11]=L,s[12]=U,s[13]=T,s[14]=B,s[15]=z,s[16]=k,s[17]=H,s[18]=A,s[19]=W,s[20]=b,s[21]=G,s[22]=J,s[23]=K,s[24]=X,s[25]=Y,s[26]=Z,s[27]=ee,s[28]=te,s[29]=ne,s[30]=oe,s[31]=le,s[32]=re,s[33]=ie}else G=s[21],J=s[22],K=s[23],X=s[24],Y=s[25],Z=s[26],ee=s[27],te=s[28],ne=s[29],oe=s[30],le=s[31],re=s[32],ie=s[33];s[116]!==G||s[117]!==X||s[118]!==oe||s[119]!==le||s[120]!==re||s[121]!==ie?(ae=(0,y.jsxs)(G,{style:oe,children:[le,re,ie,X]}),s[116]=G,s[117]=X,s[118]=oe,s[119]=le,s[120]=re,s[121]=ie,s[122]=ae):ae=s[122];s[123]!==J||s[124]!==Y||s[125]!==Z||s[126]!==ae?(se=(0,y.jsxs)(J,{style:Y,children:[Z,ae]}),s[123]=J,s[124]=Y,s[125]=Z,s[126]=ae,s[127]=se):se=s[127];s[128]!==K||s[129]!==ee||s[130]!==te||s[131]!==ne||s[132]!==se?(de=(0,y.jsxs)(K,{style:ee,contentContainerStyle:te,children:[ne,se]}),s[128]=K,s[129]=ee,s[130]=te,s[131]=ne,s[132]=se,s[133]=de):de=s[133];return de};var t=r(d[0]);r(d[1]);var n=e(r(d[2])),o=e(r(d[3])),l=e(r(d[4])),s=e(r(d[5])),c=e(r(d[6])),u=e(r(d[7])),f=r(d[8]),p=r(d[9]),y=r(d[10]);function h(e){return"awaiting_remote"===e?"Awaiting Remote":"planning"===e?"Planning":"executing"===e?"Executing":"ready_for_review"===e?"Ready For Review":"Failed"}function x(e){return"ready_for_review"===e?"positive":"failed"===e?"danger":"planning"===e||"executing"===e?"warning":"accent"}function b(e){const t=String(e??"").trim();if(!t)return null;const n=t.match(/https?:\/\/[^\s)]+/i);return n?.[0]??null}function S(e){return"processed"===e.status}function j(e){return"claimed"===e.status}function C(e){return"failed"===e.stage}function w(e){return"ready_for_review"===e.stage}function R(e){return"awaiting_remote"===e.stage}function F(e){return"planning"===e.stage||"executing"===e.stage}function q(e){return"failed"===e.stage}function M(e){return"ready_for_review"===e.stage}function v(e){if(!e)return null;const t=b(e.prUrl);if(t)return t;const n=b(e.prBody);if(n)return n;const o=b(e.prTitle);return o||null}const P=s.default.create({fill:{flex:1},content:{paddingHorizontal:20,paddingBottom:18},metricRow:{flexDirection:"row",flexWrap:"wrap",paddingBottom:10},grid:{flexDirection:"column"},gridWide:{flexDirection:"row",alignItems:"flex-start"},mainPanel:{borderWidth:1,borderRadius:16,padding:12,marginBottom:10,flex:1.35},sidePanel:{borderWidth:1,borderRadius:16,padding:12,marginBottom:10,flex:.85,marginLeft:0},sidePanelWide:{marginLeft:10},rowBetween:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},sectionTitle:{fontSize:16,fontWeight:"700",marginBottom:8},systemMeta:{fontSize:11,marginTop:5},emptyState:{borderRadius:16,padding:16,alignItems:"flex-start"},emptyTitle:{fontSize:18,fontWeight:"700",marginBottom:4},emptySubtitle:{fontSize:13,lineHeight:19},card:{borderWidth:1,borderRadius:14,padding:12,marginBottom:10},requestId:{fontSize:12,fontWeight:"700"},statusPill:{borderWidth:1,borderRadius:999,paddingHorizontal:9,paddingVertical:3},statusPillText:{fontSize:11,fontWeight:"700",textTransform:"uppercase"},requestPrompt:{fontSize:14,lineHeight:20,marginTop:7},requestSubline:{fontSize:12,marginTop:6},stageDetail:{fontSize:12,marginTop:6,lineHeight:18},laneRow:{flexDirection:"row",flexWrap:"wrap",marginTop:8},laneChip:{borderWidth:1,borderRadius:10,paddingHorizontal:8,paddingVertical:7,marginRight:6,marginBottom:6,minWidth:92},laneLabel:{fontSize:10,textTransform:"uppercase",letterSpacing:.3},laneValue:{marginTop:3,fontSize:12,fontWeight:"700"},reviewRef:{marginTop:6,fontSize:11},reuseButton:{borderWidth:1,borderRadius:10,marginTop:8,alignSelf:"flex-start",paddingHorizontal:10,paddingVertical:6},reuseLabel:{fontSize:11,fontWeight:"700",textTransform:"uppercase",letterSpacing:.2},sideCard:{borderWidth:1,borderRadius:12,padding:10,marginBottom:8},sidePrompt:{marginTop:5,fontSize:12,lineHeight:18},sideMeta:{marginTop:5,fontSize:11},sideActions:{flexDirection:"row",flexWrap:"wrap",marginTop:8},sideActionButton:{borderWidth:1,borderRadius:8,paddingHorizontal:8,paddingVertical:5,marginRight:6,marginBottom:6},sideActionButtonWide:{minWidth:124},sideActionDisabled:{opacity:.55},sideActionLabel:{fontSize:10,fontWeight:"700",textTransform:"uppercase",letterSpacing:.2}})},1013,[1134,21,396,417,317,136,123,310,1014,1015,2]);
|
|
1025
|
-
__d(function(g,r,i,a,m,e,d){"use strict";function n(n){return n.replace(/\.0+$/,"").replace(/(\.\d*[1-9])0+$/,"$1")}Object.defineProperty(e,'__esModule',{value:!0}),e.queueValue=function(n,t){return Number(n?.[t]??0)},e.clip=function(n,t=180){return n?n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}...`:""},e.prettyTs=function(n){if(!n)return"--";const t=Date.parse(n);return Number.isFinite(t)?new Date(t).toLocaleTimeString():"--"},e.relativeMs=function(n){if(!n)return"unknown";const t=Date.parse(n);if(!Number.isFinite(t))return"unknown";const o=Date.now()-t;return o<1e4?"just now":o<6e4?`${Math.floor(o/1e3)}s ago`:o<36e5?`${Math.floor(o/6e4)}m ago`:`${Math.floor(o/36e5)}h ago`},e.statusColor=function(n,t){const o=t.toLowerCase();if(o.includes("complete")||o.includes("processed"))return n.positive;if(o.includes("fail")||o.includes("error")||o.includes("offline"))return n.danger;return o.includes("initializing")||o.includes("busy")||o.includes("claim")||o.includes("progress")||o.includes("start")?n.warning:n.accent},e.formatPercent=function(n){return"number"==typeof n&&Number.isFinite(n)?`${Math.round(100*n)}%`:"--"},e.formatDuration=function(n){return"number"!=typeof n||!Number.isFinite(n)||n<0?"--":n<1e3?`${Math.round(n)}ms`:n<6e4?`${(n/1e3).toFixed(1)}s`:`${Math.round(n/1e3)}s`},e.formatUptime=function(n){if("number"!=typeof n||!Number.isFinite(n)||n<0)return"--";const t=Math.floor(n/1e3),o=Math.floor(t/86400),u=Math.floor(t%86400/3600),s=Math.floor(t%3600/60),c=t%60;return o>0?`${o}d ${u}h ${s}m`:u>0?`${u}h ${s}m`:s>0?`${s}m ${c}s`:`${c}s`},e.formatTokenCount=function(t){if("number"!=typeof t||!Number.isFinite(t)||t<0)return"--";if(t<1e3)return Math.round(t).toLocaleString();if(t<1e6)return`${n((t/1e3).toFixed(t<1e4?1:0))}k`;if(t<1e9)return`${n((t/1e6).toFixed(t<1e7?1:0))}M`;return t.toExponential(2).replace("+","")},e.formatEtaMs=function(n){if("number"!=typeof n||!Number.isFinite(n)||n<=0)return"now";if(n<1e3)return`${Math.round(n)}ms`;const t=Math.ceil(n/1e3);if(t<60)return`${t}s`;const o=Math.floor(t/60),u=t%60;return u>0?`${o}m ${u}s`:`${o}m`},e.parseJsonText=function(n){if(!n)return"";try{const t=JSON.parse(n);return"string"==typeof t?t:JSON.stringify(t,null,2)}catch{return n}},e.toneColor=function(n,t){return"positive"===t?n.positive:"warning"===t?n.warning:"danger"===t?n.danger:n.accent}},1014,[]);
|
|
1025
|
+
__d(function(g,r,i,a,m,e,d){"use strict";function n(n){return n.replace(/\.0+$/,"").replace(/(\.\d*[1-9])0+$/,"$1")}Object.defineProperty(e,'__esModule',{value:!0}),e.queueValue=function(n,t){return Number(n?.[t]??0)},e.clip=function(n,t=180){return n?n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}...`:""},e.prettyTs=function(n){if(!n)return"--";const t=Date.parse(n);return Number.isFinite(t)?new Date(t).toLocaleTimeString():"--"},e.relativeMs=function(n){if(!n)return"unknown";const t=Date.parse(n);if(!Number.isFinite(t))return"unknown";const o=Date.now()-t;return o<1e4?"just now":o<6e4?`${Math.floor(o/1e3)}s ago`:o<36e5?`${Math.floor(o/6e4)}m ago`:`${Math.floor(o/36e5)}h ago`},e.statusColor=function(n,t){const o=t.toLowerCase();if(o.includes("complete")||o.includes("processed"))return n.positive;if(o.includes("abandon"))return n.warning;if(o.includes("fail")||o.includes("error")||o.includes("offline"))return n.danger;return o.includes("initializing")||o.includes("busy")||o.includes("claim")||o.includes("progress")||o.includes("start")?n.warning:n.accent},e.formatPercent=function(n){return"number"==typeof n&&Number.isFinite(n)?`${Math.round(100*n)}%`:"--"},e.formatDuration=function(n){return"number"!=typeof n||!Number.isFinite(n)||n<0?"--":n<1e3?`${Math.round(n)}ms`:n<6e4?`${(n/1e3).toFixed(1)}s`:`${Math.round(n/1e3)}s`},e.formatUptime=function(n){if("number"!=typeof n||!Number.isFinite(n)||n<0)return"--";const t=Math.floor(n/1e3),o=Math.floor(t/86400),u=Math.floor(t%86400/3600),s=Math.floor(t%3600/60),c=t%60;return o>0?`${o}d ${u}h ${s}m`:u>0?`${u}h ${s}m`:s>0?`${s}m ${c}s`:`${c}s`},e.formatTokenCount=function(t){if("number"!=typeof t||!Number.isFinite(t)||t<0)return"--";if(t<1e3)return Math.round(t).toLocaleString();if(t<1e6)return`${n((t/1e3).toFixed(t<1e4?1:0))}k`;if(t<1e9)return`${n((t/1e6).toFixed(t<1e7?1:0))}M`;return t.toExponential(2).replace("+","")},e.formatEtaMs=function(n){if("number"!=typeof n||!Number.isFinite(n)||n<=0)return"now";if(n<1e3)return`${Math.round(n)}ms`;const t=Math.ceil(n/1e3);if(t<60)return`${t}s`;const o=Math.floor(t/60),u=t%60;return u>0?`${o}m ${u}s`:`${o}m`},e.parseJsonText=function(n){if(!n)return"";try{const t=JSON.parse(n);return"string"==typeof t?t:JSON.stringify(t,null,2)}catch{return n}},e.toneColor=function(n,t){return"positive"===t?n.positive:"warning"===t?n.warning:"danger"===t?n.danger:n.accent}},1014,[]);
|
|
1026
1026
|
__d(function(g,r,i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.MetricTile=function(t){const n=(0,e.c)(24),{title:f,value:u,detail:p,theme:S,tone:x}=t,h=void 0===x?"accent":x,M="positive"===h?S.positive:"warning"===h?S.warning:"danger"===h?S.danger:S.accent;let b,y,T,v,_,j,z;n[0]!==S.border||n[1]!==S.panelAlt?(b=[s.metricTile,{borderColor:S.border,backgroundColor:S.panelAlt}],n[0]=S.border,n[1]=S.panelAlt,n[2]=b):b=n[2];n[3]!==S.fontSans||n[4]!==S.textMuted?(y=[s.metricTitle,{color:S.textMuted,fontFamily:S.fontSans}],n[3]=S.fontSans,n[4]=S.textMuted,n[5]=y):y=n[5];n[6]!==y||n[7]!==f?(T=(0,c.jsx)(o.default,{style:y,children:f}),n[6]=y,n[7]=f,n[8]=T):T=n[8];n[9]!==M||n[10]!==S.fontSans?(v=[s.metricValue,{color:M,fontFamily:S.fontSans}],n[9]=M,n[10]=S.fontSans,n[11]=v):v=n[11];n[12]!==v||n[13]!==u?(_=(0,c.jsx)(o.default,{style:v,children:u}),n[12]=v,n[13]=u,n[14]=_):_=n[14];n[15]!==p||n[16]!==S.fontSans||n[17]!==S.textMuted?(j=p?(0,c.jsx)(o.default,{style:[s.metricDetail,{color:S.textMuted,fontFamily:S.fontSans}],children:p}):null,n[15]=p,n[16]=S.fontSans,n[17]=S.textMuted,n[18]=j):j=n[18];n[19]!==b||n[20]!==T||n[21]!==_||n[22]!==j?(z=(0,c.jsxs)(l.default,{style:b,children:[T,_,j]}),n[19]=b,n[20]=T,n[21]=_,n[22]=j,n[23]=z):z=n[23];return z};var e=r(d[0]);r(d[1]);var n=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),c=r(d[5]);const s=n.default.create({metricTile:{minWidth:150,flexGrow:1,borderWidth:1,borderRadius:14,paddingHorizontal:12,paddingVertical:10,marginRight:8,marginBottom:8},metricTitle:{fontSize:11,textTransform:"uppercase",letterSpacing:.7},metricValue:{fontSize:22,fontWeight:"700",marginTop:3},metricDetail:{fontSize:12,marginTop:3}})},1015,[1134,21,136,123,310,2]);
|
|
1027
1027
|
__d(function(g,r,i,_a,m,e,d){"use strict";function t(t){if(!t)return null;try{const n=JSON.parse(t);if(n&&"object"==typeof n&&!Array.isArray(n))return n}catch{return null}return null}function n(n){const o=t(n.params),s=o?.requestId;return"string"==typeof s&&s.trim()?s:null}Object.defineProperty(e,'__esModule',{value:!0}),e.deriveCoordinationRows=function(t,o,s){const a=new Map;for(const t of o){const o=n(t);if(!o)continue;const s=a.get(o)??[];s.push(t),a.set(o,s)}const u=new Map;for(const t of s){const n=u.get(t.jobId)??[];n.push(t),u.set(t.jobId,n)}return t.map(t=>{const n=[...a.get(t.id)??[]].sort((t,n)=>n.updatedAt.localeCompare(t.updatedAt)),o=n.flatMap(t=>u.get(t.id)??[]),s="failed"===t.status||n.some(t=>"failed"===t.status)||o.some(t=>"failed"===t.status),c=o.find(t=>"processed"===t.status),l=n.some(t=>"claimed"===t.status),f=n.length>0||"claimed"===t.status||"completed"===t.status;let p="awaiting_remote",h="This request has not been delegated to execution yet.";if(s)p="failed",h="A planning/execution/finalization step failed and needs intervention.";else if(c){p="ready_for_review",h=`Ready to review on ${c.branch??"integration branch"} (${c.commitSha?.slice(0,8)??"new commit"}).`}else l||"claimed"===t.status?(p="executing",h="WorkerPal execution is active or waiting on downstream completion."):f&&(p="planning",h="RemoteBuddy has routed work and prepared execution artifacts.");return{request:t,jobs:n,completions:o,stage:p,stageDetail:h}})}},1016,[]);
|
|
1028
1028
|
__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.FlowRibbon=function(e){const o=(0,t.c)(14),{theme:p,steps:b}=e;let h,x,y,w;o[0]!==p.border||o[1]!==p.panelAlt?(h=[f.wrap,{backgroundColor:p.panelAlt,borderColor:p.border}],o[0]=p.border,o[1]=p.panelAlt,o[2]=h):h=o[2];if(o[3]!==b||o[4]!==p){let e;o[6]!==b.length||o[7]!==p?(e=(e,t)=>{const n=u(p,e.tone),o=t<b.length-1;return(0,c.jsxs)(s.default,{style:f.stepOuter,children:[(0,c.jsxs)(s.default,{style:[f.step,{borderColor:`${n}66`,backgroundColor:`${n}16`}],children:[(0,c.jsx)(l.default,{style:[f.label,{color:n,fontFamily:p.fontSans}],numberOfLines:1,children:e.label}),(0,c.jsx)(l.default,{style:[f.detail,{color:p.textMuted,fontFamily:p.fontSans}],numberOfLines:2,children:e.detail})]}),o?(0,c.jsx)(s.default,{style:[f.connector,{backgroundColor:`${p.border}CC`}]}):null]},e.key)},o[6]=b.length,o[7]=p,o[8]=e):e=o[8],x=b.map(e),o[3]=b,o[4]=p,o[5]=x}else x=o[5];o[9]!==x?(y=(0,c.jsx)(n.default,{horizontal:!0,showsHorizontalScrollIndicator:!1,children:x}),o[9]=x,o[10]=y):y=o[10];o[11]!==h||o[12]!==y?(w=(0,c.jsx)(s.default,{style:h,children:y}),o[11]=h,o[12]=y,o[13]=w):w=o[13];return w};var t=r(d[0]);r(d[1]);var n=e(r(d[2])),o=e(r(d[3])),l=e(r(d[4])),s=e(r(d[5])),c=r(d[6]);function u(e,t){return"positive"===t?e.positive:"warning"===t?e.warning:"danger"===t?e.danger:e.accent}const f=o.default.create({wrap:{marginHorizontal:20,marginBottom:10,borderWidth:1,borderRadius:14,paddingHorizontal:10,paddingVertical:10},stepOuter:{flexDirection:"row",alignItems:"center"},step:{width:172,borderWidth:1,borderRadius:12,paddingHorizontal:10,paddingVertical:9},label:{fontSize:11,fontWeight:"700",textTransform:"uppercase",letterSpacing:.3},detail:{marginTop:4,fontSize:12,lineHeight:16},connector:{width:18,height:1,marginHorizontal:8}})},1017,[1134,21,317,136,123,310,2]);
|
|
1029
|
-
__d(function(g,r,i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.JobsPane=function(t){const l=(0,e.c)(110),{theme:j,isWide:F,jobs:A,jobCounts:w,pendingSnapshot:z,completions:B,completionCounts:C,sessionState:L,requestFilterId:k,jobFilterId:W,onClearFilter:I}=t;let q;t:{if(W){let t;if(l[0]!==W||l[1]!==A){let e;l[3]!==W?(e=t=>t.id===W,l[3]=W,l[4]=e):e=l[4],t=A.filter(e),l[0]=W,l[1]=A,l[2]=t}else t=l[2];q=t;break t}if(k){let t;if(l[5]!==A||l[6]!==k){let e;l[8]!==k?(e=t=>x(t.params)===k,l[8]=k,l[9]=e):e=l[9],t=A.filter(e),l[5]=A,l[6]=k,l[7]=t}else t=l[7];q=t;break t}q=A}const R=q;let D;l[10]!==R?(D=R.slice(0,40),l[10]=R,l[11]=D):D=l[11];const P=D;let v;l[12]!==R?(v=new Set(R.map(M)),l[12]=R,l[13]=v):v=l[13];const $=v;let H;t:{if(0===$.size&&(k||W)){let t;l[14]===Symbol.for("react.memo_cache_sentinel")?(t=[],l[14]=t):t=l[14],H=t;break t}if(!k&&!W){H=B;break t}let t;if(l[15]!==B||l[16]!==$){let e;l[18]!==$?(e=t=>$.has(t.jobId),l[18]=$,l[19]=e):e=l[19],t=B.filter(e),l[15]=B,l[16]=$,l[17]=t}else t=l[17];H=t}const _=H;let J;l[20]!==z?(J=new Map(z.map(S)),l[20]=z,l[21]=J):J=l[21];const V=J,N=Boolean(k||W),E=W??R[0]?.id??null;let K;l[22]!==w?(K=(0,f.queueValue)(w,"pending"),l[22]=w,l[23]=K):K=l[23];const O=String(K);let Q,G;l[24]!==O||l[25]!==j?(Q=(0,b.jsx)(p.MetricTile,{title:"Queued Jobs",value:O,tone:"warning",theme:j}),l[24]=O,l[25]=j,l[26]=Q):Q=l[26];l[27]!==w?(G=(0,f.queueValue)(w,"claimed"),l[27]=w,l[28]=G):G=l[28];const U=String(G);let X,Y;l[29]!==U||l[30]!==j?(X=(0,b.jsx)(p.MetricTile,{title:"Running Jobs",value:U,tone:"accent",theme:j}),l[29]=U,l[30]=j,l[31]=X):X=l[31];l[32]!==C?(Y=(0,f.queueValue)(C,"processed"),l[32]=C,l[33]=Y):Y=l[33];const Z=String(Y);let tt,et;l[34]!==Z||l[35]!==j?(tt=(0,b.jsx)(p.MetricTile,{title:"Completions",value:Z,tone:"positive",theme:j}),l[34]=Z,l[35]=j,l[36]=tt):tt=l[36];l[37]!==w?(et=(0,f.queueValue)(w,"failed"),l[37]=w,l[38]=et):et=l[38];const ot=String(et);let nt,lt;l[39]!==ot||l[40]!==j?(nt=(0,b.jsx)(p.MetricTile,{title:"Failed Jobs",value:ot,tone:"danger",theme:j}),l[39]=ot,l[40]=j,l[41]=nt):nt=l[41];l[42]!==X||l[43]!==tt||l[44]!==nt||l[45]!==Q?(lt=(0,b.jsxs)(u.default,{style:T.metricRow,children:[Q,X,tt,nt]}),l[42]=X,l[43]=tt,l[44]=nt,l[45]=Q,l[46]=lt):lt=l[46];const it=F&&T.jobsLayoutWide;let rt,at,st,dt,ut,ct,ft,mt,pt,bt,xt,jt,yt,gt,ht,St;l[47]!==it?(rt=[T.jobsLayout,it],l[47]=it,l[48]=rt):rt=l[48];l[49]!==j.border||l[50]!==j.panel?(at=[T.jobsListPane,{borderColor:j.border,backgroundColor:j.panel}],l[49]=j.border,l[50]=j.panel,l[51]=at):at=l[51];l[52]!==j.fontSans||l[53]!==j.text?(st=(0,b.jsx)(s.default,{style:[T.sectionTitle,{color:j.text,fontFamily:j.fontSans}],children:"Queue Activity"}),l[52]=j.fontSans,l[53]=j.text,l[54]=st):st=l[54];l[55]!==N||l[56]!==I||l[57]!==j.accent||l[58]!==j.border||l[59]!==j.fontSans||l[60]!==j.panelAlt?(dt=N&&I?(0,b.jsx)(n.default,{style:[T.clearFilterButton,{borderColor:j.border,backgroundColor:j.panelAlt}],onPress:I,children:(0,b.jsx)(s.default,{style:[T.clearFilterLabel,{color:j.accent,fontFamily:j.fontSans}],children:"Clear Filter"})}):null,l[55]=N,l[56]=I,l[57]=j.accent,l[58]=j.border,l[59]=j.fontSans,l[60]=j.panelAlt,l[61]=dt):dt=l[61];l[62]!==st||l[63]!==dt?(ut=(0,b.jsxs)(u.default,{style:T.sectionHeader,children:[st,dt]}),l[62]=st,l[63]=dt,l[64]=ut):ut=l[64];l[65]!==N||l[66]!==W||l[67]!==k||l[68]!==j.fontMono||l[69]!==j.textMuted?(ct=N?(0,b.jsxs)(s.default,{style:[T.filterMeta,{color:j.textMuted,fontFamily:j.fontMono}],children:["request ",k?.slice(0,8)??"--"," | job"," ",W?.slice(0,8)??"--"]}):null,l[65]=N,l[66]=W,l[67]=k,l[68]=j.fontMono,l[69]=j.textMuted,l[70]=ct):ct=l[70];l[71]!==N||l[72]!==V||l[73]!==P||l[74]!==j?(ft=0===P.length?(0,b.jsx)(s.default,{style:[T.emptySubtitle,{color:j.textMuted,fontFamily:j.fontSans}],children:N?"No jobs matched the selected request/job.":"No job rows yet."}):(0,b.jsx)(o.default,{data:P,keyExtractor:h,renderItem:t=>{const{item:e}=t,o=(0,f.statusColor)(j,e.status),n=V.get(e.id),l=e.priority??"normal",c=y(e),p=[e.enqueuedAt?`enq ${(0,f.prettyTs)(e.enqueuedAt)}`:null,e.claimedAt?`claim ${(0,f.prettyTs)(e.claimedAt)}`:null,e.startedAt?`start ${(0,f.prettyTs)(e.startedAt)}`:null,e.firstLogAt?`first-log ${(0,f.prettyTs)(e.firstLogAt)}`:null,e.completedAt?`done ${(0,f.prettyTs)(e.completedAt)}`:null,e.failedAt?`fail ${(0,f.prettyTs)(e.failedAt)}`:null].filter(Boolean);("completed"===e.status||"failed"===e.status)&&null!=c&&p.push(`elapsed ${(0,f.formatDuration)(c)}`);const x="pending"===e.status&&n?`queue #${n.position} (eta ${(0,f.formatEtaMs)(n.etaMs)})`:"claimed"===e.status?"running":null!=c?`elapsed ${(0,f.formatDuration)(c)}`:"terminal";return(0,b.jsxs)(u.default,{style:[T.jobRow,{borderColor:j.border}],children:[(0,b.jsx)(u.default,{style:[T.jobDot,{backgroundColor:o}]}),(0,b.jsxs)(u.default,{style:T.jobTextCol,children:[(0,b.jsx)(s.default,{style:[T.jobKind,{color:j.text,fontFamily:j.fontSans}],children:e.kind}),(0,b.jsxs)(s.default,{style:[T.jobMeta,{color:j.textMuted,fontFamily:j.fontSans}],children:[e.id.slice(0,8)," | worker ",e.workerId??"--"," |"," ",(0,f.relativeMs)(e.updatedAt)]}),(0,b.jsxs)(s.default,{selectable:!0,style:[T.jobIdentifierLine,{color:j.textMuted,fontFamily:j.fontMono}],children:["jobId=",e.id," | workerId=",e.workerId??"--"]}),(0,b.jsxs)(s.default,{style:[T.jobMeta,{color:j.textMuted,fontFamily:j.fontSans}],children:["priority ",l," | ",x]}),p.length>0?(0,b.jsx)(s.default,{style:[T.jobPhaseLine,{color:j.textMuted,fontFamily:j.fontMono}],children:p.join(" | ")}):null,null!=e.executionBudgetMs||null!=e.finalizationBudgetMs?(0,b.jsxs)(s.default,{style:[T.jobMeta,{color:j.textMuted,fontFamily:j.fontSans}],children:["budget exec ",(0,f.formatDuration)(e.executionBudgetMs)," | finalize"," ",(0,f.formatDuration)(e.finalizationBudgetMs)]}):null]}),(0,b.jsx)(s.default,{style:[T.jobStatus,{color:o,fontFamily:j.fontSans}],children:e.status})]})}}),l[71]=N,l[72]=V,l[73]=P,l[74]=j,l[75]=ft):ft=l[75];l[76]!==j||l[77]!==_?(mt=_.length>0?(0,b.jsxs)(u.default,{style:T.completionStrip,children:[(0,b.jsx)(s.default,{style:[T.subSectionTitle,{color:j.text,fontFamily:j.fontSans}],children:"Recent Completions"}),_.slice(0,16).map(t=>{const e=(0,f.statusColor)(j,t.status);return(0,b.jsxs)(u.default,{style:[T.completionRow,{borderColor:j.border}],children:[(0,b.jsx)(s.default,{style:[T.completionMeta,{color:j.text,fontFamily:j.fontMono}],children:t.id.slice(0,8)}),(0,b.jsx)(s.default,{style:[T.completionLine,{color:j.textMuted,fontFamily:j.fontSans}],children:(0,f.clip)(t.message,110)}),(0,b.jsxs)(s.default,{style:[T.completionMeta,{color:j.textMuted,fontFamily:j.fontSans}],children:[t.branch??"--"," | ",t.commitSha?.slice(0,8)??"--"]}),(0,b.jsx)(s.default,{style:[T.completionStatus,{color:e,fontFamily:j.fontSans}],children:t.status})]},t.id)})]}):null,l[76]=j,l[77]=_,l[78]=mt):mt=l[78];l[79]!==at||l[80]!==ut||l[81]!==ct||l[82]!==ft||l[83]!==mt?(pt=(0,b.jsxs)(u.default,{style:at,children:[ut,ct,ft,mt]}),l[79]=at,l[80]=ut,l[81]=ct,l[82]=ft,l[83]=mt,l[84]=pt):pt=l[84];l[85]!==j.border||l[86]!==j.panel?(bt=[T.jobsTracePane,{borderColor:j.border,backgroundColor:j.panel}],l[85]=j.border,l[86]=j.panel,l[87]=bt):bt=l[87];l[88]!==j.fontSans||l[89]!==j.text?(xt=(0,b.jsx)(s.default,{style:[T.sectionTitle,{color:j.text,fontFamily:j.fontSans}],children:"Tasks and Traces"}),l[88]=j.fontSans,l[89]=j.text,l[90]=xt):xt=l[90];l[91]!==j.fontMono||l[92]!==j.fontSans||l[93]!==j.mode?(jt={mode:j.mode,fontSans:j.fontSans,fontMono:j.fontMono},l[91]=j.fontMono,l[92]=j.fontSans,l[93]=j.mode,l[94]=jt):jt=l[94];l[95]!==E||l[96]!==L||l[97]!==jt?(yt=(0,b.jsx)(u.default,{style:T.tracePanelBody,children:(0,b.jsx)(c.TasksJobsLogs,{state:L,theme:jt,focusJobId:E})}),l[95]=E,l[96]=L,l[97]=jt,l[98]=yt):yt=l[98];l[99]!==bt||l[100]!==xt||l[101]!==yt?(gt=(0,b.jsxs)(u.default,{style:bt,children:[xt,yt]}),l[99]=bt,l[100]=xt,l[101]=yt,l[102]=gt):gt=l[102];l[103]!==rt||l[104]!==pt||l[105]!==gt?(ht=(0,b.jsxs)(u.default,{style:rt,children:[pt,gt]}),l[103]=rt,l[104]=pt,l[105]=gt,l[106]=ht):ht=l[106];l[107]!==lt||l[108]!==ht?(St=(0,b.jsxs)(u.default,{style:T.fill,children:[lt,ht]}),l[107]=lt,l[108]=ht,l[109]=St):St=l[109];return St};var e=r(d[0]);r(d[1]);var o=t(r(d[2])),n=t(r(d[3])),l=t(r(d[4])),s=t(r(d[5])),u=t(r(d[6])),c=r(d[7]),f=r(d[8]),p=r(d[9]),b=r(d[10]);function x(t){if(!t)return null;try{const e=JSON.parse(t);if(!e||"object"!=typeof e||Array.isArray(e))return null;const o=e.requestId;return"string"==typeof o&&o.trim()?o.trim():null}catch{return null}}function j(t){if(!t)return null;const e=Date.parse(t);return Number.isFinite(e)?e:null}function y(t){if("number"==typeof t.durationMs&&Number.isFinite(t.durationMs)&&t.durationMs>=0)return Math.floor(t.durationMs);const e=j(t.completedAt)??j(t.failedAt)??("completed"===t.status||"failed"===t.status?j(t.updatedAt):null),o=j(t.startedAt)??j(t.claimedAt)??j(t.enqueuedAt);return null==o||null==e||e<o?null:e-o}function h(t){return t.id}function S(t){return[t.id,t]}function M(t){return t.id}const T=l.default.create({fill:{flex:1},metricRow:{flexDirection:"row",flexWrap:"wrap",paddingHorizontal:20,paddingBottom:10},emptySubtitle:{fontSize:13,lineHeight:19},jobsLayout:{flex:1,flexDirection:"column",paddingHorizontal:20,paddingBottom:14},jobsLayoutWide:{flexDirection:"row"},jobsListPane:{flex:1,borderWidth:1,borderRadius:16,padding:12,marginBottom:10,minHeight:220},jobsTracePane:{flex:1.25,borderWidth:1,borderRadius:16,padding:12,minHeight:260},tracePanelBody:{flex:1,minHeight:260},sectionHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},sectionTitle:{fontSize:16,fontWeight:"700",marginBottom:8},filterMeta:{fontSize:11,marginBottom:8},clearFilterButton:{borderWidth:1,borderRadius:8,paddingHorizontal:9,paddingVertical:4,marginBottom:8,marginLeft:8},clearFilterLabel:{fontSize:10,fontWeight:"700",textTransform:"uppercase",letterSpacing:.2},subSectionTitle:{fontSize:13,fontWeight:"700",marginBottom:5},jobRow:{flexDirection:"row",alignItems:"center",borderBottomWidth:1,paddingVertical:8},jobDot:{width:8,height:8,borderRadius:4,marginRight:10},jobTextCol:{flex:1},jobKind:{fontSize:13,fontWeight:"700"},jobMeta:{fontSize:12,marginTop:2},jobIdentifierLine:{fontSize:11,marginTop:3},jobPhaseLine:{fontSize:11,marginTop:4},jobStatus:{fontSize:11,fontWeight:"700",textTransform:"uppercase"},completionStrip:{marginTop:8},completionRow:{borderTopWidth:1,paddingTop:8,marginTop:7},completionLine:{fontSize:12,marginBottom:3},completionMeta:{fontSize:11,marginBottom:2},completionStatus:{fontSize:11,fontWeight:"700",textTransform:"uppercase"}})},1018,[1134,21,308,417,136,123,310,1019,1014,1015,2]);
|
|
1029
|
+
__d(function(g,r,i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.JobsPane=function(t){const l=(0,e.c)(108),{theme:y,isWide:A,jobs:F,jobCounts:w,pendingSnapshot:z,completions:B,completionCounts:C,sessionState:L,requestFilterId:k,jobFilterId:W,onClearFilter:q}=t;let I;t:{if(W){let t;if(l[0]!==W||l[1]!==F){let e;l[3]!==W?(e=t=>t.id===W,l[3]=W,l[4]=e):e=l[4],t=F.filter(e),l[0]=W,l[1]=F,l[2]=t}else t=l[2];I=t;break t}if(k){let t;if(l[5]!==F||l[6]!==k){let e;l[8]!==k?(e=t=>x(t.params)===k,l[8]=k,l[9]=e):e=l[9],t=F.filter(e),l[5]=F,l[6]=k,l[7]=t}else t=l[7];I=t;break t}I=F}const R=I;let D;l[10]!==R?(D=R.slice(0,40),l[10]=R,l[11]=D):D=l[11];const P=D;let $;l[12]!==R?($=new Set(R.map(M)),l[12]=R,l[13]=$):$=l[13];const v=$;let H;t:{if(0===v.size&&(k||W)){let t;l[14]===Symbol.for("react.memo_cache_sentinel")?(t=[],l[14]=t):t=l[14],H=t;break t}if(!k&&!W){H=B;break t}let t;if(l[15]!==B||l[16]!==v){let e;l[18]!==v?(e=t=>v.has(t.jobId),l[18]=v,l[19]=e):e=l[19],t=B.filter(e),l[15]=B,l[16]=v,l[17]=t}else t=l[17];H=t}const _=H;let V;l[20]!==z?(V=new Map(z.map(S)),l[20]=z,l[21]=V):V=l[21];const J=V,N=Boolean(k||W),E=W??R[0]?.id??null;let K;l[22]!==w?(K=(0,f.queueValue)(w,"pending"),l[22]=w,l[23]=K):K=l[23];const O=String(K);let Q,G;l[24]!==O||l[25]!==y?(Q=(0,p.jsx)(b.MetricTile,{title:"Queued Jobs",value:O,tone:"warning",theme:y}),l[24]=O,l[25]=y,l[26]=Q):Q=l[26];l[27]!==w?(G=(0,f.queueValue)(w,"claimed"),l[27]=w,l[28]=G):G=l[28];const U=String(G);let X,Y;l[29]!==U||l[30]!==y?(X=(0,p.jsx)(b.MetricTile,{title:"Running Jobs",value:U,tone:"accent",theme:y}),l[29]=U,l[30]=y,l[31]=X):X=l[31];l[32]!==C?(Y=(0,f.queueValue)(C,"processed"),l[32]=C,l[33]=Y):Y=l[33];const Z=String(Y);let tt;l[34]!==Z||l[35]!==y?(tt=(0,p.jsx)(b.MetricTile,{title:"Completions",value:Z,tone:"positive",theme:y}),l[34]=Z,l[35]=y,l[36]=tt):tt=l[36];const et=String((0,f.queueValue)(w,"failed")+(0,f.queueValue)(w,"abandoned"));let ot,nt;l[37]!==et||l[38]!==y?(ot=(0,p.jsx)(b.MetricTile,{title:"Failed / Abandoned",value:et,tone:"danger",theme:y}),l[37]=et,l[38]=y,l[39]=ot):ot=l[39];l[40]!==X||l[41]!==tt||l[42]!==ot||l[43]!==Q?(nt=(0,p.jsxs)(u.default,{style:T.metricRow,children:[Q,X,tt,ot]}),l[40]=X,l[41]=tt,l[42]=ot,l[43]=Q,l[44]=nt):nt=l[44];const lt=A&&T.jobsLayoutWide;let it,rt,at,st,dt,ut,ct,ft,mt,bt,pt,xt,yt,jt,gt,ht;l[45]!==lt?(it=[T.jobsLayout,lt],l[45]=lt,l[46]=it):it=l[46];l[47]!==y.border||l[48]!==y.panel?(rt=[T.jobsListPane,{borderColor:y.border,backgroundColor:y.panel}],l[47]=y.border,l[48]=y.panel,l[49]=rt):rt=l[49];l[50]!==y.fontSans||l[51]!==y.text?(at=(0,p.jsx)(s.default,{style:[T.sectionTitle,{color:y.text,fontFamily:y.fontSans}],children:"Queue Activity"}),l[50]=y.fontSans,l[51]=y.text,l[52]=at):at=l[52];l[53]!==N||l[54]!==q||l[55]!==y.accent||l[56]!==y.border||l[57]!==y.fontSans||l[58]!==y.panelAlt?(st=N&&q?(0,p.jsx)(n.default,{style:[T.clearFilterButton,{borderColor:y.border,backgroundColor:y.panelAlt}],onPress:q,children:(0,p.jsx)(s.default,{style:[T.clearFilterLabel,{color:y.accent,fontFamily:y.fontSans}],children:"Clear Filter"})}):null,l[53]=N,l[54]=q,l[55]=y.accent,l[56]=y.border,l[57]=y.fontSans,l[58]=y.panelAlt,l[59]=st):st=l[59];l[60]!==at||l[61]!==st?(dt=(0,p.jsxs)(u.default,{style:T.sectionHeader,children:[at,st]}),l[60]=at,l[61]=st,l[62]=dt):dt=l[62];l[63]!==N||l[64]!==W||l[65]!==k||l[66]!==y.fontMono||l[67]!==y.textMuted?(ut=N?(0,p.jsxs)(s.default,{style:[T.filterMeta,{color:y.textMuted,fontFamily:y.fontMono}],children:["request ",k?.slice(0,8)??"--"," | job"," ",W?.slice(0,8)??"--"]}):null,l[63]=N,l[64]=W,l[65]=k,l[66]=y.fontMono,l[67]=y.textMuted,l[68]=ut):ut=l[68];l[69]!==N||l[70]!==J||l[71]!==P||l[72]!==y?(ct=0===P.length?(0,p.jsx)(s.default,{style:[T.emptySubtitle,{color:y.textMuted,fontFamily:y.fontSans}],children:N?"No jobs matched the selected request/job.":"No job rows yet."}):(0,p.jsx)(o.default,{data:P,keyExtractor:h,renderItem:t=>{const{item:e}=t,o=(0,f.statusColor)(y,e.status),n=J.get(e.id),l=e.priority??"normal",c=j(e),b=[e.enqueuedAt?`enq ${(0,f.prettyTs)(e.enqueuedAt)}`:null,e.claimedAt?`claim ${(0,f.prettyTs)(e.claimedAt)}`:null,e.startedAt?`start ${(0,f.prettyTs)(e.startedAt)}`:null,e.firstLogAt?`first-log ${(0,f.prettyTs)(e.firstLogAt)}`:null,e.completedAt?`done ${(0,f.prettyTs)(e.completedAt)}`:null,e.abandonedAt?`abandon ${(0,f.prettyTs)(e.abandonedAt)}`:null,e.failedAt?`fail ${(0,f.prettyTs)(e.failedAt)}`:null].filter(Boolean);("completed"===e.status||"failed"===e.status||"abandoned"===e.status)&&null!=c&&b.push(`elapsed ${(0,f.formatDuration)(c)}`);const x="pending"===e.status&&n?`queue #${n.position} (eta ${(0,f.formatEtaMs)(n.etaMs)})`:"claimed"===e.status?"running":"abandoned"===e.status?"abandoned":null!=c?`elapsed ${(0,f.formatDuration)(c)}`:"terminal";return(0,p.jsxs)(u.default,{style:[T.jobRow,{borderColor:y.border}],children:[(0,p.jsx)(u.default,{style:[T.jobDot,{backgroundColor:o}]}),(0,p.jsxs)(u.default,{style:T.jobTextCol,children:[(0,p.jsx)(s.default,{style:[T.jobKind,{color:y.text,fontFamily:y.fontSans}],children:e.kind}),(0,p.jsxs)(s.default,{style:[T.jobMeta,{color:y.textMuted,fontFamily:y.fontSans}],children:[e.id.slice(0,8)," | worker ",e.workerId??"--"," |"," ",(0,f.relativeMs)(e.updatedAt)]}),(0,p.jsxs)(s.default,{selectable:!0,style:[T.jobIdentifierLine,{color:y.textMuted,fontFamily:y.fontMono}],children:["jobId=",e.id," | workerId=",e.workerId??"--"]}),(0,p.jsxs)(s.default,{style:[T.jobMeta,{color:y.textMuted,fontFamily:y.fontSans}],children:["priority ",l," | ",x]}),b.length>0?(0,p.jsx)(s.default,{style:[T.jobPhaseLine,{color:y.textMuted,fontFamily:y.fontMono}],children:b.join(" | ")}):null,null!=e.executionBudgetMs||null!=e.finalizationBudgetMs?(0,p.jsxs)(s.default,{style:[T.jobMeta,{color:y.textMuted,fontFamily:y.fontSans}],children:["budget exec ",(0,f.formatDuration)(e.executionBudgetMs)," | finalize"," ",(0,f.formatDuration)(e.finalizationBudgetMs)]}):null]}),(0,p.jsx)(s.default,{style:[T.jobStatus,{color:o,fontFamily:y.fontSans}],children:e.status})]})}}),l[69]=N,l[70]=J,l[71]=P,l[72]=y,l[73]=ct):ct=l[73];l[74]!==y||l[75]!==_?(ft=_.length>0?(0,p.jsxs)(u.default,{style:T.completionStrip,children:[(0,p.jsx)(s.default,{style:[T.subSectionTitle,{color:y.text,fontFamily:y.fontSans}],children:"Recent Completions"}),_.slice(0,16).map(t=>{const e=(0,f.statusColor)(y,t.status);return(0,p.jsxs)(u.default,{style:[T.completionRow,{borderColor:y.border}],children:[(0,p.jsx)(s.default,{style:[T.completionMeta,{color:y.text,fontFamily:y.fontMono}],children:t.id.slice(0,8)}),(0,p.jsx)(s.default,{style:[T.completionLine,{color:y.textMuted,fontFamily:y.fontSans}],children:(0,f.clip)(t.message,110)}),(0,p.jsxs)(s.default,{style:[T.completionMeta,{color:y.textMuted,fontFamily:y.fontSans}],children:[t.branch??"--"," | ",t.commitSha?.slice(0,8)??"--"]}),(0,p.jsx)(s.default,{style:[T.completionStatus,{color:e,fontFamily:y.fontSans}],children:t.status})]},t.id)})]}):null,l[74]=y,l[75]=_,l[76]=ft):ft=l[76];l[77]!==rt||l[78]!==dt||l[79]!==ut||l[80]!==ct||l[81]!==ft?(mt=(0,p.jsxs)(u.default,{style:rt,children:[dt,ut,ct,ft]}),l[77]=rt,l[78]=dt,l[79]=ut,l[80]=ct,l[81]=ft,l[82]=mt):mt=l[82];l[83]!==y.border||l[84]!==y.panel?(bt=[T.jobsTracePane,{borderColor:y.border,backgroundColor:y.panel}],l[83]=y.border,l[84]=y.panel,l[85]=bt):bt=l[85];l[86]!==y.fontSans||l[87]!==y.text?(pt=(0,p.jsx)(s.default,{style:[T.sectionTitle,{color:y.text,fontFamily:y.fontSans}],children:"Tasks and Traces"}),l[86]=y.fontSans,l[87]=y.text,l[88]=pt):pt=l[88];l[89]!==y.fontMono||l[90]!==y.fontSans||l[91]!==y.mode?(xt={mode:y.mode,fontSans:y.fontSans,fontMono:y.fontMono},l[89]=y.fontMono,l[90]=y.fontSans,l[91]=y.mode,l[92]=xt):xt=l[92];l[93]!==E||l[94]!==L||l[95]!==xt?(yt=(0,p.jsx)(u.default,{style:T.tracePanelBody,children:(0,p.jsx)(c.TasksJobsLogs,{state:L,theme:xt,focusJobId:E})}),l[93]=E,l[94]=L,l[95]=xt,l[96]=yt):yt=l[96];l[97]!==bt||l[98]!==pt||l[99]!==yt?(jt=(0,p.jsxs)(u.default,{style:bt,children:[pt,yt]}),l[97]=bt,l[98]=pt,l[99]=yt,l[100]=jt):jt=l[100];l[101]!==it||l[102]!==mt||l[103]!==jt?(gt=(0,p.jsxs)(u.default,{style:it,children:[mt,jt]}),l[101]=it,l[102]=mt,l[103]=jt,l[104]=gt):gt=l[104];l[105]!==nt||l[106]!==gt?(ht=(0,p.jsxs)(u.default,{style:T.fill,children:[nt,gt]}),l[105]=nt,l[106]=gt,l[107]=ht):ht=l[107];return ht};var e=r(d[0]);r(d[1]);var o=t(r(d[2])),n=t(r(d[3])),l=t(r(d[4])),s=t(r(d[5])),u=t(r(d[6])),c=r(d[7]),f=r(d[8]),b=r(d[9]),p=r(d[10]);function x(t){if(!t)return null;try{const e=JSON.parse(t);if(!e||"object"!=typeof e||Array.isArray(e))return null;const o=e.requestId;return"string"==typeof o&&o.trim()?o.trim():null}catch{return null}}function y(t){if(!t)return null;const e=Date.parse(t);return Number.isFinite(e)?e:null}function j(t){if("number"==typeof t.durationMs&&Number.isFinite(t.durationMs)&&t.durationMs>=0)return Math.floor(t.durationMs);const e=y(t.completedAt)??y(t.abandonedAt)??y(t.failedAt)??("completed"===t.status||"failed"===t.status||"abandoned"===t.status?y(t.updatedAt):null),o=y(t.startedAt)??y(t.claimedAt)??y(t.enqueuedAt);return null==o||null==e||e<o?null:e-o}function h(t){return t.id}function S(t){return[t.id,t]}function M(t){return t.id}const T=l.default.create({fill:{flex:1},metricRow:{flexDirection:"row",flexWrap:"wrap",paddingHorizontal:20,paddingBottom:10},emptySubtitle:{fontSize:13,lineHeight:19},jobsLayout:{flex:1,flexDirection:"column",paddingHorizontal:20,paddingBottom:14},jobsLayoutWide:{flexDirection:"row"},jobsListPane:{flex:1,borderWidth:1,borderRadius:16,padding:12,marginBottom:10,minHeight:220},jobsTracePane:{flex:1.25,borderWidth:1,borderRadius:16,padding:12,minHeight:260},tracePanelBody:{flex:1,minHeight:260},sectionHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},sectionTitle:{fontSize:16,fontWeight:"700",marginBottom:8},filterMeta:{fontSize:11,marginBottom:8},clearFilterButton:{borderWidth:1,borderRadius:8,paddingHorizontal:9,paddingVertical:4,marginBottom:8,marginLeft:8},clearFilterLabel:{fontSize:10,fontWeight:"700",textTransform:"uppercase",letterSpacing:.2},subSectionTitle:{fontSize:13,fontWeight:"700",marginBottom:5},jobRow:{flexDirection:"row",alignItems:"center",borderBottomWidth:1,paddingVertical:8},jobDot:{width:8,height:8,borderRadius:4,marginRight:10},jobTextCol:{flex:1},jobKind:{fontSize:13,fontWeight:"700"},jobMeta:{fontSize:12,marginTop:2},jobIdentifierLine:{fontSize:11,marginTop:3},jobPhaseLine:{fontSize:11,marginTop:4},jobStatus:{fontSize:11,fontWeight:"700",textTransform:"uppercase"},completionStrip:{marginTop:8},completionRow:{borderTopWidth:1,paddingTop:8,marginTop:7},completionLine:{fontSize:12,marginBottom:3},completionMeta:{fontSize:11,marginBottom:2},completionStatus:{fontSize:11,fontWeight:"700",textTransform:"uppercase"}})},1018,[1134,21,308,417,136,123,310,1019,1014,1015,2]);
|
|
1030
1030
|
__d(function(g,r,i,_a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.TasksJobsLogs=function(e){const a=(0,t.c)(37),{state:c,theme:f,focusJobId:b}=e,[p,y]=(0,o.useState)(null),h=f?.mode??"light";let x;a[0]!==h?(x=S(h),a[0]=h,a[1]=x):x=a[1];const j=x;let k;a[2]!==j||a[3]!==f?(k=_(j,f),a[2]=j,a[3]=f,a[4]=k):k=a[4];const I=k;let T,F,B,C,w,E,z;if(a[5]!==c.tasks){F=Array.from(c.tasks.values()).sort(J),T=new Set;for(const e of F)for(const t of e.jobIds)T.add(t);a[5]=c.tasks,a[6]=T,a[7]=F}else T=a[6],F=a[7];a[8]!==b||a[9]!==F?(B=()=>{if(!b)return;const e=F.find(e=>e.jobIds.includes(b));e&&y(e.taskId)},C=[b,F],a[8]=b,a[9]=F,a[10]=B,a[11]=C):(B=a[10],C=a[11]);if((0,o.useEffect)(B,C),0===F.length&&0===c.jobs.size){let e,t;return a[12]!==I.muted?(e=(0,u.jsx)(s.default,{style:I.muted,children:"No tasks or jobs yet"}),a[12]=I.muted,a[13]=e):e=a[13],a[14]!==I.emptyContainer||a[15]!==e?(t=(0,u.jsx)(n.default,{style:I.emptyContainer,children:e}),a[14]=I.emptyContainer,a[15]=e,a[16]=t):t=a[16],t}a[17]!==p||a[18]!==b||a[19]!==j||a[20]!==c.jobs||a[21]!==c.logs||a[22]!==I||a[23]!==F?(w=F.length>0?(0,u.jsxs)(n.default,{style:I.section,children:[(0,u.jsx)(s.default,{style:I.sectionTitle,children:"Tasks"}),F.map(e=>{const t=e.jobIds.map(e=>c.jobs.get(e)).filter(Boolean),o={claimed:0,enqueued:1,completed:2,failed:3};return t.sort((e,t)=>{const n=o[e.status]??9,s=o[t.status]??9;return n!==s?n-s:e.ts.localeCompare(t.ts)}),(0,u.jsx)(D,{task:e,jobs:t,logs:c.logs,expanded:p===e.taskId,onToggle:()=>y(p===e.taskId?null:e.taskId),focusJobId:b,styles:I,palette:j},e.taskId)})]}):null,a[17]=p,a[18]=b,a[19]=j,a[20]=c.jobs,a[21]=c.logs,a[22]=I,a[23]=F,a[24]=w):w=a[24];a[25]!==b||a[26]!==j||a[27]!==c.jobs||a[28]!==c.logs||a[29]!==I||a[30]!==T?(E=(0,u.jsx)(R,{jobs:c.jobs,logs:c.logs,taskJobIds:T,focusJobId:b,styles:I,palette:j}),a[25]=b,a[26]=j,a[27]=c.jobs,a[28]=c.logs,a[29]=I,a[30]=T,a[31]=E):E=a[31];a[32]!==I.container||a[33]!==I.content||a[34]!==w||a[35]!==E?(z=(0,u.jsxs)(l.default,{style:I.container,contentContainerStyle:I.content,children:[w,E]}),a[32]=I.container,a[33]=I.content,a[34]=w,a[35]=E,a[36]=z):z=a[36];return z};var t=r(d[0]),o=r(d[1]),n=e(r(d[2])),s=e(r(d[3])),a=e(r(d[4])),l=e(r(d[5])),c=e(r(d[6]));r(d[7]);var u=r(d[8]);const f="__PUSHPALS_OH_RESULT__ ",b="___RESULT___ ",p=500,y=/\x1b\[[0-9;]*m/g;const h=(function(e){const t=Number.parseInt(String(e??"").trim(),10);return Number.isFinite(t)?Math.max(20,Math.min(500,t)):100})(void 0);async function x(e){const t=String(e??"").trim();if(!t)return!1;try{const e=globalThis.navigator,o=e?.clipboard?.writeText;return"function"==typeof o&&(await o(t),!0)}catch{return!1}}const j={bg:"#F4F8FB",panel:"#FFFFFF",panelAlt:"#EEF4F8",border:"#D2E0E8",text:"#112230",textMuted:"#547086",accent:"#007E77",success:"#169A58",warning:"#C7851E",danger:"#D64553",reasoningText:"#1D4E89",reasoningBg:"#EAF4FF",actionText:"#0F6C48",actionBg:"#E9FBF5",infoText:"#334155",infoBg:"#F4F8FB",errorText:"#A22A35",errorBg:"#FEECEF"},k={bg:"#14212A",panel:"#16222B",panelAlt:"#1B2A35",border:"#284050",text:"#EAF3F6",textMuted:"#97B3C2",accent:"#2FD6C8",success:"#5DDD8B",warning:"#FFB95A",danger:"#FF6B72",reasoningText:"#9BC6FF",reasoningBg:"#1D2A40",actionText:"#8EF5BD",actionBg:"#163628",infoText:"#D2E3ED",infoBg:"#1A2934",errorText:"#FFACB5",errorBg:"#3A1B22"};function S(e){return"dark"===e?k:j}function I(e,t){switch(e){case"completed":return t.success;case"failed":return t.danger;case"claimed":case"started":case"in_progress":return t.warning;default:return t.accent}}function T(e){return e.replace(y,"").replace(/\s+/g," ").trim()}function F(e){return e.length<=p?e:`${e.slice(0,497)}...`}function B(e){if(!e)return"";const t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleTimeString():""}function C(e,t){const o=e.toLowerCase();return"stderr"===t||o.includes("error")||o.includes("failed")||o.includes("traceback")||o.includes("exception")?"error":/\b(think|reason|analysis|plan|decide|why|because|approach|strategy)\b/i.test(o)?"reasoning":/\b(run|running|execute|executing|write|patch|edit|search|read|fetch|merge|commit|push|claim)\b/i.test(o)?"action":"info"}function w(e,t,o,n,s,a){const l=n.trim();if(!l)return;const c=`${o}|${l}`;t.has(c)||(t.add(c),e.push({key:`${o}:${e.length}`,source:o,line:l,tone:s,ts:a}))}function E(e,t,o,n,s){for(const a of n.split(/\r?\n/).map(e=>F(T(e))).filter(Boolean))w(e,t,o,a,s)}function z(e){if(e.length<=h)return e;const t=e.length-h,o=e.slice(-h);return[{key:`trace:compacted:${e.length}`,source:"trace",line:`Compacted trace: showing latest ${h} lines (${t} older lines hidden).`,tone:"info"},...o]}function H(e,t){const o=[],n=new Set;if(e.summary&&E(o,n,"summary",e.summary,"reasoning"),e.message&&E(o,n,"failure",e.message,"error"),e.detail&&E(o,n,"detail",e.detail,"error"),e.params&&"object"==typeof e.params){const t="string"==typeof e.params.instruction?e.params.instruction:"",s="string"==typeof e.params.targetPath?e.params.targetPath:"";t&&E(o,n,"request",`Instruction: ${t}`,"reasoning"),s&&E(o,n,"request",`Target path: ${s}`,"action")}if(Array.isArray(e.artifacts))for(const t of e.artifacts){if(!t?.text)continue;const e=`artifact.${t.kind||"text"}`,s="stderr"===t.kind?"error":"info";E(o,n,e,t.text,s)}for(const e of t){const t=T(e.line||"");if(t&&!t.startsWith(b)){if(t.startsWith(f)){const s=t.slice(f.length).trim();if(!s)continue;try{const e=JSON.parse(s);"string"==typeof e.summary&&E(o,n,"openhands.summary",e.summary,"reasoning"),"string"==typeof e.stdout&&E(o,n,"openhands.stdout",e.stdout,"info"),"string"==typeof e.stderr&&E(o,n,"openhands.stderr",e.stderr,"error")}catch{E(o,n,"openhands",s,C(s,e.stream))}continue}w(o,n,`log.${e.stream}`,t,C(t,e.stream),e.ts)}}return z(o)}function _(e,t){const o=t?.fontSans,n=t?.fontMono??"monospace";return c.default.create({container:{flex:1,backgroundColor:e.bg},content:{padding:12,paddingBottom:16},emptyContainer:{flex:1,alignItems:"center",justifyContent:"center",padding:24},section:{marginBottom:16},sectionTitle:{fontSize:13,fontWeight:"700",color:e.textMuted,textTransform:"uppercase",letterSpacing:.5,marginBottom:8,fontFamily:o},taskCard:{backgroundColor:e.panel,borderRadius:8,marginBottom:8,borderLeftWidth:3,borderLeftColor:e.border,boxShadow:"0 1px 3px rgba(0,0,0,0.12)"},taskHeader:{flexDirection:"row",alignItems:"center",padding:10,gap:8},taskTitle:{flex:1,fontSize:14,fontWeight:"600",color:e.text,fontFamily:o},taskBody:{paddingHorizontal:10,paddingBottom:10},desc:{fontSize:12,color:e.textMuted,marginBottom:4,fontFamily:o},progressMsg:{fontSize:12,color:e.warning,fontStyle:"italic",marginBottom:8,fontFamily:o},jobCard:{backgroundColor:e.panelAlt,borderRadius:6,marginTop:6,borderWidth:1,borderColor:e.border},jobCardFocused:{borderColor:e.accent,borderWidth:2},jobHeader:{flexDirection:"row",alignItems:"center",padding:8,gap:6,flexWrap:"wrap"},jobBody:{borderTopWidth:1,borderTopColor:e.border,paddingBottom:8},jobKind:{fontSize:13,fontWeight:"500",color:e.text,fontFamily:o},workerId:{fontSize:11,color:e.accent,fontFamily:n},logCount:{fontSize:11,color:e.textMuted,marginLeft:"auto",fontFamily:o},jobSummary:{fontSize:12,color:e.text,paddingHorizontal:8,paddingTop:8,paddingBottom:4,fontFamily:o},identifierSection:{paddingHorizontal:8,paddingTop:6,paddingBottom:2},identifierRow:{flexDirection:"column",alignItems:"flex-start"},identifierText:{fontSize:11,color:e.textMuted,fontFamily:n},copyIdsButton:{marginTop:6,alignSelf:"flex-start",borderRadius:6,borderWidth:1,borderColor:e.border,backgroundColor:e.panel,paddingHorizontal:8,paddingVertical:4},copyIdsButtonText:{fontSize:11,fontWeight:"600",color:e.text,fontFamily:o},jobError:{fontSize:12,color:e.danger,paddingHorizontal:8,paddingTop:4,fontFamily:o},jobErrorDetail:{fontSize:11,color:e.danger,paddingHorizontal:8,paddingTop:2,fontFamily:n},traceSection:{marginTop:4},traceScroll:{maxHeight:220},traceLine:{fontSize:11,paddingHorizontal:8,paddingVertical:2,fontFamily:n},traceReasoning:{color:e.reasoningText,backgroundColor:e.reasoningBg},traceAction:{color:e.actionText,backgroundColor:e.actionBg},traceInfo:{color:e.infoText,backgroundColor:e.infoBg},traceError:{color:e.errorText,backgroundColor:e.errorBg},rawToggle:{marginTop:6,marginHorizontal:8,paddingHorizontal:8,paddingVertical:6,borderRadius:6,borderWidth:1,borderColor:e.border,backgroundColor:e.panel,alignSelf:"flex-start"},rawToggleText:{fontSize:11,color:e.text,fontWeight:"600",fontFamily:o},logSections:{borderTopWidth:1,borderTopColor:e.border,marginTop:6},streamLabel:{fontSize:10,fontWeight:"700",color:e.textMuted,textTransform:"uppercase",paddingHorizontal:8,paddingTop:6,letterSpacing:.5,fontFamily:o},logScroll:{maxHeight:200},logLine:{fontSize:11,paddingHorizontal:8,paddingVertical:1,fontFamily:n},logStdout:{color:e.infoText,backgroundColor:e.actionBg},logStderr:{color:e.errorText,backgroundColor:e.errorBg},dot:{width:8,height:8,borderRadius:4},statusBadge:{fontSize:11,fontWeight:"600",fontFamily:o},chevron:{fontSize:12,color:e.textMuted,fontFamily:o},muted:{fontSize:12,color:e.textMuted,fontStyle:"italic",paddingHorizontal:8,fontFamily:o}})}function A(e,t){switch(e){case"reasoning":return t.traceReasoning;case"action":return t.traceAction;case"error":return t.traceError;default:return t.traceInfo}}function D(e){const o=(0,t.c)(42),{task:l,jobs:c,logs:f,expanded:b,onToggle:p,focusJobId:y,styles:h,palette:x}=e;let j;o[0]!==x||o[1]!==l.status?(j=I(l.status,x),o[0]=x,o[1]=l.status,o[2]=j):j=o[2];const k=j;let S,T,F,B,C,w;o[3]!==k?(S={backgroundColor:k},o[3]=k,o[4]=S):S=o[4],o[5]!==h.dot||o[6]!==S?(T=(0,u.jsx)(n.default,{style:[h.dot,S]}),o[5]=h.dot,o[6]=S,o[7]=T):T=o[7],o[8]!==h.taskTitle||o[9]!==l.title?(F=(0,u.jsx)(s.default,{style:h.taskTitle,numberOfLines:1,children:l.title}),o[8]=h.taskTitle,o[9]=l.title,o[10]=F):F=o[10],o[11]!==k?(B={color:k},o[11]=k,o[12]=B):B=o[12],o[13]!==h.statusBadge||o[14]!==B?(C=[h.statusBadge,B],o[13]=h.statusBadge,o[14]=B,o[15]=C):C=o[15],o[16]!==C||o[17]!==l.status?(w=(0,u.jsx)(s.default,{style:C,children:l.status}),o[16]=C,o[17]=l.status,o[18]=w):w=o[18];const E=b?"v":">";let z,H,_,A;return o[19]!==h.chevron||o[20]!==E?(z=(0,u.jsx)(s.default,{style:h.chevron,children:E}),o[19]=h.chevron,o[20]=E,o[21]=z):z=o[21],o[22]!==p||o[23]!==h.taskHeader||o[24]!==T||o[25]!==F||o[26]!==w||o[27]!==z?(H=(0,u.jsxs)(a.default,{onPress:p,style:h.taskHeader,children:[T,F,w,z]}),o[22]=p,o[23]=h.taskHeader,o[24]=T,o[25]=F,o[26]=w,o[27]=z,o[28]=H):H=o[28],o[29]!==b||o[30]!==y||o[31]!==c||o[32]!==f||o[33]!==x||o[34]!==h||o[35]!==l.description||o[36]!==l.latestProgress?(_=b&&(0,u.jsxs)(n.default,{style:h.taskBody,children:[l.description?(0,u.jsx)(s.default,{style:h.desc,children:l.description}):null,l.latestProgress?(0,u.jsx)(s.default,{style:h.progressMsg,children:l.latestProgress}):null,0===c.length&&(0,u.jsx)(s.default,{style:h.muted,children:"No jobs yet"}),c.map(e=>(0,u.jsx)(v,{job:e,logs:f.get(e.jobId)??[],forceExpanded:y===e.jobId,focused:y===e.jobId,styles:h,palette:x},e.jobId))]}),o[29]=b,o[30]=y,o[31]=c,o[32]=f,o[33]=x,o[34]=h,o[35]=l.description,o[36]=l.latestProgress,o[37]=_):_=o[37],o[38]!==h.taskCard||o[39]!==H||o[40]!==_?(A=(0,u.jsxs)(n.default,{style:h.taskCard,children:[H,_]}),o[38]=h.taskCard,o[39]=H,o[40]=_,o[41]=A):A=o[41],A}function v(e){const c=(0,t.c)(79),{job:f,logs:b,forceExpanded:p,focused:y,styles:h,palette:j}=e,k=void 0!==p&&p,S=void 0!==y&&y,[T,F]=(0,o.useState)(!1),[C,w]=(0,o.useState)(!1),[E,z]=(0,o.useState)("idle"),_=(0,o.useRef)(null);let D;c[0]!==f.status||c[1]!==j?(D=I(f.status,j),c[0]=f.status,c[1]=j,c[2]=D):D=c[2];const v=D;let R,P,J,q,N;c[3]!==k?(R=()=>{k&&F(!0)},c[3]=k,c[4]=R):R=c[4],c[5]!==k||c[6]!==f.jobId?(P=[k,f.jobId],c[5]=k,c[6]=f.jobId,c[7]=P):P=c[7],(0,o.useEffect)(R,P),c[8]===Symbol.for("react.memo_cache_sentinel")?(J=()=>()=>{_.current&&clearTimeout(_.current)},q=[],c[8]=J,c[9]=q):(J=c[8],q=c[9]),(0,o.useEffect)(J,q),c[10]!==f.jobId||c[11]!==f.workerId?(N=async()=>{const e=[`jobId=${f.jobId}`];f.workerId&&e.push(`workerId=${f.workerId}`);const t=await x(e.join("\n"));z(t?"copied":"unavailable"),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>z("idle"),t?1600:2600)},c[10]=f.jobId,c[11]=f.workerId,c[12]=N):N=c[12];const O=N;let K;c[13]!==b?(K=b.filter(M).sort(W),c[13]=b,c[14]=K):K=c[14];const U=K;let V;c[15]!==b?(V=b.filter($).sort(L),c[15]=b,c[16]=V):V=c[16];const G=V;let Q;c[17]!==f||c[18]!==b?(Q=H(f,b),c[17]=f,c[18]=b,c[19]=Q):Q=c[19];const X=Q,Y=U.length+G.length,Z=S&&h.jobCardFocused;let ee,te,oe,re,ne,se,ae,le,ie,de;c[20]!==h.jobCard||c[21]!==Z?(ee=[h.jobCard,Z],c[20]=h.jobCard,c[21]=Z,c[22]=ee):ee=c[22],c[23]!==T?(te=()=>F(!T),c[23]=T,c[24]=te):te=c[24],c[25]!==v?(oe={backgroundColor:v},c[25]=v,c[26]=oe):oe=c[26],c[27]!==h.dot||c[28]!==oe?(re=(0,u.jsx)(n.default,{style:[h.dot,oe]}),c[27]=h.dot,c[28]=oe,c[29]=re):re=c[29],c[30]!==f.kind||c[31]!==h.jobKind?(ne=(0,u.jsx)(s.default,{style:h.jobKind,children:f.kind}),c[30]=f.kind,c[31]=h.jobKind,c[32]=ne):ne=c[32],c[33]!==v?(se={color:v},c[33]=v,c[34]=se):se=c[34],c[35]!==h.statusBadge||c[36]!==se?(ae=[h.statusBadge,se],c[35]=h.statusBadge,c[36]=se,c[37]=ae):ae=c[37],c[38]!==f.status||c[39]!==ae?(le=(0,u.jsx)(s.default,{style:ae,children:f.status}),c[38]=f.status,c[39]=ae,c[40]=le):le=c[40],c[41]!==f.workerId||c[42]!==h.workerId?(ie=f.workerId?(0,u.jsxs)(s.default,{style:h.workerId,children:["@",f.workerId]}):null,c[41]=f.workerId,c[42]=h.workerId,c[43]=ie):ie=c[43],c[44]!==h.logCount||c[45]!==Y||c[46]!==X.length?(de=X.length>0||Y>0?(0,u.jsxs)(s.default,{style:h.logCount,children:[X.length," trace / ",Y," raw"]}):null,c[44]=h.logCount,c[45]=Y,c[46]=X.length,c[47]=de):de=c[47];const ce=T?"v":">";let ue,fe,ge,me;return c[48]!==h.chevron||c[49]!==ce?(ue=(0,u.jsx)(s.default,{style:h.chevron,children:ce}),c[48]=h.chevron,c[49]=ce,c[50]=ue):ue=c[50],c[51]!==h.jobHeader||c[52]!==te||c[53]!==re||c[54]!==ne||c[55]!==le||c[56]!==ie||c[57]!==de||c[58]!==ue?(fe=(0,u.jsxs)(a.default,{onPress:te,style:h.jobHeader,children:[re,ne,le,ie,de,ue]}),c[51]=h.jobHeader,c[52]=te,c[53]=re,c[54]=ne,c[55]=le,c[56]=ie,c[57]=de,c[58]=ue,c[59]=fe):fe=c[59],c[60]!==E||c[61]!==T||c[62]!==O||c[63]!==f.detail||c[64]!==f.jobId||c[65]!==f.message||c[66]!==f.summary||c[67]!==f.workerId||c[68]!==C||c[69]!==G||c[70]!==U||c[71]!==h||c[72]!==Y||c[73]!==X?(ge=T&&(0,u.jsxs)(n.default,{style:h.jobBody,children:[f.summary?(0,u.jsx)(s.default,{style:h.jobSummary,children:f.summary}):null,(0,u.jsxs)(n.default,{style:h.identifierSection,children:[(0,u.jsx)(s.default,{style:h.streamLabel,children:"Identifiers"}),(0,u.jsxs)(n.default,{style:h.identifierRow,children:[(0,u.jsxs)(s.default,{style:h.identifierText,selectable:!0,children:["jobId=",f.jobId]}),f.workerId?(0,u.jsxs)(s.default,{style:h.identifierText,selectable:!0,children:["workerId=",f.workerId]}):(0,u.jsx)(s.default,{style:h.identifierText,children:"workerId=--"})]}),(0,u.jsx)(a.default,{style:h.copyIdsButton,onPress:O,children:(0,u.jsx)(s.default,{style:h.copyIdsButtonText,children:"copied"===E?"Copied IDs":"unavailable"===E?"Select text to copy":"Copy IDs"})})]}),f.message?(0,u.jsx)(s.default,{style:h.jobError,children:f.message}):null,f.detail?(0,u.jsx)(s.default,{style:h.jobErrorDetail,children:f.detail}):null,X.length>0?(0,u.jsxs)(n.default,{style:h.traceSection,children:[(0,u.jsx)(s.default,{style:h.streamLabel,children:"Trace"}),(0,u.jsx)(l.default,{style:h.traceScroll,nestedScrollEnabled:!0,children:X.map(e=>(0,u.jsxs)(s.default,{style:[h.traceLine,A(e.tone,h)],selectable:!0,children:[e.ts?`${B(e.ts)} `:"","[",e.source,"]"," ",e.line]},e.key))})]}):(0,u.jsx)(s.default,{style:h.muted,children:"No trace output captured for this job."}),Y>0?(0,u.jsx)(a.default,{style:h.rawToggle,onPress:()=>w(!C),children:(0,u.jsx)(s.default,{style:h.rawToggleText,children:C?"Hide raw logs":`Show raw logs (${Y})`})}):null,C&&Y>0?(0,u.jsxs)(n.default,{style:h.logSections,children:[U.length>0?(0,u.jsxs)(n.default,{children:[(0,u.jsx)(s.default,{style:h.streamLabel,children:"STDOUT"}),(0,u.jsx)(l.default,{style:h.logScroll,nestedScrollEnabled:!0,children:U.map(e=>(0,u.jsxs)(s.default,{style:[h.logLine,h.logStdout],selectable:!0,children:[e.ts?`${B(e.ts)} `:"",e.line]},`stdout-${e.seq}`))})]}):null,G.length>0?(0,u.jsxs)(n.default,{children:[(0,u.jsx)(s.default,{style:h.streamLabel,children:"STDERR"}),(0,u.jsx)(l.default,{style:h.logScroll,nestedScrollEnabled:!0,children:G.map(e=>(0,u.jsxs)(s.default,{style:[h.logLine,h.logStderr],selectable:!0,children:[e.ts?`${B(e.ts)} `:"",e.line]},`stderr-${e.seq}`))})]}):null]}):null]}),c[60]=E,c[61]=T,c[62]=O,c[63]=f.detail,c[64]=f.jobId,c[65]=f.message,c[66]=f.summary,c[67]=f.workerId,c[68]=C,c[69]=G,c[70]=U,c[71]=h,c[72]=Y,c[73]=X,c[74]=ge):ge=c[74],c[75]!==ee||c[76]!==fe||c[77]!==ge?(me=(0,u.jsxs)(n.default,{style:ee,children:[fe,ge]}),c[75]=ee,c[76]=fe,c[77]=ge,c[78]=me):me=c[78],me}function L(e,t){return e.seq-t.seq}function $(e){return"stderr"===e.stream}function W(e,t){return e.seq-t.seq}function M(e){return"stdout"===e.stream}function R(e){const o=(0,t.c)(15),{jobs:a,logs:l,taskJobIds:c,focusJobId:f,styles:b,palette:p}=e;let y,h;if(o[0]!==f||o[1]!==a||o[2]!==l||o[3]!==p||o[4]!==b||o[5]!==c){h=Symbol.for("react.early_return_sentinel");e:{const e=Array.from(a.values()).filter(e=>!c.has(e.jobId)).sort(P);if(0===e.length){h=null;break e}let t,x;o[8]!==b.sectionTitle?(t=(0,u.jsx)(s.default,{style:b.sectionTitle,children:"Standalone Jobs"}),o[8]=b.sectionTitle,o[9]=t):t=o[9],o[10]!==f||o[11]!==l||o[12]!==p||o[13]!==b?(x=e=>(0,u.jsx)(v,{job:e,logs:l.get(e.jobId)??[],forceExpanded:f===e.jobId,focused:f===e.jobId,styles:b,palette:p},e.jobId),o[10]=f,o[11]=l,o[12]=p,o[13]=b,o[14]=x):x=o[14],y=(0,u.jsxs)(n.default,{style:b.section,children:[t,e.map(x)]})}o[0]=f,o[1]=a,o[2]=l,o[3]=p,o[4]=b,o[5]=c,o[6]=y,o[7]=h}else y=o[6],h=o[7];return h!==Symbol.for("react.early_return_sentinel")?h:y}function P(e,t){return t.ts.localeCompare(e.ts)}function J(e,t){return t.ts.localeCompare(e.ts)}},1019,[1134,21,310,123,404,317,136,114,2]);
|
|
1031
1031
|
__d(function(g,r,i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.DashboardHeader=function(t){const n=(0,e.c)(61),{theme:h,mode:p,repo:x,snapshotTs:y,formatRelativeTime:S,formatAbsoluteTime:M,onChangeMode:b}=t;let j;n[0]!==x?.remoteUrl?(j=x?.remoteUrl?.trim()||"unavailable",n[0]=x?.remoteUrl,n[1]=j):j=n[1];const L=j,w="github"===x?.provider?x.browserUrl:null;let v;n[2]!==M||n[3]!==S||n[4]!==y?(v=y?`${S(y)} (${M(y)})`:"waiting for /system/status",n[2]=M,n[3]=S,n[4]=y,n[5]=v):v=n[5];const z=v;let F;n[6]!==w?(F=async()=>{if(w)try{if(!await o.default.canOpenURL(w))return;await o.default.openURL(w)}catch(t){const e=t;console.error(`[DashboardHeader] Failed to open repo URL: ${w}`,e)}},n[6]=w,n[7]=F):F=n[7];const T=F;let U,C,H,_;n[8]!==h.fontSans||n[9]!==h.textMuted?(U=(0,u.jsx)(s.default,{style:[c.eyebrow,{color:h.textMuted,fontFamily:h.fontSans}],children:"pushpals operations console"}),n[8]=h.fontSans,n[9]=h.textMuted,n[10]=U):U=n[10];n[11]!==h.fontSans||n[12]!==h.text?(C=(0,u.jsx)(s.default,{style:[c.title,{color:h.text,fontFamily:h.fontSans}],children:"Mission Control"}),n[11]=h.fontSans,n[12]=h.text,n[13]=C):C=n[13];n[14]!==h.fontSans||n[15]!==h.textMuted?(H=(0,u.jsx)(s.default,{style:[c.subtitle,{color:h.textMuted,fontFamily:h.fontSans}],children:"Coordinate your edits with autonomous buddy execution across planning, jobs, and integration in one live board."}),n[14]=h.fontSans,n[15]=h.textMuted,n[16]=H):H=n[16];n[17]!==h.fontSans||n[18]!==h.textMuted?(_=[c.repoLine,{color:h.textMuted,fontFamily:h.fontSans}],n[17]=h.fontSans,n[18]=h.textMuted,n[19]=_):_=n[19];const R=w?h.accent:h.textMuted;let D;n[20]!==R||n[21]!==h.fontMono?(D={color:R,fontFamily:h.fontMono},n[20]=R,n[21]=h.fontMono,n[22]=D):D=n[22];const V=w?c.repoLink:null;let B,$,k,O;n[23]!==V||n[24]!==D?(B=[c.repoValue,D,V],n[23]=V,n[24]=D,n[25]=B):B=n[25];n[26]!==T||n[27]!==w?($=w?()=>{T()}:void 0,n[26]=T,n[27]=w,n[28]=$):$=n[28];n[29]!==L||n[30]!==B||n[31]!==$?(k=(0,u.jsx)(s.default,{style:B,onPress:$,children:L}),n[29]=L,n[30]=B,n[31]=$,n[32]=k):k=n[32];n[33]!==k||n[34]!==_?(O=(0,u.jsxs)(s.default,{style:_,children:["Current repo:"," ",k]}),n[33]=k,n[34]=_,n[35]=O):O=n[35];const P=y?h.accent:h.textMuted;let W,A,I,q,E,G,J;n[36]!==P||n[37]!==h.fontSans?(W=[c.snapshotLine,{color:P,fontFamily:h.fontSans}],n[36]=P,n[37]=h.fontSans,n[38]=W):W=n[38];n[39]!==h.fontMono||n[40]!==h.text?(A=[c.snapshotValue,{color:h.text,fontFamily:h.fontMono}],n[39]=h.fontMono,n[40]=h.text,n[41]=A):A=n[41];n[42]!==z||n[43]!==A?(I=(0,u.jsx)(s.default,{style:A,children:z}),n[42]=z,n[43]=A,n[44]=I):I=n[44];n[45]!==W||n[46]!==I?(q=(0,u.jsxs)(s.default,{style:W,children:["Snapshot:"," ",I]}),n[45]=W,n[46]=I,n[47]=q):q=n[47];n[48]!==O||n[49]!==q||n[50]!==U||n[51]!==C||n[52]!==H?(E=(0,u.jsxs)(l.default,{style:c.headerLeft,children:[U,C,H,O,q]}),n[48]=O,n[49]=q,n[50]=U,n[51]=C,n[52]=H,n[53]=E):E=n[53];n[54]!==p||n[55]!==b||n[56]!==h?(G=(0,u.jsx)(f.ModeSwitcher,{mode:p,onChange:b,theme:h}),n[54]=p,n[55]=b,n[56]=h,n[57]=G):G=n[57];n[58]!==E||n[59]!==G?(J=(0,u.jsxs)(l.default,{style:c.header,children:[E,G]}),n[58]=E,n[59]=G,n[60]=J):J=n[60];return J};var e=r(d[0]);r(d[1]);var o=t(r(d[2])),n=t(r(d[3])),s=t(r(d[4])),l=t(r(d[5])),f=r(d[6]),u=r(d[7]);const c=n.default.create({header:{flexDirection:"row",justifyContent:"space-between",alignItems:"flex-start",paddingHorizontal:20,paddingTop:18,paddingBottom:12},headerLeft:{flex:1,paddingRight:12},eyebrow:{fontSize:11,letterSpacing:1.3,textTransform:"uppercase",marginBottom:4},title:{fontSize:30,fontWeight:"700",marginBottom:2},subtitle:{fontSize:13,lineHeight:19,maxWidth:640},repoLine:{marginTop:6,fontSize:12,lineHeight:17},repoValue:{fontSize:12},repoLink:{textDecorationLine:"underline"},snapshotLine:{marginTop:4,fontSize:12,lineHeight:17},snapshotValue:{fontSize:12}})},1020,[1134,21,396,136,123,310,1021,2]);
|
|
1032
1032
|
__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.ModeSwitcher=function(e){const n=(0,t.c)(14),{mode:u,onChange:b,theme:x}=e;let h;n[0]===Symbol.for("react.memo_cache_sentinel")?(h=["auto","light","dark"],n[0]=h):h=n[0];const S=h;let p,y,_;n[1]!==x.border||n[2]!==x.panelAlt?(p=[f.modeWrap,{borderColor:x.border,backgroundColor:x.panelAlt}],n[1]=x.border,n[2]=x.panelAlt,n[3]=p):p=n[3];n[4]!==u||n[5]!==b||n[6]!==x.accentSoft||n[7]!==x.accentText||n[8]!==x.fontSans||n[9]!==x.textMuted?(y=S.map(e=>{const t=u===e;return(0,s.jsx)(o.default,{style:[f.modeBtn,t&&{backgroundColor:x.accentSoft}],onPress:()=>b(e),accessibilityRole:"button",accessibilityLabel:`Set theme mode to ${e}`,accessibilityState:{selected:t},children:(0,s.jsx)(l.default,{style:[f.modeText,{color:t?x.accentText:x.textMuted,fontFamily:x.fontSans}],children:e})},e)}),n[4]=u,n[5]=b,n[6]=x.accentSoft,n[7]=x.accentText,n[8]=x.fontSans,n[9]=x.textMuted,n[10]=y):y=n[10];n[11]!==p||n[12]!==y?(_=(0,s.jsx)(c.default,{style:p,children:y}),n[11]=p,n[12]=y,n[13]=_):_=n[13];return _};var t=r(d[0]);r(d[1]);var o=e(r(d[2])),n=e(r(d[3])),l=e(r(d[4])),c=e(r(d[5])),s=r(d[6]);const f=n.default.create({modeWrap:{flexDirection:"row",borderWidth:1,borderRadius:12,overflow:"hidden",alignSelf:"flex-start"},modeBtn:{paddingHorizontal:10,paddingVertical:7},modeText:{fontSize:12,fontWeight:"600",textTransform:"capitalize"}})},1021,[1134,21,417,136,123,310,2]);
|
package/monitor-ui/_sitemap.html
CHANGED
|
@@ -435,5 +435,5 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
435
435
|
@keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}}
|
|
436
436
|
@keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}}
|
|
437
437
|
@keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}}
|
|
438
|
-
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"></div></div><script src="/_expo/static/js/web/entry-
|
|
438
|
+
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"></div></div><script src="/_expo/static/js/web/entry-5fe4b1b2c73e657048674b0a7f392de9.js" defer></script>
|
|
439
439
|
</body></html>
|
package/monitor-ui/index.html
CHANGED
|
@@ -435,5 +435,5 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
435
435
|
@keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}}
|
|
436
436
|
@keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}}
|
|
437
437
|
@keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}}
|
|
438
|
-
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"><!--$--><div style="position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;visibility:hidden"></div><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0 r-1p0dtai r-1d2f490 r-u8s1d r-zchlnj r-ipm5af" style="background-color:rgba(242,242,242,1.00);display:flex"><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0"><!--$--><div class="css-g5y9jx r-13awgt0" style="background-color:rgba(236,242,245,1.00)"><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-cpet4d r-u8s1d r-g7s1ez r-15zx4ds r-a4e7m4 r-j33s3c r-1ovo9ad" style="background-color:rgba(0,126,119,0.13)"></div><div class="css-g5y9jx r-cpet4d r-u8s1d r-g7s1ez r-5fjp4n r-9s5a0n r-1hy2ut r-9dcw1g" style="background-color:rgba(199,133,30,0.09)"></div><div class="css-g5y9jx r-cpet4d r-u8s1d r-g7s1ez r-1iuttuq r-pbsvq8 r-1b0pg27 r-1sxiqef" style="background-color:rgba(22,154,88,0.09)"></div><div class="css-g5y9jx r-150rngu r-eqz5dr r-16y2uox r-1wbh5a2 r-11yh6sk r-1rnoaur r-agouwx r-13awgt0"><div class="css-g5y9jx r-16y2uox r-2llsf r-kzbkwu"><div class="css-g5y9jx r-16uyjmq r-rs99b7 r-13awgt0 r-hv52eu r-ifefl9 r-1udh08x" style="background-color:rgba(247,250,252,1.00);border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);opacity:0;transform:translateY(18px)"><div class="css-g5y9jx r-1habvwh r-18u37iz r-1wtj0ep r-kzbkwu r-u9wvl5 r-131miar"><div class="css-g5y9jx r-13awgt0 r-j2kj52"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1q67n59 r-15zivkp r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">pushpals operations console</div><div dir="auto" class="css-146c3p1 r-1ra0lkn r-b88u0q r-zl2h9q" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Mission Control</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo r-1cmskyw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Coordinate your edits with autonomous buddy execution across planning, jobs, and integration in one live board.</div><div dir="auto" class="css-146c3p1 r-1enofrn r-5fcqz0 r-kc8jnq" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Current repo:<!-- --> <span class="css-1jxf684 r-1enofrn" style="color:rgba(84,112,134,1.00);font-family:'IBM Plex Mono', 'JetBrains Mono', monospace">unavailable</span></div><div dir="auto" class="css-146c3p1 r-1enofrn r-5fcqz0 r-14gqq1x" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Snapshot:<!-- --> <span class="css-1jxf684 r-1enofrn" style="color:rgba(17,34,48,1.00);font-family:'IBM Plex Mono', 'JetBrains Mono', monospace">waiting for /system/status</span></div></div><div class="css-g5y9jx r-k200y r-1q9bdsx r-rs99b7 r-18u37iz r-1udh08x" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><button aria-label="Set theme mode to auto" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1yd117h r-1ubuhtd" style="background-color:rgba(217,244,241,1.00)" type="button"><div dir="auto" class="css-146c3p1 r-1enofrn r-1kfrs79 r-1ozqkpa" style="color:rgba(2,92,86,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">auto</div></button><button aria-label="Set theme mode to light" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1yd117h r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-1enofrn r-1kfrs79 r-1ozqkpa" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">light</div></button><button aria-label="Set theme mode to dark" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1yd117h r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-1enofrn r-1kfrs79 r-1ozqkpa" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">dark</div></button></div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-15d164r r-bhtmuz r-ytbthy r-1ubuhtd" style="background-color:rgba(244,248,251,1.00);border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00)"><div class="css-g5y9jx r-150rngu r-18u37iz r-16y2uox r-1wbh5a2 r-lltvgl r-buy8e9 r-agouwx r-2eszeu"><div class="css-g5y9jx r-18u37iz"><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(199,133,30,0.40);border-right-color:rgba(199,133,30,0.40);border-bottom-color:rgba(199,133,30,0.40);border-left-color:rgba(199,133,30,0.40);background-color:rgba(199,133,30,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(199,133,30,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">1. You</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Awaiting input</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(0,126,119,0.40);border-right-color:rgba(0,126,119,0.40);border-bottom-color:rgba(0,126,119,0.40);border-left-color:rgba(0,126,119,0.40);background-color:rgba(0,126,119,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">2. Session</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Ready</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(22,154,88,0.40);border-right-color:rgba(22,154,88,0.40);border-bottom-color:rgba(22,154,88,0.40);border-left-color:rgba(22,154,88,0.40);background-color:rgba(22,154,88,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">3. RemoteBuddy</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 pending, 0 claimed</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(22,154,88,0.40);border-right-color:rgba(22,154,88,0.40);border-bottom-color:rgba(22,154,88,0.40);border-left-color:rgba(22,154,88,0.40);background-color:rgba(22,154,88,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">4. WorkerPals</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 online, 0 busy, 0 queued</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(0,126,119,0.40);border-right-color:rgba(0,126,119,0.40);border-bottom-color:rgba(0,126,119,0.40);border-left-color:rgba(0,126,119,0.40);background-color:rgba(0,126,119,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">5. SCM</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 ready, 0 pending</div></div></div></div></div></div><div class="css-g5y9jx r-18u37iz r-1w6e6rj r-1mi0q7o r-u9wvl5"><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Connection</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(214,69,83,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Disconnected</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 events</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Pending Work</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 requests | 0 jobs</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Active Workers</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 busy</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Last Sync</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">--</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">waiting</div></div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-18u37iz r-15d164r r-bhtmuz r-146eth8" style="background-color:rgba(244,248,251,1.00);border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00)"><button aria-label="Coordination tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" style="background-color:rgba(0,126,119,1.00);border-top-color:rgba(0,126,119,1.00);border-right-color:rgba(0,126,119,1.00);border-bottom-color:rgba(0,126,119,1.00);border-left-color:rgba(0,126,119,1.00)" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(255,255,255,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Coordination<!-- --> (0)</div></button><button aria-label="Chat tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Chat<!-- --> (0)</div></button><button aria-label="Requests tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Requests<!-- --> (0)</div></button><button aria-label="Jobs & Traces tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Jobs & Traces<!-- --> (0)</div></button><button aria-label="System tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">System<!-- --> (0)</div></button><button aria-label="Config tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Config</div></button></div><div class="css-g5y9jx r-13awgt0 r-ifefl9" style="opacity:1;transform:translateY(0px)"><div class="css-g5y9jx r-150rngu r-eqz5dr r-16y2uox r-1wbh5a2 r-11yh6sk r-1rnoaur r-agouwx r-13awgt0"><div class="css-g5y9jx r-1t2hasf r-u9wvl5"><div class="css-g5y9jx r-18u37iz r-1w6e6rj r-1mi0q7o"><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Ready For Review</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 processed completions</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Active Handoffs</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 running jobs</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Awaiting Remote</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 pending requests</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Blocked</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 failed jobs</div></div></div><div class="css-g5y9jx r-eqz5dr"><div class="css-g5y9jx r-1867qdf r-rs99b7 r-k3250r r-15d164r r-xyw6el" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(255,255,255,1.00)"><div class="css-g5y9jx r-1awozwy r-18u37iz r-1wtj0ep"><div dir="auto" class="css-146c3p1 r-ubezar r-b88u0q r-5oul0u" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Change Coordination Board</div><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1g94qm0" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0<!-- --> latest requests</div></div><div class="css-g5y9jx r-1habvwh r-1867qdf r-nsbfu8"><div dir="auto" class="css-146c3p1 r-1i10wst r-b88u0q r-15zivkp" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Nothing to coordinate yet</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Send a task from chat and this board will trace the full handoff from request to integration.</div></div></div><div class="css-g5y9jx r-1867qdf r-rs99b7 r-jprt8p r-15d164r r-11wrixw r-xyw6el" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(255,255,255,1.00)"><div dir="auto" class="css-146c3p1 r-ubezar r-b88u0q r-5oul0u" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Review Queue</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">No processed completions yet.</div><div dir="auto" class="css-146c3p1 r-ubezar r-b88u0q r-5oul0u" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif;margin-top:14px">Needs Attention</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">No failed coordination chains.</div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></div></div></div><!--/$--></div></div><script src="/_expo/static/js/web/entry-5e6db7139bc13703a24f952bd64faf4c.js" defer></script>
|
|
438
|
+
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"><!--$--><div style="position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;visibility:hidden"></div><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0 r-1p0dtai r-1d2f490 r-u8s1d r-zchlnj r-ipm5af" style="background-color:rgba(242,242,242,1.00);display:flex"><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0"><!--$--><div class="css-g5y9jx r-13awgt0" style="background-color:rgba(236,242,245,1.00)"><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-cpet4d r-u8s1d r-g7s1ez r-15zx4ds r-a4e7m4 r-j33s3c r-1ovo9ad" style="background-color:rgba(0,126,119,0.13)"></div><div class="css-g5y9jx r-cpet4d r-u8s1d r-g7s1ez r-5fjp4n r-9s5a0n r-1hy2ut r-9dcw1g" style="background-color:rgba(199,133,30,0.09)"></div><div class="css-g5y9jx r-cpet4d r-u8s1d r-g7s1ez r-1iuttuq r-pbsvq8 r-1b0pg27 r-1sxiqef" style="background-color:rgba(22,154,88,0.09)"></div><div class="css-g5y9jx r-150rngu r-eqz5dr r-16y2uox r-1wbh5a2 r-11yh6sk r-1rnoaur r-agouwx r-13awgt0"><div class="css-g5y9jx r-16y2uox r-2llsf r-kzbkwu"><div class="css-g5y9jx r-16uyjmq r-rs99b7 r-13awgt0 r-hv52eu r-ifefl9 r-1udh08x" style="background-color:rgba(247,250,252,1.00);border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);opacity:0;transform:translateY(18px)"><div class="css-g5y9jx r-1habvwh r-18u37iz r-1wtj0ep r-kzbkwu r-u9wvl5 r-131miar"><div class="css-g5y9jx r-13awgt0 r-j2kj52"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1q67n59 r-15zivkp r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">pushpals operations console</div><div dir="auto" class="css-146c3p1 r-1ra0lkn r-b88u0q r-zl2h9q" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Mission Control</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo r-1cmskyw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Coordinate your edits with autonomous buddy execution across planning, jobs, and integration in one live board.</div><div dir="auto" class="css-146c3p1 r-1enofrn r-5fcqz0 r-kc8jnq" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Current repo:<!-- --> <span class="css-1jxf684 r-1enofrn" style="color:rgba(84,112,134,1.00);font-family:'IBM Plex Mono', 'JetBrains Mono', monospace">unavailable</span></div><div dir="auto" class="css-146c3p1 r-1enofrn r-5fcqz0 r-14gqq1x" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Snapshot:<!-- --> <span class="css-1jxf684 r-1enofrn" style="color:rgba(17,34,48,1.00);font-family:'IBM Plex Mono', 'JetBrains Mono', monospace">waiting for /system/status</span></div></div><div class="css-g5y9jx r-k200y r-1q9bdsx r-rs99b7 r-18u37iz r-1udh08x" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><button aria-label="Set theme mode to auto" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1yd117h r-1ubuhtd" style="background-color:rgba(217,244,241,1.00)" type="button"><div dir="auto" class="css-146c3p1 r-1enofrn r-1kfrs79 r-1ozqkpa" style="color:rgba(2,92,86,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">auto</div></button><button aria-label="Set theme mode to light" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1yd117h r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-1enofrn r-1kfrs79 r-1ozqkpa" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">light</div></button><button aria-label="Set theme mode to dark" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1yd117h r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-1enofrn r-1kfrs79 r-1ozqkpa" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">dark</div></button></div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-15d164r r-bhtmuz r-ytbthy r-1ubuhtd" style="background-color:rgba(244,248,251,1.00);border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00)"><div class="css-g5y9jx r-150rngu r-18u37iz r-16y2uox r-1wbh5a2 r-lltvgl r-buy8e9 r-agouwx r-2eszeu"><div class="css-g5y9jx r-18u37iz"><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(199,133,30,0.40);border-right-color:rgba(199,133,30,0.40);border-bottom-color:rgba(199,133,30,0.40);border-left-color:rgba(199,133,30,0.40);background-color:rgba(199,133,30,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(199,133,30,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">1. You</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Awaiting input</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(0,126,119,0.40);border-right-color:rgba(0,126,119,0.40);border-bottom-color:rgba(0,126,119,0.40);border-left-color:rgba(0,126,119,0.40);background-color:rgba(0,126,119,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">2. Session</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Ready</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(22,154,88,0.40);border-right-color:rgba(22,154,88,0.40);border-bottom-color:rgba(22,154,88,0.40);border-left-color:rgba(22,154,88,0.40);background-color:rgba(22,154,88,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">3. RemoteBuddy</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 pending, 0 claimed</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(22,154,88,0.40);border-right-color:rgba(22,154,88,0.40);border-bottom-color:rgba(22,154,88,0.40);border-left-color:rgba(22,154,88,0.40);background-color:rgba(22,154,88,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">4. WorkerPals</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 online, 0 busy, 0 queued</div></div><div class="css-g5y9jx r-109y4c4 r-8dgmk1 r-12ym1je" style="background-color:rgba(207,218,226,0.80)"></div></div><div class="css-g5y9jx r-1awozwy r-18u37iz"><div class="css-g5y9jx r-1q9bdsx r-rs99b7 r-1s5swlz r-1ubuhtd r-13i4ljo" style="border-top-color:rgba(0,126,119,0.40);border-right-color:rgba(0,126,119,0.40);border-bottom-color:rgba(0,126,119,0.40);border-left-color:rgba(0,126,119,0.40);background-color:rgba(0,126,119,0.09)"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1gkfh8e r-b88u0q r-1dpkw9 r-tsynxw" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">5. SCM</div><div dir="auto" class="css-146c3p1 r-8akbws r-krxsd3 r-dnmrzs r-1qsk4np r-1udbk01 r-1enofrn r-1cwl3u0 r-14gqq1x" style="-webkit-line-clamp:2;color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 ready, 0 pending</div></div></div></div></div></div><div class="css-g5y9jx r-18u37iz r-1w6e6rj r-1mi0q7o r-u9wvl5"><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Connection</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(214,69,83,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Disconnected</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 events</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Pending Work</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 requests | 0 jobs</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Active Workers</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 busy</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Last Sync</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">--</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">waiting</div></div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-18u37iz r-15d164r r-bhtmuz r-146eth8" style="background-color:rgba(244,248,251,1.00);border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00)"><button aria-label="Coordination tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" style="background-color:rgba(0,126,119,1.00);border-top-color:rgba(0,126,119,1.00);border-right-color:rgba(0,126,119,1.00);border-bottom-color:rgba(0,126,119,1.00);border-left-color:rgba(0,126,119,1.00)" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(255,255,255,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Coordination<!-- --> (0)</div></button><button aria-label="Chat tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Chat<!-- --> (0)</div></button><button aria-label="Requests tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Requests<!-- --> (0)</div></button><button aria-label="Jobs & Traces tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Jobs & Traces<!-- --> (0)</div></button><button aria-label="System tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">System<!-- --> (0)</div></button><button aria-label="Config tab" role="button" tabindex="0" class="css-g5y9jx r-1loqt21 r-1otgn73 r-1awozwy r-42olwf r-1dzdj1l r-rs99b7 r-13awgt0 r-1777fci r-11f147o r-1ubuhtd" type="button"><div dir="auto" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1enofrn r-b88u0q" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Config</div></button></div><div class="css-g5y9jx r-13awgt0 r-ifefl9" style="opacity:1;transform:translateY(0px)"><div class="css-g5y9jx r-150rngu r-eqz5dr r-16y2uox r-1wbh5a2 r-11yh6sk r-1rnoaur r-agouwx r-13awgt0"><div class="css-g5y9jx r-1t2hasf r-u9wvl5"><div class="css-g5y9jx r-18u37iz r-1w6e6rj r-1mi0q7o"><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Ready For Review</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 processed completions</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Active Handoffs</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(0,126,119,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 running jobs</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Awaiting Remote</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 pending requests</div></div><div class="css-g5y9jx r-t23y2h r-rs99b7 r-16y2uox r-5oul0u r-1kb76zh r-bgnin r-ytbthy r-3o4zer" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(244,248,251,1.00)"><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1cm7zt9 r-tsynxw" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Blocked</div><div dir="auto" class="css-146c3p1 r-evnaw r-b88u0q r-19qrga8" style="color:rgba(22,154,88,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0</div><div dir="auto" class="css-146c3p1 r-1enofrn r-19qrga8" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0 failed jobs</div></div></div><div class="css-g5y9jx r-eqz5dr"><div class="css-g5y9jx r-1867qdf r-rs99b7 r-k3250r r-15d164r r-xyw6el" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(255,255,255,1.00)"><div class="css-g5y9jx r-1awozwy r-18u37iz r-1wtj0ep"><div dir="auto" class="css-146c3p1 r-ubezar r-b88u0q r-5oul0u" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Change Coordination Board</div><div dir="auto" class="css-146c3p1 r-1gkfh8e r-1g94qm0" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">0<!-- --> latest requests</div></div><div class="css-g5y9jx r-1habvwh r-1867qdf r-nsbfu8"><div dir="auto" class="css-146c3p1 r-1i10wst r-b88u0q r-15zivkp" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Nothing to coordinate yet</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Send a task from chat and this board will trace the full handoff from request to integration.</div></div></div><div class="css-g5y9jx r-1867qdf r-rs99b7 r-jprt8p r-15d164r r-11wrixw r-xyw6el" style="border-top-color:rgba(207,218,226,1.00);border-right-color:rgba(207,218,226,1.00);border-bottom-color:rgba(207,218,226,1.00);border-left-color:rgba(207,218,226,1.00);background-color:rgba(255,255,255,1.00)"><div dir="auto" class="css-146c3p1 r-ubezar r-b88u0q r-5oul0u" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">Review Queue</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">No processed completions yet.</div><div dir="auto" class="css-146c3p1 r-ubezar r-b88u0q r-5oul0u" style="color:rgba(17,34,48,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif;margin-top:14px">Needs Attention</div><div dir="auto" class="css-146c3p1 r-n6v787 r-hjklzo" style="color:rgba(84,112,134,1.00);font-family:'Space Grotesk', 'Avenir Next', 'Trebuchet MS', sans-serif">No failed coordination chains.</div></div></div></div></div></div></div></div></div></div></div><!--/$--></div></div></div></div><!--/$--></div></div><script src="/_expo/static/js/web/entry-5fe4b1b2c73e657048674b0a7f392de9.js" defer></script>
|
|
439
439
|
</body></html>
|
package/monitor-ui/modal.html
CHANGED
|
@@ -435,5 +435,5 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
435
435
|
@keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}}
|
|
436
436
|
@keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}}
|
|
437
437
|
@keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}}
|
|
438
|
-
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"><!--$--><div style="position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;visibility:hidden"></div><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0 r-1p0dtai r-1d2f490 r-u8s1d r-zchlnj r-ipm5af" style="background-color:rgba(242,242,242,1.00);display:flex"><div class="css-g5y9jx r-184en5c r-12vffkv"><div class="css-g5y9jx r-12vffkv" style="height:64px"><div class="css-g5y9jx r-1p0dtai r-1d2f490 r-u8s1d r-zchlnj r-ipm5af r-12vffkv"><div class="css-g5y9jx r-qklmqi r-13awgt0 r-105ug2t" style="background-color:rgba(255,255,255,1.00);border-bottom-color:rgba(216,216,216,1.00)"></div></div><div class="css-g5y9jx r-633pao" style="height:0px"></div><div class="css-g5y9jx r-1oszu61 r-13awgt0 r-18u37iz r-12vffkv"><div class="css-g5y9jx r-1awozwy r-18u37iz r-1h0z5md r-12vffkv" style="margin-left:0px"></div><div class="css-g5y9jx r-1777fci r-12vffkv" style="max-width:-32px;margin-right:16px;margin-left:16px"><h1 dir="auto" aria-level="1" role="heading" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1i10wst" style="color:rgba(28,28,30,1.00);font-family:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-weight:500">Modal</h1></div><div class="css-g5y9jx r-1awozwy r-18u37iz r-17s6mgv r-1iusvr4 r-16y2uox r-12vffkv" style="margin-right:0px"></div></div></div></div><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0"><!--$--><div class="css-g5y9jx r-1awozwy r-13awgt0 r-1777fci r-1pcd2l5" style="background-color:rgba(255,255,255,1.00)"><div dir="auto" class="css-146c3p1 r-1ui5ee8 r-vw2c0b r-37tt59" style="color:rgba(17,24,28,1.00)">This is a modal</div><a href="/" dir="auto" role="link" class="css-146c3p1 r-19h5ruw r-1d7mnkm r-1loqt21"><span class="css-1jxf684 r-1v78gzs r-ubezar r-17rnw9f">Go to home screen</span></a></div><!--/$--></div></div></div></div><!--/$--></div></div><script src="/_expo/static/js/web/entry-
|
|
438
|
+
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"><!--$--><div style="position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;visibility:hidden"></div><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0 r-1p0dtai r-1d2f490 r-u8s1d r-zchlnj r-ipm5af" style="background-color:rgba(242,242,242,1.00);display:flex"><div class="css-g5y9jx r-184en5c r-12vffkv"><div class="css-g5y9jx r-12vffkv" style="height:64px"><div class="css-g5y9jx r-1p0dtai r-1d2f490 r-u8s1d r-zchlnj r-ipm5af r-12vffkv"><div class="css-g5y9jx r-qklmqi r-13awgt0 r-105ug2t" style="background-color:rgba(255,255,255,1.00);border-bottom-color:rgba(216,216,216,1.00)"></div></div><div class="css-g5y9jx r-633pao" style="height:0px"></div><div class="css-g5y9jx r-1oszu61 r-13awgt0 r-18u37iz r-12vffkv"><div class="css-g5y9jx r-1awozwy r-18u37iz r-1h0z5md r-12vffkv" style="margin-left:0px"></div><div class="css-g5y9jx r-1777fci r-12vffkv" style="max-width:-32px;margin-right:16px;margin-left:16px"><h1 dir="auto" aria-level="1" role="heading" class="css-146c3p1 r-dnmrzs r-1udh08x r-1udbk01 r-3s2u2q r-1iln25a r-1i10wst" style="color:rgba(28,28,30,1.00);font-family:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-weight:500">Modal</h1></div><div class="css-g5y9jx r-1awozwy r-18u37iz r-17s6mgv r-1iusvr4 r-16y2uox r-12vffkv" style="margin-right:0px"></div></div></div></div><div class="css-g5y9jx r-13awgt0"><div class="css-g5y9jx r-13awgt0"><!--$--><div class="css-g5y9jx r-1awozwy r-13awgt0 r-1777fci r-1pcd2l5" style="background-color:rgba(255,255,255,1.00)"><div dir="auto" class="css-146c3p1 r-1ui5ee8 r-vw2c0b r-37tt59" style="color:rgba(17,24,28,1.00)">This is a modal</div><a href="/" dir="auto" role="link" class="css-146c3p1 r-19h5ruw r-1d7mnkm r-1loqt21"><span class="css-1jxf684 r-1v78gzs r-ubezar r-17rnw9f">Go to home screen</span></a></div><!--/$--></div></div></div></div><!--/$--></div></div><script src="/_expo/static/js/web/entry-5fe4b1b2c73e657048674b0a7f392de9.js" defer></script>
|
|
439
439
|
</body></html>
|
package/package.json
CHANGED
|
@@ -104,6 +104,15 @@ export interface QualityGatePolicy {
|
|
|
104
104
|
criticMinScore: number;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
function shouldSoftPassValidationBlocker(
|
|
108
|
+
policy: QualityGatePolicy,
|
|
109
|
+
blocker: ValidationBlocker | null,
|
|
110
|
+
): boolean {
|
|
111
|
+
if (!blocker) return false;
|
|
112
|
+
if (!policy.softPassOnExhausted) return false;
|
|
113
|
+
return policy.mode === "review_fix" || policy.mode === "merge_conflict";
|
|
114
|
+
}
|
|
115
|
+
|
|
107
116
|
// ─── Utilities ───────────────────────────────────────────────────────────────
|
|
108
117
|
|
|
109
118
|
export function shouldCommit(
|
|
@@ -2140,7 +2149,13 @@ export async function resumePreparedMergeConflictRebase(
|
|
|
2140
2149
|
params?: Record<string, unknown>,
|
|
2141
2150
|
onLog?: (stream: "stdout" | "stderr", line: string) => void,
|
|
2142
2151
|
): Promise<
|
|
2143
|
-
| {
|
|
2152
|
+
| {
|
|
2153
|
+
ok: true;
|
|
2154
|
+
resumed: boolean;
|
|
2155
|
+
sequencer: "rebase" | "merge" | "cherry-pick" | null;
|
|
2156
|
+
detail?: string;
|
|
2157
|
+
advancedToNextConflict?: boolean;
|
|
2158
|
+
}
|
|
2144
2159
|
| { ok: false; error: string }
|
|
2145
2160
|
> {
|
|
2146
2161
|
const sequencer = await activeGitOperation(repo);
|
|
@@ -2230,6 +2245,26 @@ export async function resumePreparedMergeConflictRebase(
|
|
|
2230
2245
|
continueOutput = combinedGitOutput(rebaseContinue);
|
|
2231
2246
|
}
|
|
2232
2247
|
if (!rebaseContinue.ok) {
|
|
2248
|
+
const continuingSequencer = await activeGitOperation(repo);
|
|
2249
|
+
if (continuingSequencer === "rebase") {
|
|
2250
|
+
const nextUnresolved = await git(repo, ["diff", "--name-only", "--diff-filter=U"]);
|
|
2251
|
+
if (nextUnresolved.ok) {
|
|
2252
|
+
const nextPaths = parseChangedPathsFromNameOnlyOutput(nextUnresolved.stdout);
|
|
2253
|
+
if (nextPaths.length > 0) {
|
|
2254
|
+
onLog?.(
|
|
2255
|
+
"stdout",
|
|
2256
|
+
`[MergeConflict] Rebase advanced into another conflicted commit with ${nextPaths.length} unresolved file(s); rerunning the resolver on updated sandbox state.`,
|
|
2257
|
+
);
|
|
2258
|
+
return {
|
|
2259
|
+
ok: true,
|
|
2260
|
+
resumed: true,
|
|
2261
|
+
sequencer: "rebase",
|
|
2262
|
+
detail: `rebase advanced into another conflicted commit with ${nextPaths.length} unresolved file(s)`,
|
|
2263
|
+
advancedToNextConflict: true,
|
|
2264
|
+
};
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
}
|
|
2233
2268
|
return {
|
|
2234
2269
|
ok: false,
|
|
2235
2270
|
error: `Failed to continue prepared merge-conflict rebase: ${continueOutput}`,
|
|
@@ -2951,6 +2986,7 @@ export function buildWorkerCommitMessage(
|
|
|
2951
2986
|
export type { JobResult } from "./common/types.js";
|
|
2952
2987
|
|
|
2953
2988
|
const SUPPORTED_JOB_KINDS = new Set(["warmup.execute", "task.execute"]);
|
|
2989
|
+
const MAX_MERGE_CONFLICT_RESOLUTION_PASSES = 8;
|
|
2954
2990
|
|
|
2955
2991
|
type TaskExecutePriority = "interactive" | "normal" | "background";
|
|
2956
2992
|
type TaskExecuteIntent = "chat" | "status" | "code_change" | "analysis" | "other";
|
|
@@ -3583,12 +3619,12 @@ export async function executeJob(
|
|
|
3583
3619
|
: qualityCriticMinScore.toFixed(1);
|
|
3584
3620
|
onLog?.(
|
|
3585
3621
|
"stdout",
|
|
3586
|
-
`[QualityGate] review_fix policy active: prior_score=${priorScore}, target_threshold=${threshold}, soft_pass_on_exhausted=${qualitySoftPassOnExhausted ? "true" : "false"}; repo/environment blockers
|
|
3622
|
+
`[QualityGate] review_fix policy active: prior_score=${priorScore}, target_threshold=${threshold}, soft_pass_on_exhausted=${qualitySoftPassOnExhausted ? "true" : "false"}; unfinished branch-state blockers fail hard, but repo/environment validation blockers soft-pass once the update is publishable.`,
|
|
3587
3623
|
);
|
|
3588
3624
|
} else if (qualityGatePolicy.mode === "merge_conflict") {
|
|
3589
3625
|
onLog?.(
|
|
3590
3626
|
"stdout",
|
|
3591
|
-
`[QualityGate] merge_conflict policy active: soft_pass_on_exhausted=${qualitySoftPassOnExhausted ? "true" : "false"}; unfinished rebases
|
|
3627
|
+
`[QualityGate] merge_conflict policy active: soft_pass_on_exhausted=${qualitySoftPassOnExhausted ? "true" : "false"}; unfinished rebases still fail hard, but repo/environment validation blockers soft-pass once the rebase is publishable.`,
|
|
3592
3628
|
);
|
|
3593
3629
|
}
|
|
3594
3630
|
|
|
@@ -3611,41 +3647,75 @@ export async function executeJob(
|
|
|
3611
3647
|
exitCode: 1,
|
|
3612
3648
|
};
|
|
3613
3649
|
}
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3650
|
+
let result: Awaited<ReturnType<typeof runExecutor>> | null = null;
|
|
3651
|
+
let mergeConflictPass = 0;
|
|
3652
|
+
while (true) {
|
|
3653
|
+
const currentResult = await runExecutor(
|
|
3654
|
+
kind,
|
|
3655
|
+
attemptParams,
|
|
3656
|
+
repo,
|
|
3657
|
+
runtimeConfig,
|
|
3658
|
+
onLog,
|
|
3659
|
+
executeBudgets,
|
|
3660
|
+
);
|
|
3661
|
+
if (!currentResult.ok) return currentResult;
|
|
3662
|
+
result = currentResult;
|
|
3663
|
+
if (!mergeConflictContext) break;
|
|
3664
|
+
|
|
3624
3665
|
const resume = await resumePreparedMergeConflictRebase(repo, kind, attemptParams, onLog);
|
|
3625
3666
|
if (!resume.ok) {
|
|
3626
3667
|
onLog?.("stderr", `[MergeConflict] ${resume.error}`);
|
|
3627
3668
|
return {
|
|
3628
3669
|
ok: false,
|
|
3629
3670
|
summary: "Merge-conflict rebase continuation failed",
|
|
3630
|
-
stdout:
|
|
3631
|
-
stderr: [
|
|
3671
|
+
stdout: currentResult.stdout,
|
|
3672
|
+
stderr: [currentResult.stderr ?? "", resume.error].filter(Boolean).join("\n"),
|
|
3632
3673
|
exitCode: 4,
|
|
3633
3674
|
};
|
|
3634
3675
|
}
|
|
3635
3676
|
const sequencer = resume.sequencer;
|
|
3636
|
-
if (sequencer)
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3677
|
+
if (!sequencer) break;
|
|
3678
|
+
if (sequencer === "rebase" && resume.resumed && resume.advancedToNextConflict) {
|
|
3679
|
+
mergeConflictPass += 1;
|
|
3680
|
+
if (mergeConflictPass >= MAX_MERGE_CONFLICT_RESOLUTION_PASSES) {
|
|
3681
|
+
const detail =
|
|
3682
|
+
`Merge-conflict rebase required more than ${MAX_MERGE_CONFLICT_RESOLUTION_PASSES} resolver passes. ` +
|
|
3683
|
+
"Stopping to avoid an infinite conflict-resolution loop.";
|
|
3684
|
+
onLog?.("stderr", `[MergeConflict] ${detail}`);
|
|
3685
|
+
return {
|
|
3686
|
+
ok: false,
|
|
3687
|
+
summary: detail,
|
|
3688
|
+
stdout: currentResult.stdout,
|
|
3689
|
+
stderr: [currentResult.stderr ?? "", resume.detail ?? detail].filter(Boolean).join("\n"),
|
|
3690
|
+
exitCode: 4,
|
|
3691
|
+
};
|
|
3692
|
+
}
|
|
3693
|
+
onLog?.(
|
|
3694
|
+
"stdout",
|
|
3695
|
+
`[MergeConflict] Rebase surfaced another conflicted commit after auto-continue; rerunning resolver pass ${
|
|
3696
|
+
mergeConflictPass + 1
|
|
3697
|
+
}.`,
|
|
3698
|
+
);
|
|
3699
|
+
continue;
|
|
3648
3700
|
}
|
|
3701
|
+
const detail =
|
|
3702
|
+
`Merge-conflict job returned with git ${sequencer} still in progress. ` +
|
|
3703
|
+
`Finish the ${sequencer} before returning control to WorkerPals.`;
|
|
3704
|
+
onLog?.("stderr", `[MergeConflict] ${detail}`);
|
|
3705
|
+
return {
|
|
3706
|
+
ok: false,
|
|
3707
|
+
summary: detail,
|
|
3708
|
+
stdout: currentResult.stdout,
|
|
3709
|
+
stderr: [currentResult.stderr ?? "", detail].filter(Boolean).join("\n"),
|
|
3710
|
+
exitCode: 4,
|
|
3711
|
+
};
|
|
3712
|
+
}
|
|
3713
|
+
if (!result) {
|
|
3714
|
+
return {
|
|
3715
|
+
ok: false,
|
|
3716
|
+
summary: "Merge-conflict execution ended without an executor result.",
|
|
3717
|
+
exitCode: 4,
|
|
3718
|
+
};
|
|
3649
3719
|
}
|
|
3650
3720
|
|
|
3651
3721
|
const scopeCheck = await collectWriteScopeWarnings(repo, planning);
|
|
@@ -3693,18 +3763,36 @@ export async function executeJob(
|
|
|
3693
3763
|
const issueSummary = issues.map((entry) => toSingleLine(entry, 180)).join(" | ");
|
|
3694
3764
|
if (quality.blocker) {
|
|
3695
3765
|
const blockerSummary = `Quality gate blocked by ${quality.blocker.category} issue: ${quality.blocker.detail}`;
|
|
3766
|
+
const blockerDiagnostics = truncate(
|
|
3767
|
+
[
|
|
3768
|
+
result.stderr ?? "",
|
|
3769
|
+
...quality.validationRuns.flatMap((run) => [run.stdout, run.stderr]).filter(Boolean),
|
|
3770
|
+
].join("\n"),
|
|
3771
|
+
outputPolicyForRuntime(runtimeConfig),
|
|
3772
|
+
);
|
|
3773
|
+
if (shouldSoftPassValidationBlocker(qualityGatePolicy, quality.blocker)) {
|
|
3774
|
+
onLog?.(
|
|
3775
|
+
"stderr",
|
|
3776
|
+
`[QualityGate] Soft-pass on ${quality.blocker.category} blocker for publishable ${qualityGatePolicy.mode} job: ${toSingleLine(
|
|
3777
|
+
quality.blocker.detail,
|
|
3778
|
+
260,
|
|
3779
|
+
)}`,
|
|
3780
|
+
);
|
|
3781
|
+
return {
|
|
3782
|
+
...result,
|
|
3783
|
+
summary:
|
|
3784
|
+
`${result.summary} ` +
|
|
3785
|
+
`(quality gate soft-pass on ${quality.blocker.category} blocker after publishable ${qualityGatePolicy.mode} update)`,
|
|
3786
|
+
stderr: blockerDiagnostics,
|
|
3787
|
+
exitCode: typeof result.exitCode === "number" ? result.exitCode : 0,
|
|
3788
|
+
};
|
|
3789
|
+
}
|
|
3696
3790
|
onLog?.("stderr", `[QualityGate] ${blockerSummary}`);
|
|
3697
3791
|
return {
|
|
3698
3792
|
ok: false,
|
|
3699
3793
|
summary: blockerSummary,
|
|
3700
3794
|
stdout: result.stdout,
|
|
3701
|
-
stderr:
|
|
3702
|
-
[
|
|
3703
|
-
result.stderr ?? "",
|
|
3704
|
-
...quality.validationRuns.flatMap((run) => [run.stdout, run.stderr]).filter(Boolean),
|
|
3705
|
-
].join("\n"),
|
|
3706
|
-
outputPolicyForRuntime(runtimeConfig),
|
|
3707
|
-
),
|
|
3795
|
+
stderr: blockerDiagnostics,
|
|
3708
3796
|
exitCode: 4,
|
|
3709
3797
|
};
|
|
3710
3798
|
}
|