glimmervoid 0.46.1 → 0.46.2-next.105

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.
Files changed (66) hide show
  1. package/dist/client/assets/{benchmark-panel-DChPUXGA.js → benchmark-panel-CszdSUlB.js} +1 -1
  2. package/dist/client/assets/benchmark-panel-CszdSUlB.js.br +0 -0
  3. package/dist/client/assets/benchmark-panel-DDwPBdjB.css +1 -0
  4. package/dist/client/assets/benchmark-panel-DDwPBdjB.css.br +0 -0
  5. package/dist/client/assets/{dialogs-DdT1F2S6.js → dialogs-BzWYYMp7.js} +1 -1
  6. package/dist/client/assets/dialogs-BzWYYMp7.js.br +0 -0
  7. package/dist/client/assets/{hooks-panel-BsUFFLp2.js → hooks-panel-CM_yytb4.js} +1 -1
  8. package/dist/client/assets/hooks-panel-CM_yytb4.js.br +0 -0
  9. package/dist/client/assets/hooks-panel-vO6hRv8A.css +1 -0
  10. package/dist/client/assets/hooks-panel-vO6hRv8A.css.br +0 -0
  11. package/dist/client/assets/{index-BReL4NSr.js → index-BUTeP_1d.js} +4 -4
  12. package/dist/client/assets/index-BUTeP_1d.js.br +0 -0
  13. package/dist/client/assets/index-CGv-GowR.css +2 -0
  14. package/dist/client/assets/index-CGv-GowR.css.br +0 -0
  15. package/dist/client/assets/issues-panel-CPjbxcmf.css +1 -0
  16. package/dist/client/assets/issues-panel-CPjbxcmf.css.br +0 -0
  17. package/dist/client/assets/{issues-panel-D28hf84c.js → issues-panel-D-EGyggM.js} +1 -1
  18. package/dist/client/assets/issues-panel-D-EGyggM.js.br +0 -0
  19. package/dist/client/assets/plan-face-BKvWQchw.css +1 -0
  20. package/dist/client/assets/plan-face-BKvWQchw.css.br +0 -0
  21. package/dist/client/assets/{plan-face-CJorgkgV.js → plan-face-DbQlcRhI.js} +1 -1
  22. package/dist/client/assets/plan-face-DbQlcRhI.js.br +0 -0
  23. package/dist/client/assets/{pr-scope-tabs-jELwYeSS.js → pr-scope-tabs-BPX_CXBo.js} +1 -1
  24. package/dist/client/assets/pr-scope-tabs-BPX_CXBo.js.br +0 -0
  25. package/dist/client/assets/{radar-panel-CTcFyxm0.js → radar-panel-CBsYcvsx.js} +1 -1
  26. package/dist/client/assets/radar-panel-CBsYcvsx.js.br +0 -0
  27. package/dist/client/assets/radar-panel-DZnRUVtP.css +1 -0
  28. package/dist/client/assets/radar-panel-DZnRUVtP.css.br +0 -0
  29. package/dist/client/assets/{review-queue-panel-R9p5_F6Q.js → review-queue-panel-CsfKv-Qs.js} +1 -1
  30. package/dist/client/assets/review-queue-panel-CsfKv-Qs.js.br +0 -0
  31. package/dist/client/assets/review-queue-panel-Dfky79CM.css +1 -0
  32. package/dist/client/assets/review-queue-panel-Dfky79CM.css.br +0 -0
  33. package/dist/client/assets/{settings-panel-3mnXcihD.js → settings-panel-C4dMR2ZO.js} +2 -2
  34. package/dist/client/assets/settings-panel-C4dMR2ZO.js.br +0 -0
  35. package/dist/client/assets/settings-panel-DF9_cNvu.css +1 -0
  36. package/dist/client/assets/settings-panel-DF9_cNvu.css.br +0 -0
  37. package/dist/client/assets/trace-panel-8Txvz14_.css +1 -0
  38. package/dist/client/assets/trace-panel-8Txvz14_.css.br +0 -0
  39. package/dist/client/assets/{trace-panel-6p6YymRs.js → trace-panel-Clh5MKKF.js} +1 -1
  40. package/dist/client/assets/trace-panel-Clh5MKKF.js.br +0 -0
  41. package/dist/client/assets/usage-panel-DNM1lX5J.css +1 -0
  42. package/dist/client/assets/usage-panel-DNM1lX5J.css.br +0 -0
  43. package/dist/client/assets/{usage-panel-DBzi4xwe.js → usage-panel-U5Fv-aGl.js} +1 -1
  44. package/dist/client/assets/usage-panel-U5Fv-aGl.js.br +0 -0
  45. package/dist/client/assets/{visions-panel-BMCIETcz.js → visions-panel-BkQgvD3R.js} +1 -1
  46. package/dist/client/assets/visions-panel-BkQgvD3R.js.br +0 -0
  47. package/dist/client/assets/visions-panel-pBP6aaaP.css +1 -0
  48. package/dist/client/assets/visions-panel-pBP6aaaP.css.br +0 -0
  49. package/dist/client/index.html +2 -2
  50. package/dist/client/index.html.br +0 -0
  51. package/package.json +1 -1
  52. package/dist/client/assets/benchmark-panel-DChPUXGA.js.br +0 -0
  53. package/dist/client/assets/dialogs-DdT1F2S6.js.br +0 -0
  54. package/dist/client/assets/hooks-panel-BsUFFLp2.js.br +0 -0
  55. package/dist/client/assets/index-BReL4NSr.js.br +0 -0
  56. package/dist/client/assets/index-COj0CIXL.css +0 -2
  57. package/dist/client/assets/index-COj0CIXL.css.br +0 -0
  58. package/dist/client/assets/issues-panel-D28hf84c.js.br +0 -0
  59. package/dist/client/assets/plan-face-CJorgkgV.js.br +0 -0
  60. package/dist/client/assets/pr-scope-tabs-jELwYeSS.js.br +0 -0
  61. package/dist/client/assets/radar-panel-CTcFyxm0.js.br +0 -0
  62. package/dist/client/assets/review-queue-panel-R9p5_F6Q.js.br +0 -0
  63. package/dist/client/assets/settings-panel-3mnXcihD.js.br +0 -0
  64. package/dist/client/assets/trace-panel-6p6YymRs.js.br +0 -0
  65. package/dist/client/assets/usage-panel-DBzi4xwe.js.br +0 -0
  66. package/dist/client/assets/visions-panel-BMCIETcz.js.br +0 -0
@@ -0,0 +1 @@
1
+ @layer components{.plan-head{border-bottom:1px solid var(--border-dim);background:var(--bg-surface);flex:none;align-items:center;gap:8px;padding:6px 12px;display:flex}.plan-view-panel,.plan-view-group{display:contents}.plan-head-spacer{flex:auto}.plan-tabs,.plan-modes,.plan-revision-stepper,.plan-draft-notice{align-items:center;gap:4px;display:flex}.plan-tabs{min-width:0;overflow-x:auto}.plan-modes{border:1px solid var(--border);border-radius:var(--radius);gap:0}.plan-revision-stepper{white-space:nowrap;flex-shrink:0}.plan-revision-label{color:var(--text-head);font-size:11px}.plan-revision-age{color:var(--text-muted);white-space:nowrap;font-size:11px}.plan-revision-stepper .plan-revision-age{margin-left:4px}.plan-tab,.plan-mode{border-color:#0000}.plan-mode{border-radius:0}.plan-revision-previous,.plan-revision-next{border-color:#0000;width:24px;padding:0;font-size:16px}.plan-draft-dot{background:var(--state-waiting);border-radius:50%;width:6px;height:6px}.plan-draft-chip{border-color:#0000}.plan-minimize-button{color:var(--text-head)}.plan-heading-picker{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);min-width:0;min-height:30px;color:var(--text-head);font:11px var(--font-mono);padding:4px 8px;display:none}.plan-view-button,.plan-sheet-head,.plan-sheet-label,.plan-revision-list,.plan-sheet-backdrop{display:none}.plan-body-layout{flex:auto;grid-template-columns:208px minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.plan-heading-rail{border-right:1px solid var(--border-dim);background:var(--bg-surface);min-height:0;padding:16px 10px;overflow-y:auto}.plan-heading-link{text-align:left;overflow-wrap:anywhere;border-color:#0000;width:100%;min-height:30px;padding:5px 8px;font-size:11px;line-height:1.4;display:block}.plan-heading-link[data-level="1"]{color:var(--text-head);font-weight:700}.plan-heading-link[data-level="2"]{padding-left:16px}.plan-heading-link:is([data-level="3"],[data-level="4"],[data-level="5"],[data-level="6"]){padding-left:24px}.plan-heading-link[aria-current=location]{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.plan-heading-link[data-commented=true]:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:8px;display:inline-block}.plan-reading-column{box-sizing:border-box;overscroll-behavior:contain;width:100%;min-width:0;min-height:0;padding:24px;font-size:14px;line-height:1.65;overflow-y:auto}.plan-comment-input{resize:vertical;min-height:112px;margin-top:8px;display:block}.plan-comment-card,.plan-comment-composer{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);margin:12px 0;padding:12px}.plan-comment-label{color:var(--text-muted);font-size:11px}.plan-comment-head{align-items:center;gap:6px;display:flex}.plan-comment-head .plan-comment-label{flex:auto}.plan-comment-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}.plan-comment-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.plan-loading{color:var(--text-dim)}.plan-action-bar{border-top:1px solid var(--border);background:var(--bg-header);flex:none;align-items:center;gap:8px;min-height:52px;padding:8px 12px;display:flex}.plan-decision-slot{flex:auto;min-width:0}.plan-status{color:var(--text-muted);font-size:11px;line-height:1.4}.plan-accept-edits{min-height:30px;color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:11px;display:flex}.plan-accept-edits-checkbox{margin:0}@container (width<=700px){.plan-head{flex-wrap:wrap;gap:6px}.plan-heading-picker{flex:64px;width:64px;display:block}.plan-revision-previous,.plan-revision-next{width:20px;padding:0}.plan-body-layout{display:block}.plan-heading-rail{display:none}.plan-reading-column{height:100%;padding:20px 14px}.plan-action-bar{gap:6px;padding-inline:10px}.plan-action{letter-spacing:.02em;padding-inline:6px}}html[data-layout=phone] .plan-head{flex-wrap:nowrap;gap:8px}html[data-layout=phone] .plan-heading-picker{flex:auto;min-height:40px;font-size:16px;display:block}html[data-layout=phone] .plan-view-button,html[data-layout=phone] .plan-body-layout{display:block}html[data-layout=phone] .plan-heading-rail{display:none}html[data-layout=phone] .plan-reading-column{height:100%;padding:16px 14px}html[data-layout=phone] .plan-head-spacer,html[data-layout=phone] .plan-revision-stepper,html[data-layout=phone] .plan-view-panel{display:none}html[data-layout=phone] .plan-view-panel[data-open=true]{z-index:2;border-top:1px solid var(--border-hover);border-radius:var(--radius) var(--radius) 0 0;background:var(--bg-card);flex-direction:column;gap:16px;max-height:100%;padding:8px 16px 24px;display:flex;position:absolute;inset:auto 0 0;overflow-y:auto}html[data-layout=phone] .plan-sheet-backdrop[data-open=true]{z-index:1;background:color-mix(in srgb, var(--bg-header) 72%, transparent);display:block;position:absolute;inset:0}html[data-layout=phone] .plan-sheet-head{color:var(--text-head);justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex}html[data-layout=phone] .plan-sheet-close{border-color:#0000;width:44px;font-size:16px}html[data-layout=phone] .plan-view-group{flex-direction:column;gap:8px;display:flex}html[data-layout=phone] .plan-mode-group{order:1}html[data-layout=phone] .plan-revision-group{order:2}html[data-layout=phone] .plan-author-group{order:3}html[data-layout=phone] .plan-draft-notice{order:4}html[data-layout=phone] .plan-sheet-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700;display:block}html[data-layout=phone] .plan-tabs,html[data-layout=phone] .plan-modes{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}html[data-layout=phone] .plan-tabs{overflow-x:auto}html[data-layout=phone] .plan-revision-list{flex-direction:column;gap:8px;display:flex}html[data-layout=phone] .plan-revision-option{text-align:left;align-items:center;gap:10px;min-height:44px;padding:8px 12px;font-size:14px;display:flex}html[data-layout=phone] .plan-revision-option:before{content:"";border:1px solid var(--border-hover);border-radius:50%;flex:0 0 12px;height:12px}html[data-layout=phone] .plan-revision-option[aria-checked=true]:before{border-color:var(--accent);background:var(--accent)}html[data-layout=phone] .plan-revision-name{flex:auto}html[data-layout=phone] .plan-revision-open{color:var(--state-waiting);font-size:10px;font-weight:700}html[data-layout=phone] .plan-action-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;padding:4px 12px 10px;display:grid}html[data-layout=phone] .plan-decision-slot{grid-area:1/1}html[data-layout=phone] .plan-action[data-decision=terminal]{grid-area:1/2;justify-self:end;min-height:40px}html[data-layout=phone] .plan-action[data-decision=revise]{grid-area:2/1}html[data-layout=phone] .plan-action[data-decision=approve]{grid-area:2/2}html[data-layout=phone] .plan-accept-edits{min-height:40px;font-size:12px}html[data-layout=phone] .plan-action{min-height:44px}}
@@ -1,3 +1,3 @@
1
- import{C as e,Xt as t,o as n}from"./dom-helpers-B98sy9ep.js";import{t as r}from"./roving-keys-core-BDobx2It.js";import{o as i}from"./modal-5t7_5VCF.js";import{An as a,Cn as o,Dn as s,En as c,On as l,Sr as u,Tn as ee,er as te,ir as ne,kn as re,nr as ie,rr as ae,tr as oe,wn as se}from"./index-BReL4NSr.js";var d=2e3,f=3;function ce(e){return e.replace(/\r\n?/g,`
1
+ import{C as e,Xt as t,o as n}from"./dom-helpers-B98sy9ep.js";import{t as r}from"./roving-keys-core-BDobx2It.js";import{o as i}from"./modal-5t7_5VCF.js";import{An as a,Cn as o,Dn as s,En as c,On as l,Sr as u,Tn as ee,er as te,ir as ne,kn as re,nr as ie,rr as ae,tr as oe,wn as se}from"./index-BUTeP_1d.js";var d=2e3,f=3;function ce(e){return e.replace(/\r\n?/g,`
2
2
  `).split(`
3
3
  `)}function p(e){return{kind:`unchanged`,text:e}}function m(e){return{kind:`skipped`,text:`${e} unchanged lines`}}function h(e,t){return e.length<=7?e.map(t):[...e.slice(0,f).map(t),m(e.length-6),...e.slice(e.length-f).map(t)]}function g(e){return e}function _(e){let t=[],n=0;for(;n<e.length;){if(e[n].kind!==`unchanged`){t.push(e[n]),n++;continue}let r=n;for(;r<e.length&&e[r].kind===`unchanged`;)r++;t.push(...h(e.slice(n,r),g)),n=r}return t}function v(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&e[r]===t[r];)r++;return r}function le(e,t,n){let r=Math.min(e.length,t.length)-n,i=0;for(;i<r&&e[e.length-1-i]===t[t.length-1-i];)i++;return i}function ue(e,t){let n=e.length,r=t.length;if(n===0)return t.map(e=>({kind:`added`,text:e}));if(r===0)return e.map(e=>({kind:`removed`,text:e}));let i=r+1,a=new Int32Array((n+1)*i);for(let o=n-1;o>=0;o--)for(let n=r-1;n>=0;n--){let r=o*i+n;a[r]=e[o]===t[n]?a[r+i+1]+1:Math.max(a[r+i],a[r+1])}let o=[],s=0,c=0;for(;s<n&&c<r;)e[s]===t[c]?(o.push(p(e[s])),s++,c++):a[(s+1)*i+c]>=a[s*i+c+1]?(o.push({kind:`removed`,text:e[s]}),s++):(o.push({kind:`added`,text:t[c]}),c++);for(;s<n;)o.push({kind:`removed`,text:e[s]}),s++;for(;c<r;)o.push({kind:`added`,text:t[c]}),c++;return o}function de(e,t){let n=ce(e),r=ce(t),i=v(n,r),a=le(n,r,i),o=n.slice(i,n.length-a),s=r.slice(i,r.length-a);return o.length+s.length>d?{lines:[],isTooLarge:!0}:{lines:_([...h(n.slice(0,i),p),...ue(o,s),...h(n.slice(n.length-a),p)]),isTooLarge:!1}}var y=12,fe=8,b=``,pe=48,x=new Map;function me(e,t){return JSON.stringify([e,t])}function S(e){return e.id??b}function he(e,t){let n=x.get(e);n||(n=new Map,x.set(e,n));let r=me(t.agentId,t.revision);for(n.delete(r),n.set(r,t.plan);n.size>y;){let e=n.keys().next().value;if(typeof e!=`string`)break;n.delete(e)}}function ge(e){x.delete(e)}function _e(e,t,n){return!e||n===null?null:x.get(e)?.get(me(t,n))??null}function C(d){let f=n(`section`,`plan-face`);f.hidden=!0;let ce=n(`header`,`plan-head`),p=n(`select`,`plan-heading-picker`);p.setAttribute(`aria-label`,`Plan section`);let m=n(`div`,`plan-view-panel`),h=n(`div`,`plan-sheet-head`),g=n(`button`,`plan-control plan-sheet-close`,`×`);g.type=`button`,g.setAttribute(`aria-label`,`Close`),h.append(n(`span`,null,`View`),g);let _=n(`div`,`plan-view-group plan-author-group`),v=n(`div`,`plan-tabs`);v.setAttribute(`role`,`tablist`),v.setAttribute(`aria-label`,`Plan author`),_.append(n(`span`,`plan-sheet-label`,`Author`),v);let le=n(`div`,`plan-view-group plan-revision-group`),ue=n(`div`,`plan-revision-stepper`),y=n(`button`,`plan-control plan-revision-previous`,`‹`);y.type=`button`,y.setAttribute(`aria-label`,`Previous revision`);let b=n(`button`,`plan-control plan-revision-next`,`›`);b.type=`button`,b.setAttribute(`aria-label`,`Next revision`);let x=n(`span`,`plan-revision-label`),ge=n(`span`,`plan-revision-age`);ue.append(y,x,b,ge);let C=n(`div`,`plan-revision-list`);C.setAttribute(`role`,`radiogroup`),C.setAttribute(`aria-label`,`Revision`),le.append(n(`span`,`plan-sheet-label`,`Revision`),ue,C);let ve=n(`div`,`plan-view-group plan-mode-group`),w=n(`div`,`plan-modes`);w.setAttribute(`role`,`radiogroup`),w.setAttribute(`aria-label`,`Show`),ve.append(n(`span`,`plan-sheet-label`,`Show`),w);let ye=n(`div`,`plan-head-spacer`),T=n(`div`,`plan-draft-notice`),be=n(`span`,`plan-draft-dot`);be.setAttribute(`aria-hidden`,`true`);let xe=n(`button`,`plan-control plan-draft-chip`,`Peek draft`);xe.type=`button`,T.append(be,xe),m.append(h,_,le,ve,ye,T);let E=n(`button`,`plan-control plan-view-button`,`View`);E.type=`button`,E.setAttribute(`aria-haspopup`,`dialog`),E.setAttribute(`aria-expanded`,`false`);let Se=n(`button`,`plan-control plan-minimize-button`,`Minimize`);Se.type=`button`,Se.addEventListener(`click`,d.showTerminal),ce.append(p,m,E,Se);let Ce=n(`div`,`plan-sheet-backdrop`),we=n(`div`,`plan-body-layout`),Te=n(`nav`,`plan-heading-rail`);Te.setAttribute(`aria-label`,`Plan sections`);let D=n(`article`,`plan-reading-column`);we.append(Te,D);let O=n(`textarea`,`plan-editor`);O.setAttribute(`aria-label`,`Plan markdown`),O.spellcheck=!1;let Ee=n(`footer`,`plan-action-bar`),De=n(`span`,`plan-status`);De.setAttribute(`role`,`status`);let Oe=n(`div`,`plan-decision-slot`),ke=n(`label`,`plan-accept-edits`),Ae=n(`input`,`plan-accept-edits-checkbox`);Ae.type=`checkbox`,ke.append(Ae,n(`span`,null,`Accept edits`)),Oe.append(ke,De),Ee.append(Oe);let je=new Map;for(let[e,t]of[[`terminal`,`Answer in terminal`],[`revise`,`Send feedback`],[`approve`,`Approve`]]){let r=n(`button`,`plan-action`,t);r.type=`button`,r.dataset.decision=e,r.addEventListener(`click`,()=>{r.disabled||it(e)}),je.set(e,r),Ee.append(r)}f.append(ce,we,Ee,Ce);let k=null,A={reviews:[]},j=null,M=null,Me=!0,N=``,P=``,F=``,I=``,L=!1,R=null,z=!1,B=null,V=!1,H=!1,Ne=null,U=[],W=null,G=null,Pe=new Map,K=new Map,q=new Map,J=[],Fe=!1,Y=null,X=!1;function Z(e,t=!0){X=e,m.replaceChildren(...e?[h,ve,le,_,T,ye]:[h,_,le,ve,ye,T]),v.setAttribute(`role`,e?`radiogroup`:`tablist`);for(let t of v.querySelectorAll(`button`)){let n=t.getAttribute(`aria-selected`)===`true`||t.getAttribute(`aria-checked`)===`true`;t.setAttribute(`role`,e?`radio`:`tab`),t.removeAttribute(e?`aria-selected`:`aria-checked`),t.setAttribute(e?`aria-checked`:`aria-selected`,String(n))}m.dataset.open=String(e),Ce.dataset.open=String(e),E.setAttribute(`aria-expanded`,String(e)),we.inert=e,Ee.inert=e,p.inert=e,E.inert=e,Se.inert=e,e?(m.setAttribute(`role`,`dialog`),m.setAttribute(`aria-label`,`Plan view`),m.setAttribute(`aria-modal`,`true`),g.focus()):(m.removeAttribute(`role`),m.removeAttribute(`aria-modal`),t&&E.focus())}function Ie(e){e.addEventListener(`keydown`,t=>{let n=[...e.querySelectorAll(`button:not(:disabled)`)],i=n.indexOf(document.activeElement),a=r(t.key,i,n.length,`both`);if(a===null)return;t.preventDefault();let o=X;n[a].click(),!(o&&e!==w)&&(e===w||!X)&&e.querySelector(`[aria-checked="true"], [aria-selected="true"]`)?.focus()})}let Le=u.subscribe((e,t)=>{t.includes(`layout`)&&X&&Z(!1,!1)});d.signal?.addEventListener(`abort`,Le,{once:!0}),Ie(w),Ie(v),Ie(C),E.addEventListener(`click`,()=>Z(!X)),g.addEventListener(`click`,()=>Z(!1)),Ce.addEventListener(`click`,()=>Z(!1)),m.addEventListener(`keydown`,e=>{X&&(e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),Z(!1)):i(m,e))});function Re(e){D.querySelector(`#${CSS.escape(e)}`)?.scrollIntoView({behavior:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?`instant`:`smooth`,block:`start`})}p.addEventListener(`change`,()=>Re(p.value));function ze(){Fe=!1;let e=J.map(e=>D.querySelector(`#${CSS.escape(e.dataset.headingId??``)}`)).filter(e=>e!==null),t=D.getBoundingClientRect().top-D.scrollTop,n=se({headingOffsets:e.map(e=>e.getBoundingClientRect().top-t),scrollTop:D.scrollTop,isScrolledToEnd:D.scrollTop>0&&D.scrollTop+D.clientHeight>=D.scrollHeight-2,readingLineOffset:pe}),r=n===null?null:e[n]?.id??null;for(let e of J)e.dataset.headingId===r?e.setAttribute(`aria-current`,`location`):e.removeAttribute(`aria-current`);r!==null&&(p.value=r)}function Be(){Fe||f.hidden||J.length===0||(Fe=!0,requestAnimationFrame(ze))}D.addEventListener(`scroll`,Be,{passive:!0});function Ve(){Y=null,z=!1,V=!1,H=!1,Ne=null}function He(e){W=e,d.reportProblem(e),$()}function Ue(e){M=e,W=null,Ve(),Z(!1,X),$()}function We(e){let t=A.reviews.find(e=>e.agentId===j)?.revisions??[],n=t[t.findIndex(e=>e.revision===M)+e];n&&Ue(n.revision)}y.addEventListener(`click`,()=>We(-1)),b.addEventListener(`click`,()=>We(1));function Ge(e,t){return`${k??``}:${e??`main`}:${t??`latest`}`}function Ke(){return Ge(j,M)}function qe(e,t,n){return`${e??``}:${me(t,n??0)}`}function Q(){return qe(k,j,M)}function Je(){return K.get(Q())??null}function Ye(){return Je()?.size??0}function Xe(){if(Y===null)return!1;let e=K.get(Y.target.bucketKey)?.get(Y.target.sectionSlot)??``;return Y.field.value.trim()!==e}function Ze(e){let t=K.get(e);if(!t)return[];let n=[];for(let e of U){let r=t.get(S(e));r&&n.push({heading:e.heading,comment:r})}return n}function Qe(e,t){let n=t.trim(),r=K.get(e.bucketKey)??new Map;K.set(e.bucketKey,r),n.length===0&&r.delete(e.sectionSlot),n.length>0&&r.set(e.sectionSlot,n),r.size===0&&K.delete(e.bucketKey),$()}function $e(e){if(H||L)return;let r={bucketKey:Q(),sectionSlot:S(e)},i=n(`div`,`plan-comment-composer`),a=n(`label`,`plan-comment-label`,`Comment on ${e.heading??`Introduction`}`),o=n(`textarea`,`plan-comment-input`);o.maxLength=t,o.value=K.get(r.bucketKey)?.get(r.sectionSlot)??``,a.append(o);let s=n(`div`,`plan-comment-actions`),c=n(`button`,`plan-control plan-comment-cancel`,`Cancel`);c.type=`button`;let l=n(`button`,`plan-control plan-comment-save`,`Save comment`);l.type=`button`,s.append(c,l),i.append(a,s);let u={target:r,element:i,field:o};Y=u,o.addEventListener(`input`,Ot),c.addEventListener(`click`,()=>{Y===u&&(Y=null,$())}),l.addEventListener(`click`,()=>{Y===u&&(Y=null),Qe(r,o.value)}),$(),o.focus()}function et(e){let t={bucketKey:Q(),sectionSlot:S(e)};if(Y?.target.bucketKey===t.bucketKey&&Y.target.sectionSlot===t.sectionSlot)return Y.element;let r=Je()?.get(t.sectionSlot);if(!r)return null;let i=n(`div`,`plan-comment-card`),a=n(`div`,`plan-comment-head`),o=n(`button`,`plan-control plan-comment-edit`,`Edit`);o.type=`button`,o.addEventListener(`click`,()=>$e(e));let s=n(`button`,`plan-control plan-comment-remove`,`Remove`);return s.type=`button`,s.disabled=L,o.disabled=L,s.addEventListener(`click`,()=>Qe(t,``)),a.append(n(`span`,`plan-comment-label`,`Your comment`),o,s),i.append(a,n(`p`,`plan-comment-text`,r)),i}function tt(t,n,r={}){if(!k||n.revision===null||L)return!1;let i=re(r);if(i!==null)return He(i),!1;let a={agentId:n.agentId,revision:n.revision,decision:t,...r};return d.sendDecision(k,a)?(W=null,L=!0,R=s(t)?n:null,$(),!0):(He(e),!1)}function nt(e){if(!z)return{};let t=O.value;return t===_e(k,e.agentId,e.revision)?{}:{plan:t}}function rt(e){let t=qe(k,e.agentId,e.revision),n=Ze(t);n.length!==0&&tt(`revise`,e,{comments:n})&&e.revision!==null&&(G={bucketKey:t,agentId:e.agentId,revision:e.revision},$())}function it(e){let t={agentId:j,revision:M};e===`revise`?rt(t):tt(e===`approve`&&!ke.hidden&&Ae.checked?`approve-accept-edits`:e,t,nt(t))}function at(e){Y=null,z=e===`edit`,V=e===`changes`,z&&B!==Q()&&(O.value=_e(k,j,M)??``,B=Q()),W=null,$()}function ot(e){return`${e.kind}:${Ge(e.agentId,e.revision)}`}function st(e){for(q.set(ot(e),e);q.size>fe;){let e=q.keys().next().value;if(typeof e!=`string`)break;q.delete(e)}}function ct(e,t){return e.agentId===t.agentId?e.kind===`draft`?t.revision===0:t.revision===0?!1:e.revision===null||e.revision===t.revision:!1}function lt(e){for(let[t,n]of q)if(ct(n,e))return q.delete(t),n;return null}function ut(){for(let[e,t]of q)if(t.kind===`draft`)return q.delete(e),t;return null}function dt(){if(q.size!==1)return null;let e=q.entries().next().value;return e?(q.delete(e[0]),e[1]):null}function ft(){if(!k)return;let e=Ke();N!==e&&d.requestPlan(k,j,M??void 0)&&(N=e,st({kind:`selection`,agentId:j,revision:M}))}function pt(){f.hidden||ft()}function mt(){return a(A,j,M)}function ht(e){if(!k)return;let t=Ge(j,e);F!==t&&d.requestPlan(k,j,e)&&(F=t,st({kind:`diff-base`,agentId:j,revision:e}))}function gt(){if(!k)return;let e=`${k}:${j??`main`}`;I!==e&&d.requestDraft(k,j)&&(I=e,st({kind:`draft`,agentId:j,revision:null}))}function _t(e,t){return`${e??``}:${t??``}`}function vt(){return A.reviews.find(e=>e.agentId===j)?.revisions.find(e=>e.revision===M)?.receivedAt??0}function yt(){let e=Pe.get(_t(k,j));return e!==void 0&&e>vt()}function bt(){H?(Ve(),$()):(Y=null,z=!1,V=!1,gt(),$())}xe.addEventListener(`click`,bt);function xt(e){Te.replaceChildren(),p.replaceChildren(),J=[];for(let t of e){let e=t.id??`plan-introduction`,r=t.heading??`Introduction`,i=n(`button`,`plan-heading-link`,r);i.type=`button`,i.dataset.level=String(t.level),i.dataset.headingId=e,i.title=r,i.dataset.commented=String(Je()?.has(S(t))===!0),J.push(i),i.addEventListener(`click`,()=>Re(e)),Te.append(i);let a=n(`option`,null,r);a.value=e,p.append(a)}}function St(e){let t=mt();if(t===null){D.append(n(`p`,`plan-loading`,`This is the first revision, so there is nothing to diff`));return}let r=_e(k,j,t);if(r===null){D.append(n(`p`,`plan-loading`,`Loading the previous revision`)),ht(t);return}let i=de(r,e);i.isTooLarge?(D.append(n(`p`,`plan-loading`,`This diff is too large to show, so the newer revision stands alone`)),D.append(te(ae(e)))):D.append(oe(i))}function Ct(e){if(D.replaceChildren(),z){xt(U),D.append(O);return}if(e===null){if(U=[],xt(U),P===Ke()){D.append(n(`p`,`plan-loading`,`This plan revision could not be loaded`));return}D.append(n(`p`,`plan-loading`,`Loading plan`)),ft();return}let t=ae(e);if(U=ne(t),xt(U),V){St(e);return}if(H){D.append(te(t));return}let r=Je();D.append(ie(U,{hasComment:e=>r?.has(S(e))===!0,isComposing:e=>Y?.target.bucketKey===Q()&&Y.target.sectionSlot===S(e),onComment:$e,attachmentFor:et}))}function wt(e){_.hidden=e.tabs.length<2,v.replaceChildren();for(let t of e.tabs){let e=n(`button`,`plan-tab`,t.label);e.type=`button`,e.setAttribute(`role`,X?`radio`:`tab`),e.setAttribute(X?`aria-checked`:`aria-selected`,String(t.selected)),e.tabIndex=t.selected?0:-1,e.addEventListener(`click`,()=>{j=t.agentId,M=null,W=null,N=``,P=``,F=``,I=``,Ve(),Z(!1,X),$()}),v.append(e)}}function Tt(){return H?Ne:_e(k,j,M)}function Et(e){return o({state:A,selectedAgentId:j,selectedRevision:M,body:e,isConnected:Me,isDecisionInFlight:L,isDraft:H,pendingCommentCount:Ye(),hasUnsavedComment:Xe(),problem:W})}function Dt(e){De.textContent=e.status,De.hidden=e.status.length===0;let t=e.actions.some(e=>e.kind===`approve`&&e.enabled);ke.hidden=!t,Ae.disabled=!t;for(let t of e.actions){let e=je.get(t.kind);e&&(e.disabled=!t.enabled)}}function Ot(){Dt(Et(Tt()))}function $(){let e=X&&m.contains(document.activeElement),t=o({state:A,selectedAgentId:j,selectedRevision:M,body:null,isConnected:Me});(j!==t.selectedAgentId||M!==t.selectedRevision)&&Ve(),j=t.selectedAgentId,M=t.selectedRevision,B!==Q()&&(B=null);let r=Tt(),i=Et(r);wt(i);let a=i.revisions.findIndex(e=>e.selected),s=i.revisions[a],c=Date.now();ue.hidden=i.revisions.length<2,x.textContent=`Rev ${a+1} of ${i.revisions.length}`,ge.textContent=s?ee(s.receivedAt,c):``,y.disabled=a<=0,b.disabled=a<0||a>=i.revisions.length-1,C.replaceChildren();for(let e of[...i.revisions].reverse()){let t=n(`button`,`plan-revision-option`);t.type=`button`,t.dataset.revision=String(e.revision),t.setAttribute(`role`,`radio`),t.setAttribute(`aria-checked`,String(e.selected)),t.tabIndex=e.selected?0:-1,t.append(n(`span`,`plan-revision-name`,e.label),n(`span`,`plan-revision-age`,ee(e.receivedAt,c))),e.isOpen&&t.append(n(`span`,`plan-revision-open`,`OPEN`)),t.addEventListener(`click`,()=>Ue(e.revision)),C.append(t)}w.replaceChildren();let l=z?`edit`:V?`changes`:`read`,u=i.modes.find(e=>e.kind===l&&e.enabled)??i.modes[0];for(let e of i.modes){let t=n(`button`,`plan-control plan-mode`,e.label);t.type=`button`,t.dataset.mode=e.kind,t.disabled=!e.enabled,t.setAttribute(`role`,`radio`),t.setAttribute(`aria-checked`,String(e.kind===l)),t.tabIndex=e.kind===u.kind?0:-1,t.addEventListener(`click`,()=>{t.disabled||(at(e.kind),w.querySelector(`[aria-checked="true"]`)?.focus())}),w.append(t)}T.hidden=!yt()&&!H,xe.hidden=T.hidden,xe.setAttribute(`aria-pressed`,String(H)),Dt(i),Ct(r),p.disabled=J.length===0,Be(),e&&!m.contains(document.activeElement)&&g.focus()}function kt(e){R!==null&&c(e,R.agentId)&&(R=null,B=null,d.showTerminal())}function At(e){Y=null,e!==k&&(R=null,L=!1,W=null,q.clear()),Z(!1,!1),k=e,f.hidden=!1,N=``,P=``,$(),pt()}function jt(){Y=null,Z(!1,!1),f.hidden=!0}function Mt(e,t){return t.kind!==`selection`||e.agentId!==j?!1:t.revision===null?M===null||M===e.revision:t.revision===M}function Nt(e){e.kind===`draft`?(I=``,He(`the draft could not be read, so nothing was shown`)):e.kind===`diff-base`?F=``:P=Ge(e.agentId,e.revision)}function Pt(e){G!==null&&l(e,G.agentId)!==G.revision&&(K.delete(G.bucketKey),G=null)}function Ft(e){L=!1,It({reviews:e.reviews});let t=e.body;if(!t){let e=dt()??ut();e!==null&&Nt(e);return}let n=lt(t);if(t.revision===0){if(I=``,n===null||t.agentId!==j)return;Ne=t.plan,H=!0}else he(e.id,t),n!==null&&Mt(t,n)&&(j=t.agentId,M=t.revision,N=``,P=``)}function It(e){let t=l(e,j);t!==null&&t!==l(A,j)&&(M=t,Ve()),Pt(e),A=e,L=!1,kt(e)}function Lt(e){let t=!1;e.state&&It(e.state),e.draft&&Pe.set(_t(e.draft.id,e.draft.agentId),e.draft.changedAt),e.decisionRefused&&(R=null,L=!1,G=null,e.refusalText&&(W=e.refusalText)),typeof e.isConnected==`boolean`&&(t=e.isConnected&&!Me,Me=e.isConnected,t&&(N=``,P=``,F=``,I=``,L=!1)),e.requestFailed&&(P=N),e.response&&Ft(e.response),f.hidden||$(),(t||e.decisionRefused)&&pt()}return{el:f,show:At,hide:jt,update:Lt}}export{C as createPlanFace,ge as dropPlanBodyCache};
@@ -1 +1 @@
1
- import{C as e,Kt as t,Tn as n,a as r,c as i,i as a,m as o,o as s,u as c}from"./dom-helpers-B98sy9ep.js";import{l,r as u,u as d}from"./control-ws-C8SS9PPx.js";import{m as f,n as p,p as m}from"./poll-ago-DdlzkUaM.js";import{G as h,S as g,W as ee,l as _}from"./ui-prefs-Dvsgw_ZF.js";import{T as v,a as y,s as b,t as x,w as te}from"./action-status-D9Sf2cZp.js";import{t as ne}from"./roving-keys-core-BDobx2It.js";import{a as re}from"./modal-5t7_5VCF.js";import{Bt as S,Et as ie,Jn as ae,Lt as C,Rt as w,Tt as T,Vt as oe,Xn as se,Yn as E,qn as ce,wt as le,zt as D}from"./index-BReL4NSr.js";function ue(e,t){return!!e?.error&&!e.isRefreshing&&typeof e.nextAttemptAt==`number`&&e.nextAttemptAt>t}function O(e,t){if(!e?.error)return null;let n=e.error.trim().replace(/[.!]+$/,``),r=e.incident?.trim().replace(/[.!]+$/,``),i=`Could not reach GitHub: ${n}.${r?` GitHub reports: ${r}.`:``}`;if(e.isRefreshing)return`${i} Refreshing.`;if(typeof e.nextAttemptAt!=`number`)return i;let a=Math.max(0,Math.ceil((e.nextAttemptAt-t)/1e3));return a===0?`${i} Retrying now.`:e.retry?`${i} Retrying in ${a}s (${e.retry.attempt} of ${e.retry.limit}).`:`${i} Next try in ${a>=60?`${Math.ceil(a/60)} min`:`${a}s`}.`}function de(e,t,n){return e?.refreshNotice&&e.isRefreshing?e.refreshNotice:t||e?.isRefreshing?`Refreshing`:n||e?.refreshNotice||``}function fe(e,t){let n=e?.lastRefreshedAt??e?.lastSyncAt??null;if(n===null)return null;let r=Math.max(0,t-n);return!e?.error&&r<=3e5?null:r<6e4?`Last updated less than a minute ago.`:r<36e5?`Last updated ${Math.floor(r/6e4)} min ago.`:`Last updated ${Math.floor(r/36e5)} h ago.`}function k(e,t,n,r,i,a){return{isVisible:a&&(e.state===`OPEN`||t),isPressed:t,isDisabled:n,statusText:r||(n?`Saving`:i),tone:r?`error`:n?`busy`:null}}function pe(e,t,n=``){if(!t||!e.keepMergeable)return null;let r=A(e,!1,``,!0,n).statusText;if(e.isKeepMergeableFixInFlight)return{text:`Repairing`,tone:`warn`,title:r};let i=e.keepMergeableAttempt;return!i||i.outcome===`pushed`||i.outcome===`stopped`?null:{text:`Repair failed`,tone:`danger`,title:r}}function A(e,t,n=``,r=!0,i=``){let a=e.keepMergeableAttempt,o=e.keepMergeable?`On`:`Off`;if(e.keepMergeable&&a&&a.outcome!==`pushed`&&a.outcome!==`stopped`){let e=i?` (${i})`:``;o=`Keep mergeable failed: ${a.reason??`The attempt produced no repair`}${e}`}return e.isKeepMergeableFixInFlight&&(o=`Keep mergeable is running`),k(e,!!e.keepMergeable,t,n,o,r)}function me(e){return e?.isKeepMergeableEnabled!==!1}function he(e){return e?.isMergeQueueEnabled!==!1}function ge(e,t,n){return e?t?`Repair pushed, waiting for you`:n?`On, the last merge failed and retries an hour later once it is ready`:`On, merges as soon as it is ready`:`Not queued`}function _e(e,t,n=``,r=!0){let i=e.mergeQueuePosition!==null&&e.mergeQueuePosition!==void 0;return k(e,i,t,n,ge(i,!!e.isMergeQueueHeldForRepairPush,!!e.mergeQueueFailure),r)}function ve(e){return e.checks.failing.length>0?{label:`Checks`,tone:`danger`,icon:`failed`,text:`${e.checks.failing.length} failing`,items:e.checks.failing}:e.checks.state===`FAILURE`||e.checks.state===`ERROR`?{label:`Checks`,tone:`danger`,icon:`failed`,text:`Failing`}:e.checks.pendingCount>0?{label:`Checks`,tone:`wait`,icon:`running`,text:`${e.checks.pendingCount} running`}:e.checks.state===`PENDING`||e.checks.state===`EXPECTED`?{label:`Checks`,tone:`wait`,icon:`running`,text:`Running`}:e.checks.state===`SUCCESS`?{label:`Checks`,tone:`ok`,icon:`passed`,text:`Passing`}:{label:`Checks`,tone:`muted`,icon:`none`,text:`No checks`}}function j(e){return`${e} ${e===1?`approval`:`approvals`}`}function M(e){return e.reviewRequests.map(e=>e.name).join(`, `)}function ye(e){let t=e.reviewRequests.length>0?`Requested: ${M(e)}`:`Approval required`;return e.approvals>0?`${t}, ${j(e.approvals)}`:t}function be(e){let t=e.approvals>0?j(e.approvals):`Approved`;return e.mergeStateStatus===`BLOCKED`?{label:`Review`,tone:`wait`,icon:`reviewer`,text:`${t}, merge blocked`}:{label:`Review`,tone:`ok`,icon:`passed`,text:t}}function xe(e){return e.reviewDecision===`CHANGES_REQUESTED`?{label:`Review`,tone:`warn`,icon:`changes-requested`,text:`Changes requested`}:e.reviewDecision===`APPROVED`?be(e):e.reviewDecision===`REVIEW_REQUIRED`||e.mergeStateStatus===`BLOCKED`?{label:`Review`,tone:`wait`,icon:`reviewer`,text:ye(e)}:e.reviewRequests.length>0?{label:`Review`,tone:`wait`,icon:`reviewer`,text:`Requested: ${M(e)}`}:{label:`Review`,tone:`muted`,icon:`none`,text:`No review requested`}}function N(e,t){return t?e.lastAuthor!==t:null}function Se(e){let t=e.line===null?e.path:`${e.path}:${e.line}`;return e.isOutdated?`${t} (outdated)`:t}function Ce(e){let t=e.commentCount-1;return t===0?`No replies`:`${t} ${t===1?`reply`:`replies`}, last by ${e.lastAuthor??`a deleted account`}`}function we(e,t){let n=N(e,t);return n===null?null:n?{tone:`warn`,icon:`your-turn`,text:`Waiting on you`}:{tone:`wait`,icon:`reviewer`,text:`Waiting on reviewer`}}function Te(e,t){return[...e.threads].sort((e,n)=>{let r=Number(N(n,t)===!0)-Number(N(e,t)===!0);return r===0?(Date.parse(n.lastActivityAt)||0)-(Date.parse(e.lastActivityAt)||0):r}).map(e=>({location:Se(e),url:e.url,author:e.author??`a deleted account`,excerpt:e.excerpt,replySummary:Ce(e),lastActivityAt:e.lastActivityAt,waiting:we(e,t),isWaitingOnYou:N(e,t)===!0}))}function Ee(e,t){if(e.unresolvedThreads===0)return{label:`Threads`,tone:`ok`,icon:`passed`,text:`None open`};let n=`${e.unresolvedThreads} unresolved`;if(!t||e.threads.length===0)return{label:`Threads`,tone:`warn`,icon:`thread`,text:n};let r=e.threads.filter(e=>N(e,t)).length;return r===0?{label:`Threads`,tone:`wait`,icon:`thread`,text:`${n}, all waiting on reviewers`}:{label:`Threads`,tone:`warn`,icon:`your-turn`,text:`${n}, ${r} waiting on you`}}function De(e){return e.mergeable===`CONFLICTING`||e.mergeStateStatus===`DIRTY`?{label:`Conflicts`,tone:`danger`,icon:`conflict`,text:`Conflicts with ${e.baseRefName}`}:e.mergeable===`MERGEABLE`?{label:`Conflicts`,tone:`ok`,icon:`passed`,text:`None`}:{label:`Conflicts`,tone:`muted`,icon:`unknown`,text:`Not computed yet`}}function Oe(e){let t=e.behindBy!==null&&e.behindBy>0;return e.mergeStateStatus===`BEHIND`?{label:`Base`,tone:`warn`,icon:`behind`,text:t?`${e.behindBy} behind ${e.baseRefName}`:`Behind ${e.baseRefName}`}:e.behindBy===null?{label:`Base`,tone:`muted`,icon:`unknown`,text:`Unknown`}:t?{label:`Base`,tone:`muted`,icon:`behind`,text:`${e.behindBy} behind ${e.baseRefName}, update not required`}:{label:`Base`,tone:`ok`,icon:`passed`,text:`Up to date with ${e.baseRefName}`}}var ke={APPROVED:{text:`Approved`,tone:`ok`,icon:`passed`},CHANGES_REQUESTED:{text:`Requested changes`,tone:`warn`,icon:`changes-requested`},COMMENTED:{text:`Commented`,tone:`muted`,icon:`thread`},DISMISSED:{text:`Dismissed`,tone:`muted`,icon:`discarded`},PENDING:{text:`Pending`,tone:`wait`,icon:`running`}};function Ae(e){return[...e.reviews].sort((e,t)=>(Date.parse(t.submittedAt??``)||0)-(Date.parse(e.submittedAt??``)||0)).map(e=>{let t=ke[e.state]??{text:e.state.toLowerCase().replaceAll(`_`,` `),tone:`muted`,icon:`unknown`};return{reviewer:e.reviewer??`a deleted account`,text:t.text,tone:t.tone,icon:t.icon,submittedAt:e.submittedAt}})}var P={danger:0,warn:1,wait:2,muted:3,ok:4};function je(e,t=null){if(e.state===`MERGED`)return[];let n=[ve(e),xe(e),Ee(e,t),De(e),Oe(e)],r=e.autoRebase?[Me(e,e.autoRebase)]:[],i=e.mergeQueueFailure?[{label:`Merge when ready`,tone:`danger`,icon:`failed`,text:`Merge failed: ${e.mergeQueueFailure.message}`}]:[];return[...n,...r,...i].toSorted((e,t)=>P[e.tone]-P[t.tone])}function Me(e,t){return t.outcome===`rebased`?{label:`Auto-rebase`,tone:`ok`,icon:`passed`,text:t.message}:{label:`Auto-rebase`,tone:e.mergeStateStatus===`BEHIND`?`danger`:`warn`,icon:`failed`,text:t.message}}function F(e){return e?e.configured?e.error&&e.prs.length===0?`Pull requests will show here once GitHub answers.`:`No open or recently merged pull requests found.`:`Enable Team review and set its GitHub organization in settings to see your pull requests.`:`Waiting for your pull requests.`}function Ne(e,t=0){if(!e)return[];let n=O(e,t),r=n?[{text:n,tone:`error`}]:[];return e.truncatedNote?[...r,{text:e.truncatedNote,tone:`info`}]:r}var Pe={isVisible:!1,isDisabled:!0,statusText:``,tone:null},Fe={merged:{statusText:`Merged on GitHub. Refreshing the list.`,tone:`ok`},queued:{statusText:`Added to the merge queue. Refreshing the list.`,tone:`ok`},"auto-merge":{statusText:`Auto-merge enabled. GitHub merges it once its requirements pass.`,tone:`ok`},unconfirmed:{statusText:`GitHub accepted the request but did not confirm a merge. Check GitHub.`,tone:null}};function Ie(e,t){if(e.state!==`OPEN`)return Pe;let n=t?.head===e.headRefOid?t:void 0;if(n?.phase===`pending`)return{isVisible:!0,isDisabled:!0,statusText:`Merging on GitHub`,tone:`busy`};if(n&&n.phase!==`failed`)return{isVisible:!0,isDisabled:!0,...Fe[n.phase]};let r=oe(e);return r?{isVisible:!0,isDisabled:!0,statusText:r,tone:null}:n?.phase===`failed`?{isVisible:!0,isDisabled:!1,statusText:n.text,tone:`error`}:{isVisible:!0,isDisabled:!1,statusText:`Merges into ${e.baseRefName} with ${S(e.mergeMethod)}`,tone:null}}function Le(e){return`Merge ${e.key} "${e.title}" into ${e.baseRefName} with ${S(e.mergeMethod)}, your default for this repository. Glimmervoid does not delete the branch.`}function Re(e){let t=n.safeParse(e);if(!t.success)return null;let r=e&&typeof e==`object`&&`requestId`in e?e.requestId:null;return typeof r==`string`?{...t.data,requestId:r}:null}var I=null,L=null,R=T().status,z=null,B=new Map,V=new Map,H=null,U={label:`Keep mergeable`,pendingKeys:new Set,errorsByKey:new Map,controlState:(e,t,n,r)=>A(e,t,n,r,p(e.keepMergeableAttempt?.at)),isFeatureEnabled:me,save:async(e,t)=>{let n=await d(`my-pr-keep-mergeable`,{repo:e.repo,number:e.number,keepMergeable:t},{timeoutMs:x});if(n.type!==`my-pr-keep-mergeable-result`||n.key!==e.key)throw Error(`Unexpected keep mergeable reply.`);return n.ok?null:n.error??`Could not save Keep mergeable.`}},ze={label:`Merge when ready`,pendingKeys:new Set,errorsByKey:new Map,controlState:_e,isFeatureEnabled:he,save:async(e,t)=>{let n=await d(`my-pr-merge-when-ready`,{repo:e.repo,number:e.number,mergeWhenReady:t},{timeoutMs:x});if(n.type!==`my-pr-merge-when-ready-result`||n.key!==e.key)throw Error(`Unexpected merge when ready reply.`);return n.ok?null:n.error??`Could not save Merge when ready.`}},W=6e4,G=6e4,Be=`The server did not answer within ${W/1e3} s. Check GitHub before trying again.`,Ve=`${e} Check GitHub before trying again.`;function He(e,t){let n=typeof e==`string`?[e]:e,r=s(`div`,`reviews-refresh-control`),i=s(`button`,`pr-action pr-action-ghost reviews-refresh-button`,`Refresh`);i.type=`button`;let a=s(`span`,`reviews-refresh-status`);a.setAttribute(`role`,`status`);let o=s(`p`,`my-pr-error reviews-retry-notice`);r.append(i,a);let l=null,u=!1,f=``,p=null;function m(){let e=Date.now(),n=O(l,e),r=fe(l,e);o.textContent=n?[n,r].filter(Boolean).join(` `):``,o.hidden!==!l?.error&&(o.hidden=!l?.error),a.textContent=de(l,u,f)||(l?.error?``:r)||``,a.hidden!==!a.textContent&&(a.hidden=!a.textContent);let i=o.isConnected&&!c(t)&&!document.hidden&&o.getClientRects().length>0&&ue(l,e);!i&&p!==null&&(window.clearInterval(p),p=null),i&&p===null&&(p=window.setInterval(m,1e3))}function h(e){e!==l&&(f=``),l=e,i.disabled=u||!!e?.isRefreshing||!e?.configured,m()}i.addEventListener(`click`,async()=>{if(!u){u=!0,f=``,h(l);try{let e=await Promise.all(n.map(e=>d(`github-polling-refresh`,{lane:e},{timeoutMs:G}))),t=e.find(e=>e.type===`github-polling-refresh-result`&&!e.ok);t?.type===`github-polling-refresh-result`&&(f=t.error??`Could not refresh from GitHub.`),!t&&e.some(e=>e.type===`github-polling-refresh-result`)&&(f=`Refreshed.`)}catch(e){f=b(e,G)}finally{u=!1,h(l)}}});let g=new MutationObserver(m);g.observe(t,{attributes:!0,subtree:!0,attributeFilter:[`hidden`,`data-queue-collapsed`]});for(let e=t.parentElement;e;e=e.parentElement)g.observe(e,{attributes:!0,attributeFilter:[`hidden`,`data-queue-collapsed`]});return document.addEventListener(`visibilitychange`,m),{control:r,notice:o,update:h}}function K(e,t,n,r){B.set(e,{head:t,phase:n,text:r}),Z()}function Ue(t){if(V.has(t.key))return;let n=u(`my-pr-merge`);if(!l({type:`my-pr-merge`,requestId:n,repo:t.repo,number:t.number,headRefOid:t.headRefOid})){K(t.key,t.headRefOid,`failed`,e);return}let r=window.setTimeout(()=>{V.delete(t.key),K(t.key,t.headRefOid,`failed`,Be)},W);V.set(t.key,{requestId:n,head:t.headRefOid,timer:r}),B.set(t.key,{head:t.headRefOid,phase:`pending`,text:``}),Z()}function We(e){let t=Ie(e,B.get(e.key));if(!t.isVisible)return null;let n=s(`footer`,`pr-footer pr-decision-bar`),r=s(`button`,`pr-action`,`Merge`);r.type=`button`,r.disabled=t.isDisabled;let i=s(`span`,`pr-action-status`,t.statusText);return i.setAttribute(`role`,`status`),i.setAttribute(`aria-live`,`polite`),y(i,t.tone,t.statusText),r.addEventListener(`click`,()=>{re({title:`Merge pull request`,message:Le(e),confirmLabel:`Merge`,onConfirm:()=>Ue(e)})}),n.append(r,i),n}function Ge(e,t){let n=t.controlState(e,t.pendingKeys.has(e.key),t.errorsByKey.get(e.key),t.isFeatureEnabled(R));if(!n.isVisible)return null;let r=s(`div`,`my-pr-merge`),i=s(`button`,`pr-action`,t.label);i.type=`button`,i.disabled=n.isDisabled,i.setAttribute(`aria-pressed`,String(n.isPressed));let a=s(`span`,`pr-action-status`,n.statusText);return y(a,n.tone,n.statusText),a.setAttribute(`role`,`status`),a.setAttribute(`aria-live`,`polite`),i.addEventListener(`click`,async()=>{if(!t.pendingKeys.has(e.key)){t.pendingKeys.add(e.key),t.errorsByKey.delete(e.key),Z();try{let r=await t.save(e,!n.isPressed);r&&t.errorsByKey.set(e.key,r)}catch(n){t.errorsByKey.set(e.key,b(n,x))}finally{t.pendingKeys.delete(e.key),Z()}}}),r.append(i,a),r}function q(e,{hasGlyph:t}){let n=s(`span`,`my-pr-stage`);return n.dataset.tone=D(e.stage),t&&n.append(E(C(e.stage),D(e.stage))),n.append(w(e.stage)),n}function Ke(e,t){let n=s(`span`,`my-pr-requested`);n.append(s(`span`,null,`Requested`));let r=s(`span`,`avatar-stack`);for(let t of e.reviewRequests){let e=a({login:t.name,url:t.isTeam?t.avatarUrl:void 0,cssPx:16});e.title=t.name,e.setAttribute(`role`,`img`),e.setAttribute(`aria-label`,t.name),r.append(e)}return n.append(r,s(`span`,`my-pr-requested-names`,t.slice(11))),n}function qe(e){let t=s(`div`,`pr-detail-heading`),n=s(`div`,`pr-detail-title`);n.append(i(`pr-link`,e.key,e.url),s(`h2`,null,e.title));let r=s(`p`,`pr-detail-meta`),a=e.state===`MERGED`?`Merged ${p(Date.parse(e.mergedAt??``))}`:`Updated ${p(Date.parse(e.updatedAt))}`;return r.append(s(`span`,`pr-queue-owner`,`Yours`),q(e,{hasGlyph:!0}),s(`span`,null,`Opened ${p(Date.parse(e.createdAt))}`),s(`span`,null,a)),t.append(n,r),t}function Je(e){let t=je(e,R?.viewer??null);if(t.length===0)return null;let n=s(`section`,`pr-readiness-section`);n.append(s(`h3`,`pr-section-heading`,`Merge readiness`));let r=s(`ul`,`pr-readiness`);for(let n of t){let t=s(`li`,`pr-readiness-row`);t.dataset.tone=n.tone;let i=s(`span`,`pr-readiness-value`);if(n.label===`Review`&&n.text.startsWith(`Requested: `)&&i.append(Ke(e,n.text)),i.childNodes.length===0&&(i.textContent=n.text),n.items){let e=s(`ul`,`my-pr-facts`);for(let t of n.items)e.append(s(`li`,null,t));i.append(e)}t.append(E(n.icon,n.tone),s(`span`,`pr-readiness-label`,n.label),i),r.append(t)}return n.append(r),n}function J(e,t){if(t.length===0)return null;let n=s(`section`,`my-pr-threads-section`);n.append(s(`h3`,`pr-section-heading`,e));let r=s(`ul`,`my-pr-threads`);for(let e of t){let t=s(`li`,`my-pr-thread`),n=s(`div`,`my-pr-thread-heading`);if(n.append(i(`my-pr-thread-location`,e.location,e.url)),e.waiting){let t=s(`span`,`my-pr-stage`);t.dataset.tone=e.waiting.tone,t.append(E(e.waiting.icon,e.waiting.tone),e.waiting.text),n.append(t)}let a=s(`p`,`my-pr-thread-excerpt`);a.append(s(`strong`,null,e.author),` ${e.excerpt}`);let o=Date.parse(e.lastActivityAt),c=s(`p`,`my-pr-thread-meta`,Number.isFinite(o)?`${e.replySummary}, ${p(o)}`:e.replySummary);t.append(n,a,c),r.append(t)}return n.append(r),n}function Ye(e){let t=Ae(e);if(t.length===0)return null;let n=s(`section`,`pr-readiness-section`);n.append(s(`h3`,`pr-section-heading`,`Reviews`));let i=s(`ul`,`pr-readiness`);for(let e of t){let t=s(`li`,`pr-readiness-row`),n=Date.parse(e.submittedAt??``),a=Number.isFinite(n)?`${e.text} ${p(n)}`:e.text,o=s(`span`,`my-pr-reviewer`);o.append(r([{login:e.reviewer,tone:e.tone,title:e.reviewer,url:e.reviewer===`a deleted account`?null:void 0}],16),s(`span`,null,e.reviewer)),t.append(E(e.icon,e.tone),o,s(`span`,`pr-readiness-value`,a)),i.append(t)}return n.append(i),n}function Xe(e){let t=[U,ze].map(t=>Ge(e,t)).filter(e=>e!==null);if(t.length===0)return null;let n=s(`section`,`my-pr-automation`);return n.append(s(`h3`,`pr-section-heading`,`Automation`),...t),n}function Y(e){if(!I)return;if(!e){I.replaceChildren(s(`p`,`pr-empty`,F(R)));return}let t=Te(e,R?.viewer??null),n=s(`article`,`pr-detail`),r=[Je(e),J(`Threads waiting on you`,t.filter(e=>e.isWaitingOnYou)),J(`Other open threads`,t.filter(e=>!e.isWaitingOnYou)),Ye(e),Xe(e),We(e)];n.append(qe(e),...r.filter(e=>e!==null)),I.replaceChildren(n)}function X(e){let n=e.dataset.sessionId??``,r=f.get(n),i=o(e,`.session-row-name`);r&&(i.textContent=m(r)||n);let a={glyph:o(e,`.session-row-glyph`),label:o(e,`.session-row-label`)},s=ae(e,a,r?.currentState||t.DORMANT,r?.awaitingBackgroundTasks,r?.pendingPromptKind),c=`Focus session ${i.textContent}, ${s}`;e.title=c,e.setAttribute(`aria-label`,c)}function Ze(e){let{row:t,refs:n}=ce(`button`,`my-pr-session-pill`);return t.type=`button`,t.dataset.sessionId=e.id,n.name.textContent=e.title,X(t),t.addEventListener(`click`,()=>H?.(e.id)),t}function Qe(e){if(!e||e.length===0)return null;let t=s(`div`,`my-pr-session-focus`);return t.append(...e.map(Ze)),t}function $e(){for(let e of document.querySelectorAll(`.my-pr-session-pill`))X(e)}function et(e,t,n){let r=s(`button`,`pr-queue-row`);r.type=`button`,r.dataset.prKey=e.key,r.title=`${e.key}: ${w(e.stage)}`;let i=s(`span`,`pr-queue-glyph`);i.append(E(C(e.stage),D(e.stage)));let a=s(`span`,`pr-queue-top`);a.append(s(`strong`,`pr-queue-ref`,e.key),s(`span`,`pr-queue-title`,e.title));let o=s(`span`,`pr-queue-bottom`);o.append(s(`span`,`pr-queue-owner`,`Yours`),q(e,{hasGlyph:!1})),t&&o.append(s(`span`,`my-pr-stage`,`Stacked on ${t}`));let c=e.state===`MERGED`?e.mergedAt:null,l=c?`merged ${p(Date.parse(c))}`:`opened ${p(Date.parse(e.createdAt))}`;o.append(s(`span`,`pr-queue-elapsed`,l));let u=pe(e,U.isFeatureEnabled(R),p(e.keepMergeableAttempt?.at));if(u){let e=s(`span`,`my-pr-stage`,u.text);e.dataset.tone=u.tone,e.title=u.title,o.append(e)}r.append(i,a,o);let d=s(`div`,`my-pr-row-group`);d.append(r);let f=Qe(n);return f&&d.append(f),{group:d,row:r}}function tt(e){z=e,Y(T().prs.find(e=>e.key===z))}function Z(){let{prs:e,status:t}=T();R=t,z&&Y(e.find(e=>e.key===z)),L?.onChange()}function nt(e,t){return H=t?.openTerminal??null,L=e,I||(I=s(`div`,`pr-detail-mine`),ie(rt),Z(),I)}function rt(e){switch(e.kind){case`prs`:Z();return;case`session-state`:$e();return;case`merge-result`:at(e.message);return;case`connection`:it(e.isConnected)}}function it(e){if(!e){for(let[e,t]of V)window.clearTimeout(t.timer),B.set(e,{head:t.head,phase:`failed`,text:Ve});V.size!==0&&(V.clear(),Z())}}function at(e){let t=Re(e);if(!t)return;let n=V.get(t.key);if(!n||n.requestId!==t.requestId)return;if(window.clearTimeout(n.timer),V.delete(t.key),!t.ok){K(t.key,n.head,`failed`,t.error||`The merge failed.`);return}if(K(t.key,n.head,t.kind??`unconfirmed`,``),t.kind!==`merged`)return;let r=T().prs.find(e=>e.key===t.key);r&&le([r])}var ot={minPx:220,maxPx:720},st=16,Q=new Set,ct=0;function $(e){let t=g();e.toggleAttribute(`data-queue-collapsed`,t),e.querySelector(`.pr-queue-toggle`)?.setAttribute(`aria-expanded`,String(!t));let n=_();n===null?e.style.removeProperty(`--pr-queue-width`):e.style.setProperty(`--pr-queue-width`,`${n}px`)}function lt(){for(let e of Q)e.isConnected?$(e):Q.delete(e)}function ut(e,t){let n=s(`div`,`pr-queue-head`);return e&&n.append(e),t&&n.append(t),n}function dt(e){let t=s(`div`,`pr-queue-foot`);return e&&t.append(e),t}function ft({queueLabel:e,scopeTabs:t,resizerLabel:n}){let r=s(`div`,`pr-columns`),i=s(`div`,`pr-queue-pane`),a=s(`nav`,`pr-queue`);a.id=`pr-queue-${++ct}`,a.setAttribute(`aria-label`,e);let o=s(`button`,`pr-queue-toggle`);o.type=`button`,o.setAttribute(`aria-label`,`Review queue`),o.setAttribute(`aria-controls`,a.id),o.title=`Collapse or expand the review queue`;let c=te(16,16);c.append(v(`rect`,{x:`1.5`,y:`2`,width:`13`,height:`12`,rx:`2`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`})),c.append(v(`path`,{d:`M5.5 2V14`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`}));let l=v(`path`,{d:`M11 6L9 8L11 10`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`});l.classList.add(`pr-queue-chevron`),c.append(l),o.append(c),o.addEventListener(`click`,()=>{ee(!g()),lt()});let u=dt(null);i.append(ut(t,o),a,u);let d=s(`div`,`pr-queue-resizer`);d.setAttribute(`role`,`separator`),d.setAttribute(`aria-orientation`,`vertical`),d.setAttribute(`aria-label`,n),d.tabIndex=0;let f=s(`main`,`pr-detail-host`);return r.append(i,d,f),$(r),Q.add(r),se({resizer:d,column:i,widthHost:r,widthProperty:`--pr-queue-width`,bounds:ot,keyStepPx:st,getStoredWidth:_,setStoredWidth:h}),{columns:r,queue:a,foot:u,detail:f}}function pt({label:e,scopes:t,selected:n,onSelect:r,extraClassName:i,countClassPrefix:a}){let o=document.createElement(`div`);o.className=i?`pr-scope-tabs ${i}`:`pr-scope-tabs`,o.setAttribute(`role`,`tablist`),o.setAttribute(`aria-label`,e);let s=new Map,c=t.map(e=>{let t=document.createElement(`button`);return t.className=`pr-scope-tab`,t.type=`button`,t.dataset.scope=e.id,t.setAttribute(`role`,`tab`),t.textContent=e.label,t}),l=e=>{for(let[n,r]of c.entries()){let i=t[n].id===e;r.setAttribute(`aria-selected`,String(i)),r.tabIndex=i?0:-1}},u=(e,n)=>{l(t[e].id),r(t[e].id),n&&c[e].focus()};for(let[e,t]of c.entries())t.addEventListener(`click`,()=>u(e,!1)),t.addEventListener(`keydown`,t=>{let n=ne(t.key,e,c.length,`horizontal`);n!==null&&(t.preventDefault(),u(n,!0))});return o.append(...c.map((e,n)=>{if(!a)return e;let r=document.createElement(`span`);r.className=a,r.setAttribute(`role`,`presentation`);let i=document.createElement(`span`);return i.className=`${a}-count`,i.dataset.scopeCount=t[n].id,s.set(t[n].id,i),r.append(e,i),r})),l(n),{element:o,select:l,countElementByScope:s}}export{He as a,tt as c,ut as i,F as l,ft as n,et as o,dt as r,nt as s,pt as t,Ne as u};
1
+ import{C as e,Kt as t,Tn as n,a as r,c as i,i as a,m as o,o as s,u as c}from"./dom-helpers-B98sy9ep.js";import{l,r as u,u as d}from"./control-ws-C8SS9PPx.js";import{m as f,n as p,p as m}from"./poll-ago-DdlzkUaM.js";import{G as h,S as g,W as ee,l as _}from"./ui-prefs-Dvsgw_ZF.js";import{T as v,a as y,s as b,t as x,w as te}from"./action-status-D9Sf2cZp.js";import{t as ne}from"./roving-keys-core-BDobx2It.js";import{a as re}from"./modal-5t7_5VCF.js";import{Bt as S,Et as ie,Jn as ae,Lt as C,Rt as w,Tt as T,Vt as oe,Xn as se,Yn as E,qn as ce,wt as le,zt as D}from"./index-BUTeP_1d.js";function ue(e,t){return!!e?.error&&!e.isRefreshing&&typeof e.nextAttemptAt==`number`&&e.nextAttemptAt>t}function O(e,t){if(!e?.error)return null;let n=e.error.trim().replace(/[.!]+$/,``),r=e.incident?.trim().replace(/[.!]+$/,``),i=`Could not reach GitHub: ${n}.${r?` GitHub reports: ${r}.`:``}`;if(e.isRefreshing)return`${i} Refreshing.`;if(typeof e.nextAttemptAt!=`number`)return i;let a=Math.max(0,Math.ceil((e.nextAttemptAt-t)/1e3));return a===0?`${i} Retrying now.`:e.retry?`${i} Retrying in ${a}s (${e.retry.attempt} of ${e.retry.limit}).`:`${i} Next try in ${a>=60?`${Math.ceil(a/60)} min`:`${a}s`}.`}function de(e,t,n){return e?.refreshNotice&&e.isRefreshing?e.refreshNotice:t||e?.isRefreshing?`Refreshing`:n||e?.refreshNotice||``}function fe(e,t){let n=e?.lastRefreshedAt??e?.lastSyncAt??null;if(n===null)return null;let r=Math.max(0,t-n);return!e?.error&&r<=3e5?null:r<6e4?`Last updated less than a minute ago.`:r<36e5?`Last updated ${Math.floor(r/6e4)} min ago.`:`Last updated ${Math.floor(r/36e5)} h ago.`}function k(e,t,n,r,i,a){return{isVisible:a&&(e.state===`OPEN`||t),isPressed:t,isDisabled:n,statusText:r||(n?`Saving`:i),tone:r?`error`:n?`busy`:null}}function pe(e,t,n=``){if(!t||!e.keepMergeable)return null;let r=A(e,!1,``,!0,n).statusText;if(e.isKeepMergeableFixInFlight)return{text:`Repairing`,tone:`warn`,title:r};let i=e.keepMergeableAttempt;return!i||i.outcome===`pushed`||i.outcome===`stopped`?null:{text:`Repair failed`,tone:`danger`,title:r}}function A(e,t,n=``,r=!0,i=``){let a=e.keepMergeableAttempt,o=e.keepMergeable?`On`:`Off`;if(e.keepMergeable&&a&&a.outcome!==`pushed`&&a.outcome!==`stopped`){let e=i?` (${i})`:``;o=`Keep mergeable failed: ${a.reason??`The attempt produced no repair`}${e}`}return e.isKeepMergeableFixInFlight&&(o=`Keep mergeable is running`),k(e,!!e.keepMergeable,t,n,o,r)}function me(e){return e?.isKeepMergeableEnabled!==!1}function he(e){return e?.isMergeQueueEnabled!==!1}function ge(e,t,n){return e?t?`Repair pushed, waiting for you`:n?`On, the last merge failed and retries an hour later once it is ready`:`On, merges as soon as it is ready`:`Not queued`}function _e(e,t,n=``,r=!0){let i=e.mergeQueuePosition!==null&&e.mergeQueuePosition!==void 0;return k(e,i,t,n,ge(i,!!e.isMergeQueueHeldForRepairPush,!!e.mergeQueueFailure),r)}function ve(e){return e.checks.failing.length>0?{label:`Checks`,tone:`danger`,icon:`failed`,text:`${e.checks.failing.length} failing`,items:e.checks.failing}:e.checks.state===`FAILURE`||e.checks.state===`ERROR`?{label:`Checks`,tone:`danger`,icon:`failed`,text:`Failing`}:e.checks.pendingCount>0?{label:`Checks`,tone:`wait`,icon:`running`,text:`${e.checks.pendingCount} running`}:e.checks.state===`PENDING`||e.checks.state===`EXPECTED`?{label:`Checks`,tone:`wait`,icon:`running`,text:`Running`}:e.checks.state===`SUCCESS`?{label:`Checks`,tone:`ok`,icon:`passed`,text:`Passing`}:{label:`Checks`,tone:`muted`,icon:`none`,text:`No checks`}}function j(e){return`${e} ${e===1?`approval`:`approvals`}`}function M(e){return e.reviewRequests.map(e=>e.name).join(`, `)}function ye(e){let t=e.reviewRequests.length>0?`Requested: ${M(e)}`:`Approval required`;return e.approvals>0?`${t}, ${j(e.approvals)}`:t}function be(e){let t=e.approvals>0?j(e.approvals):`Approved`;return e.mergeStateStatus===`BLOCKED`?{label:`Review`,tone:`wait`,icon:`reviewer`,text:`${t}, merge blocked`}:{label:`Review`,tone:`ok`,icon:`passed`,text:t}}function xe(e){return e.reviewDecision===`CHANGES_REQUESTED`?{label:`Review`,tone:`warn`,icon:`changes-requested`,text:`Changes requested`}:e.reviewDecision===`APPROVED`?be(e):e.reviewDecision===`REVIEW_REQUIRED`||e.mergeStateStatus===`BLOCKED`?{label:`Review`,tone:`wait`,icon:`reviewer`,text:ye(e)}:e.reviewRequests.length>0?{label:`Review`,tone:`wait`,icon:`reviewer`,text:`Requested: ${M(e)}`}:{label:`Review`,tone:`muted`,icon:`none`,text:`No review requested`}}function N(e,t){return t?e.lastAuthor!==t:null}function Se(e){let t=e.line===null?e.path:`${e.path}:${e.line}`;return e.isOutdated?`${t} (outdated)`:t}function Ce(e){let t=e.commentCount-1;return t===0?`No replies`:`${t} ${t===1?`reply`:`replies`}, last by ${e.lastAuthor??`a deleted account`}`}function we(e,t){let n=N(e,t);return n===null?null:n?{tone:`warn`,icon:`your-turn`,text:`Waiting on you`}:{tone:`wait`,icon:`reviewer`,text:`Waiting on reviewer`}}function Te(e,t){return[...e.threads].sort((e,n)=>{let r=Number(N(n,t)===!0)-Number(N(e,t)===!0);return r===0?(Date.parse(n.lastActivityAt)||0)-(Date.parse(e.lastActivityAt)||0):r}).map(e=>({location:Se(e),url:e.url,author:e.author??`a deleted account`,excerpt:e.excerpt,replySummary:Ce(e),lastActivityAt:e.lastActivityAt,waiting:we(e,t),isWaitingOnYou:N(e,t)===!0}))}function Ee(e,t){if(e.unresolvedThreads===0)return{label:`Threads`,tone:`ok`,icon:`passed`,text:`None open`};let n=`${e.unresolvedThreads} unresolved`;if(!t||e.threads.length===0)return{label:`Threads`,tone:`warn`,icon:`thread`,text:n};let r=e.threads.filter(e=>N(e,t)).length;return r===0?{label:`Threads`,tone:`wait`,icon:`thread`,text:`${n}, all waiting on reviewers`}:{label:`Threads`,tone:`warn`,icon:`your-turn`,text:`${n}, ${r} waiting on you`}}function De(e){return e.mergeable===`CONFLICTING`||e.mergeStateStatus===`DIRTY`?{label:`Conflicts`,tone:`danger`,icon:`conflict`,text:`Conflicts with ${e.baseRefName}`}:e.mergeable===`MERGEABLE`?{label:`Conflicts`,tone:`ok`,icon:`passed`,text:`None`}:{label:`Conflicts`,tone:`muted`,icon:`unknown`,text:`Not computed yet`}}function Oe(e){let t=e.behindBy!==null&&e.behindBy>0;return e.mergeStateStatus===`BEHIND`?{label:`Base`,tone:`warn`,icon:`behind`,text:t?`${e.behindBy} behind ${e.baseRefName}`:`Behind ${e.baseRefName}`}:e.behindBy===null?{label:`Base`,tone:`muted`,icon:`unknown`,text:`Unknown`}:t?{label:`Base`,tone:`muted`,icon:`behind`,text:`${e.behindBy} behind ${e.baseRefName}, update not required`}:{label:`Base`,tone:`ok`,icon:`passed`,text:`Up to date with ${e.baseRefName}`}}var ke={APPROVED:{text:`Approved`,tone:`ok`,icon:`passed`},CHANGES_REQUESTED:{text:`Requested changes`,tone:`warn`,icon:`changes-requested`},COMMENTED:{text:`Commented`,tone:`muted`,icon:`thread`},DISMISSED:{text:`Dismissed`,tone:`muted`,icon:`discarded`},PENDING:{text:`Pending`,tone:`wait`,icon:`running`}};function Ae(e){return[...e.reviews].sort((e,t)=>(Date.parse(t.submittedAt??``)||0)-(Date.parse(e.submittedAt??``)||0)).map(e=>{let t=ke[e.state]??{text:e.state.toLowerCase().replaceAll(`_`,` `),tone:`muted`,icon:`unknown`};return{reviewer:e.reviewer??`a deleted account`,text:t.text,tone:t.tone,icon:t.icon,submittedAt:e.submittedAt}})}var P={danger:0,warn:1,wait:2,muted:3,ok:4};function je(e,t=null){if(e.state===`MERGED`)return[];let n=[ve(e),xe(e),Ee(e,t),De(e),Oe(e)],r=e.autoRebase?[Me(e,e.autoRebase)]:[],i=e.mergeQueueFailure?[{label:`Merge when ready`,tone:`danger`,icon:`failed`,text:`Merge failed: ${e.mergeQueueFailure.message}`}]:[];return[...n,...r,...i].toSorted((e,t)=>P[e.tone]-P[t.tone])}function Me(e,t){return t.outcome===`rebased`?{label:`Auto-rebase`,tone:`ok`,icon:`passed`,text:t.message}:{label:`Auto-rebase`,tone:e.mergeStateStatus===`BEHIND`?`danger`:`warn`,icon:`failed`,text:t.message}}function F(e){return e?e.configured?e.error&&e.prs.length===0?`Pull requests will show here once GitHub answers.`:`No open or recently merged pull requests found.`:`Enable Team review and set its GitHub organization in settings to see your pull requests.`:`Waiting for your pull requests.`}function Ne(e,t=0){if(!e)return[];let n=O(e,t),r=n?[{text:n,tone:`error`}]:[];return e.truncatedNote?[...r,{text:e.truncatedNote,tone:`info`}]:r}var Pe={isVisible:!1,isDisabled:!0,statusText:``,tone:null},Fe={merged:{statusText:`Merged on GitHub. Refreshing the list.`,tone:`ok`},queued:{statusText:`Added to the merge queue. Refreshing the list.`,tone:`ok`},"auto-merge":{statusText:`Auto-merge enabled. GitHub merges it once its requirements pass.`,tone:`ok`},unconfirmed:{statusText:`GitHub accepted the request but did not confirm a merge. Check GitHub.`,tone:null}};function Ie(e,t){if(e.state!==`OPEN`)return Pe;let n=t?.head===e.headRefOid?t:void 0;if(n?.phase===`pending`)return{isVisible:!0,isDisabled:!0,statusText:`Merging on GitHub`,tone:`busy`};if(n&&n.phase!==`failed`)return{isVisible:!0,isDisabled:!0,...Fe[n.phase]};let r=oe(e);return r?{isVisible:!0,isDisabled:!0,statusText:r,tone:null}:n?.phase===`failed`?{isVisible:!0,isDisabled:!1,statusText:n.text,tone:`error`}:{isVisible:!0,isDisabled:!1,statusText:`Merges into ${e.baseRefName} with ${S(e.mergeMethod)}`,tone:null}}function Le(e){return`Merge ${e.key} "${e.title}" into ${e.baseRefName} with ${S(e.mergeMethod)}, your default for this repository. Glimmervoid does not delete the branch.`}function Re(e){let t=n.safeParse(e);if(!t.success)return null;let r=e&&typeof e==`object`&&`requestId`in e?e.requestId:null;return typeof r==`string`?{...t.data,requestId:r}:null}var I=null,L=null,R=T().status,z=null,B=new Map,V=new Map,H=null,U={label:`Keep mergeable`,pendingKeys:new Set,errorsByKey:new Map,controlState:(e,t,n,r)=>A(e,t,n,r,p(e.keepMergeableAttempt?.at)),isFeatureEnabled:me,save:async(e,t)=>{let n=await d(`my-pr-keep-mergeable`,{repo:e.repo,number:e.number,keepMergeable:t},{timeoutMs:x});if(n.type!==`my-pr-keep-mergeable-result`||n.key!==e.key)throw Error(`Unexpected keep mergeable reply.`);return n.ok?null:n.error??`Could not save Keep mergeable.`}},ze={label:`Merge when ready`,pendingKeys:new Set,errorsByKey:new Map,controlState:_e,isFeatureEnabled:he,save:async(e,t)=>{let n=await d(`my-pr-merge-when-ready`,{repo:e.repo,number:e.number,mergeWhenReady:t},{timeoutMs:x});if(n.type!==`my-pr-merge-when-ready-result`||n.key!==e.key)throw Error(`Unexpected merge when ready reply.`);return n.ok?null:n.error??`Could not save Merge when ready.`}},W=6e4,G=6e4,Be=`The server did not answer within ${W/1e3} s. Check GitHub before trying again.`,Ve=`${e} Check GitHub before trying again.`;function He(e,t){let n=typeof e==`string`?[e]:e,r=s(`div`,`reviews-refresh-control`),i=s(`button`,`pr-action pr-action-ghost reviews-refresh-button`,`Refresh`);i.type=`button`;let a=s(`span`,`reviews-refresh-status`);a.setAttribute(`role`,`status`);let o=s(`p`,`my-pr-error reviews-retry-notice`);r.append(i,a);let l=null,u=!1,f=``,p=null;function m(){let e=Date.now(),n=O(l,e),r=fe(l,e);o.textContent=n?[n,r].filter(Boolean).join(` `):``,o.hidden!==!l?.error&&(o.hidden=!l?.error),a.textContent=de(l,u,f)||(l?.error?``:r)||``,a.hidden!==!a.textContent&&(a.hidden=!a.textContent);let i=o.isConnected&&!c(t)&&!document.hidden&&o.getClientRects().length>0&&ue(l,e);!i&&p!==null&&(window.clearInterval(p),p=null),i&&p===null&&(p=window.setInterval(m,1e3))}function h(e){e!==l&&(f=``),l=e,i.disabled=u||!!e?.isRefreshing||!e?.configured,m()}i.addEventListener(`click`,async()=>{if(!u){u=!0,f=``,h(l);try{let e=await Promise.all(n.map(e=>d(`github-polling-refresh`,{lane:e},{timeoutMs:G}))),t=e.find(e=>e.type===`github-polling-refresh-result`&&!e.ok);t?.type===`github-polling-refresh-result`&&(f=t.error??`Could not refresh from GitHub.`),!t&&e.some(e=>e.type===`github-polling-refresh-result`)&&(f=`Refreshed.`)}catch(e){f=b(e,G)}finally{u=!1,h(l)}}});let g=new MutationObserver(m);g.observe(t,{attributes:!0,subtree:!0,attributeFilter:[`hidden`,`data-queue-collapsed`]});for(let e=t.parentElement;e;e=e.parentElement)g.observe(e,{attributes:!0,attributeFilter:[`hidden`,`data-queue-collapsed`]});return document.addEventListener(`visibilitychange`,m),{control:r,notice:o,update:h}}function K(e,t,n,r){B.set(e,{head:t,phase:n,text:r}),Z()}function Ue(t){if(V.has(t.key))return;let n=u(`my-pr-merge`);if(!l({type:`my-pr-merge`,requestId:n,repo:t.repo,number:t.number,headRefOid:t.headRefOid})){K(t.key,t.headRefOid,`failed`,e);return}let r=window.setTimeout(()=>{V.delete(t.key),K(t.key,t.headRefOid,`failed`,Be)},W);V.set(t.key,{requestId:n,head:t.headRefOid,timer:r}),B.set(t.key,{head:t.headRefOid,phase:`pending`,text:``}),Z()}function We(e){let t=Ie(e,B.get(e.key));if(!t.isVisible)return null;let n=s(`footer`,`pr-footer pr-decision-bar`),r=s(`button`,`pr-action`,`Merge`);r.type=`button`,r.disabled=t.isDisabled;let i=s(`span`,`pr-action-status`,t.statusText);return i.setAttribute(`role`,`status`),i.setAttribute(`aria-live`,`polite`),y(i,t.tone,t.statusText),r.addEventListener(`click`,()=>{re({title:`Merge pull request`,message:Le(e),confirmLabel:`Merge`,onConfirm:()=>Ue(e)})}),n.append(r,i),n}function Ge(e,t){let n=t.controlState(e,t.pendingKeys.has(e.key),t.errorsByKey.get(e.key),t.isFeatureEnabled(R));if(!n.isVisible)return null;let r=s(`div`,`my-pr-merge`),i=s(`button`,`pr-action`,t.label);i.type=`button`,i.disabled=n.isDisabled,i.setAttribute(`aria-pressed`,String(n.isPressed));let a=s(`span`,`pr-action-status`,n.statusText);return y(a,n.tone,n.statusText),a.setAttribute(`role`,`status`),a.setAttribute(`aria-live`,`polite`),i.addEventListener(`click`,async()=>{if(!t.pendingKeys.has(e.key)){t.pendingKeys.add(e.key),t.errorsByKey.delete(e.key),Z();try{let r=await t.save(e,!n.isPressed);r&&t.errorsByKey.set(e.key,r)}catch(n){t.errorsByKey.set(e.key,b(n,x))}finally{t.pendingKeys.delete(e.key),Z()}}}),r.append(i,a),r}function q(e,{hasGlyph:t}){let n=s(`span`,`my-pr-stage`);return n.dataset.tone=D(e.stage),t&&n.append(E(C(e.stage),D(e.stage))),n.append(w(e.stage)),n}function Ke(e,t){let n=s(`span`,`my-pr-requested`);n.append(s(`span`,null,`Requested`));let r=s(`span`,`avatar-stack`);for(let t of e.reviewRequests){let e=a({login:t.name,url:t.isTeam?t.avatarUrl:void 0,cssPx:16});e.title=t.name,e.setAttribute(`role`,`img`),e.setAttribute(`aria-label`,t.name),r.append(e)}return n.append(r,s(`span`,`my-pr-requested-names`,t.slice(11))),n}function qe(e){let t=s(`div`,`pr-detail-heading`),n=s(`div`,`pr-detail-title`);n.append(i(`pr-link`,e.key,e.url),s(`h2`,null,e.title));let r=s(`p`,`pr-detail-meta`),a=e.state===`MERGED`?`Merged ${p(Date.parse(e.mergedAt??``))}`:`Updated ${p(Date.parse(e.updatedAt))}`;return r.append(s(`span`,`pr-queue-owner`,`Yours`),q(e,{hasGlyph:!0}),s(`span`,null,`Opened ${p(Date.parse(e.createdAt))}`),s(`span`,null,a)),t.append(n,r),t}function Je(e){let t=je(e,R?.viewer??null);if(t.length===0)return null;let n=s(`section`,`pr-readiness-section`);n.append(s(`h3`,`pr-section-heading`,`Merge readiness`));let r=s(`ul`,`pr-readiness`);for(let n of t){let t=s(`li`,`pr-readiness-row`);t.dataset.tone=n.tone;let i=s(`span`,`pr-readiness-value`);if(n.label===`Review`&&n.text.startsWith(`Requested: `)&&i.append(Ke(e,n.text)),i.childNodes.length===0&&(i.textContent=n.text),n.items){let e=s(`ul`,`my-pr-facts`);for(let t of n.items)e.append(s(`li`,null,t));i.append(e)}t.append(E(n.icon,n.tone),s(`span`,`pr-readiness-label`,n.label),i),r.append(t)}return n.append(r),n}function J(e,t){if(t.length===0)return null;let n=s(`section`,`my-pr-threads-section`);n.append(s(`h3`,`pr-section-heading`,e));let r=s(`ul`,`my-pr-threads`);for(let e of t){let t=s(`li`,`my-pr-thread`),n=s(`div`,`my-pr-thread-heading`);if(n.append(i(`my-pr-thread-location`,e.location,e.url)),e.waiting){let t=s(`span`,`my-pr-stage`);t.dataset.tone=e.waiting.tone,t.append(E(e.waiting.icon,e.waiting.tone),e.waiting.text),n.append(t)}let a=s(`p`,`my-pr-thread-excerpt`);a.append(s(`strong`,null,e.author),` ${e.excerpt}`);let o=Date.parse(e.lastActivityAt),c=s(`p`,`my-pr-thread-meta`,Number.isFinite(o)?`${e.replySummary}, ${p(o)}`:e.replySummary);t.append(n,a,c),r.append(t)}return n.append(r),n}function Ye(e){let t=Ae(e);if(t.length===0)return null;let n=s(`section`,`pr-readiness-section`);n.append(s(`h3`,`pr-section-heading`,`Reviews`));let i=s(`ul`,`pr-readiness`);for(let e of t){let t=s(`li`,`pr-readiness-row`),n=Date.parse(e.submittedAt??``),a=Number.isFinite(n)?`${e.text} ${p(n)}`:e.text,o=s(`span`,`my-pr-reviewer`);o.append(r([{login:e.reviewer,tone:e.tone,title:e.reviewer,url:e.reviewer===`a deleted account`?null:void 0}],16),s(`span`,null,e.reviewer)),t.append(E(e.icon,e.tone),o,s(`span`,`pr-readiness-value`,a)),i.append(t)}return n.append(i),n}function Xe(e){let t=[U,ze].map(t=>Ge(e,t)).filter(e=>e!==null);if(t.length===0)return null;let n=s(`section`,`my-pr-automation`);return n.append(s(`h3`,`pr-section-heading`,`Automation`),...t),n}function Y(e){if(!I)return;if(!e){I.replaceChildren(s(`p`,`pr-empty`,F(R)));return}let t=Te(e,R?.viewer??null),n=s(`article`,`pr-detail`),r=[Je(e),J(`Threads waiting on you`,t.filter(e=>e.isWaitingOnYou)),J(`Other open threads`,t.filter(e=>!e.isWaitingOnYou)),Ye(e),Xe(e),We(e)];n.append(qe(e),...r.filter(e=>e!==null)),I.replaceChildren(n)}function X(e){let n=e.dataset.sessionId??``,r=f.get(n),i=o(e,`.session-row-name`);r&&(i.textContent=m(r)||n);let a={glyph:o(e,`.session-row-glyph`),label:o(e,`.session-row-label`)},s=ae(e,a,r?.currentState||t.DORMANT,r?.awaitingBackgroundTasks,r?.pendingPromptKind),c=`Focus session ${i.textContent}, ${s}`;e.title=c,e.setAttribute(`aria-label`,c)}function Ze(e){let{row:t,refs:n}=ce(`button`,`my-pr-session-pill`);return t.type=`button`,t.dataset.sessionId=e.id,n.name.textContent=e.title,X(t),t.addEventListener(`click`,()=>H?.(e.id)),t}function Qe(e){if(!e||e.length===0)return null;let t=s(`div`,`my-pr-session-focus`);return t.append(...e.map(Ze)),t}function $e(){for(let e of document.querySelectorAll(`.my-pr-session-pill`))X(e)}function et(e,t,n){let r=s(`button`,`pr-queue-row`);r.type=`button`,r.dataset.prKey=e.key,r.title=`${e.key}: ${w(e.stage)}`;let i=s(`span`,`pr-queue-glyph`);i.append(E(C(e.stage),D(e.stage)));let a=s(`span`,`pr-queue-top`);a.append(s(`strong`,`pr-queue-ref`,e.key),s(`span`,`pr-queue-title`,e.title));let o=s(`span`,`pr-queue-bottom`);o.append(s(`span`,`pr-queue-owner`,`Yours`),q(e,{hasGlyph:!1})),t&&o.append(s(`span`,`my-pr-stage`,`Stacked on ${t}`));let c=e.state===`MERGED`?e.mergedAt:null,l=c?`merged ${p(Date.parse(c))}`:`opened ${p(Date.parse(e.createdAt))}`;o.append(s(`span`,`pr-queue-elapsed`,l));let u=pe(e,U.isFeatureEnabled(R),p(e.keepMergeableAttempt?.at));if(u){let e=s(`span`,`my-pr-stage`,u.text);e.dataset.tone=u.tone,e.title=u.title,o.append(e)}r.append(i,a,o);let d=s(`div`,`my-pr-row-group`);d.append(r);let f=Qe(n);return f&&d.append(f),{group:d,row:r}}function tt(e){z=e,Y(T().prs.find(e=>e.key===z))}function Z(){let{prs:e,status:t}=T();R=t,z&&Y(e.find(e=>e.key===z)),L?.onChange()}function nt(e,t){return H=t?.openTerminal??null,L=e,I||(I=s(`div`,`pr-detail-mine`),ie(rt),Z(),I)}function rt(e){switch(e.kind){case`prs`:Z();return;case`session-state`:$e();return;case`merge-result`:at(e.message);return;case`connection`:it(e.isConnected)}}function it(e){if(!e){for(let[e,t]of V)window.clearTimeout(t.timer),B.set(e,{head:t.head,phase:`failed`,text:Ve});V.size!==0&&(V.clear(),Z())}}function at(e){let t=Re(e);if(!t)return;let n=V.get(t.key);if(!n||n.requestId!==t.requestId)return;if(window.clearTimeout(n.timer),V.delete(t.key),!t.ok){K(t.key,n.head,`failed`,t.error||`The merge failed.`);return}if(K(t.key,n.head,t.kind??`unconfirmed`,``),t.kind!==`merged`)return;let r=T().prs.find(e=>e.key===t.key);r&&le([r])}var ot={minPx:220,maxPx:720},st=16,Q=new Set,ct=0;function $(e){let t=g();e.toggleAttribute(`data-queue-collapsed`,t),e.querySelector(`.pr-queue-toggle`)?.setAttribute(`aria-expanded`,String(!t));let n=_();n===null?e.style.removeProperty(`--pr-queue-width`):e.style.setProperty(`--pr-queue-width`,`${n}px`)}function lt(){for(let e of Q)e.isConnected?$(e):Q.delete(e)}function ut(e,t){let n=s(`div`,`pr-queue-head`);return e&&n.append(e),t&&n.append(t),n}function dt(e){let t=s(`div`,`pr-queue-foot`);return e&&t.append(e),t}function ft({queueLabel:e,scopeTabs:t,resizerLabel:n}){let r=s(`div`,`pr-columns`),i=s(`div`,`pr-queue-pane`),a=s(`nav`,`pr-queue`);a.id=`pr-queue-${++ct}`,a.setAttribute(`aria-label`,e);let o=s(`button`,`pr-queue-toggle`);o.type=`button`,o.setAttribute(`aria-label`,`Review queue`),o.setAttribute(`aria-controls`,a.id),o.title=`Collapse or expand the review queue`;let c=te(16,16);c.append(v(`rect`,{x:`1.5`,y:`2`,width:`13`,height:`12`,rx:`2`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`})),c.append(v(`path`,{d:`M5.5 2V14`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`}));let l=v(`path`,{d:`M11 6L9 8L11 10`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`,"stroke-linejoin":`round`});l.classList.add(`pr-queue-chevron`),c.append(l),o.append(c),o.addEventListener(`click`,()=>{ee(!g()),lt()});let u=dt(null);i.append(ut(t,o),a,u);let d=s(`div`,`pr-queue-resizer`);d.setAttribute(`role`,`separator`),d.setAttribute(`aria-orientation`,`vertical`),d.setAttribute(`aria-label`,n),d.tabIndex=0;let f=s(`main`,`pr-detail-host`);return r.append(i,d,f),$(r),Q.add(r),se({resizer:d,column:i,widthHost:r,widthProperty:`--pr-queue-width`,bounds:ot,keyStepPx:st,getStoredWidth:_,setStoredWidth:h}),{columns:r,queue:a,foot:u,detail:f}}function pt({label:e,scopes:t,selected:n,onSelect:r,extraClassName:i,countClassPrefix:a}){let o=document.createElement(`div`);o.className=i?`pr-scope-tabs ${i}`:`pr-scope-tabs`,o.setAttribute(`role`,`tablist`),o.setAttribute(`aria-label`,e);let s=new Map,c=t.map(e=>{let t=document.createElement(`button`);return t.className=`pr-scope-tab`,t.type=`button`,t.dataset.scope=e.id,t.setAttribute(`role`,`tab`),t.textContent=e.label,t}),l=e=>{for(let[n,r]of c.entries()){let i=t[n].id===e;r.setAttribute(`aria-selected`,String(i)),r.tabIndex=i?0:-1}},u=(e,n)=>{l(t[e].id),r(t[e].id),n&&c[e].focus()};for(let[e,t]of c.entries())t.addEventListener(`click`,()=>u(e,!1)),t.addEventListener(`keydown`,t=>{let n=ne(t.key,e,c.length,`horizontal`);n!==null&&(t.preventDefault(),u(n,!0))});return o.append(...c.map((e,n)=>{if(!a)return e;let r=document.createElement(`span`);r.className=a,r.setAttribute(`role`,`presentation`);let i=document.createElement(`span`);return i.className=`${a}-count`,i.dataset.scopeCount=t[n].id,s.set(t[n].id,i),r.append(e,i),r})),l(n),{element:o,select:l,countElementByScope:s}}export{He as a,tt as c,ut as i,F as l,ft as n,et as o,dt as r,nt as s,pt as t,Ne as u};
@@ -1 +1 @@
1
- import{B as e,G as t,J as n,K as r,Q as i,U as a,W as o,X as s,Y as c,Z as l,at as u,c as d,ct as ee,et as f,it as te,lt as p,n as m,nt as h,o as g,ot as _,p as v,pt as y,q as ne,r as b,st as re,tt as x,u as S,z as C}from"./dom-helpers-B98sy9ep.js";import{u as w}from"./control-ws-C8SS9PPx.js";import{n as T,r as E,t as D}from"./poll-ago-DdlzkUaM.js";import{a as O,s as k,t as A}from"./action-status-D9Sf2cZp.js";import{a as ie}from"./modal-5t7_5VCF.js";import{F as ae,I as oe,N as se,P as j,Qn as ce,Zn as le,g as ue}from"./index-BReL4NSr.js";import{createInvestigationDialog as de,createRadarReportDialog as M}from"./dialogs-DdT1F2S6.js";var fe=4e3;function pe({render:e,holdMs:t=fe,setTimer:n=setTimeout,clearTimer:r=clearTimeout}){let i=new Set,a=!1,o=null;function s(e){(o===null||e)&&(o!==null&&r(o),o=n(c,t))}function c(){o=null,i.size>0?s(!1):a&&(a=!1,e())}return{begin(e){i.add(e)},settle(e){i.delete(e),s(!0)},request(){i.size===0&&o===null?e():(a=!0,s(!1))},_state(){return{pending:i.size,held:a,armed:o!==null}}}}var N=null,P=`http://www.w3.org/2000/svg`,F=pe({render:Ve}),I=null,L=new Map,R=new WeakMap,me=`this issue`,z=D(()=>N),he={spiking:`spiking`,regressed:`regressed`,worsened:`worsened`,new:`new`,quiet:`quiet`},B=[{columnId:`stripe`,headText:``,cellClass:`radar-stripe`,track:`auto`,phoneTrack:`auto`,isMagnitude:!1,startsActionCluster:!1},{columnId:`change`,headText:``,cellClass:`radar-change`,track:`auto`,phoneTrack:`minmax(68px, auto)`,isMagnitude:!1,startsActionCluster:!1},{columnId:`copy`,headText:``,cellClass:`radar-issue-copy`,track:`minmax(0, 1fr)`,phoneTrack:`minmax(0, 1fr)`,isMagnitude:!1,startsActionCluster:!0},{columnId:`occurrences`,headText:`Occurrences`,cellClass:`radar-metric`,track:`max-content`,phoneTrack:``,isMagnitude:!0,startsActionCluster:!1},{columnId:`users`,headText:`Users`,cellClass:`radar-metric`,track:`max-content`,phoneTrack:``,isMagnitude:!0,startsActionCluster:!1},{columnId:`trend`,headText:`Trend`,cellClass:`radar-issue-trend`,track:`max-content`,phoneTrack:``,isMagnitude:!0,startsActionCluster:!1}],ge=B.map(e=>e.track).join(` `),_e=B.filter(e=>!e.isMagnitude).map(e=>e.phoneTrack).join(` `),ve=B.findIndex(e=>e.startsActionCluster)+1,V=3e4;function H(e){let t=g(`div`,e);return t.style.setProperty(`--radar-issue-grid`,ge),t.style.setProperty(`--radar-issue-grid-phone`,_e),t.style.setProperty(`--radar-issue-actions-start`,String(ve)),t}function U(e,t){let n=g(`span`,`radar-issue-magnitudes`),r=!1;for(let i of B){let a=t(i);i.isMagnitude?(r||=(e.append(n),!0),n.append(a)):e.append(a)}}function W(e){return Number.isFinite(e)?String(e):`0`}function ye(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?``:`elapsed ${E(Date.now()-e)}`}function G(e){return typeof e?.issueId==`string`?e.issueId:``}function K(e,t){return[String(e??``),String(t??``)].join(`::`)}function be(e,t,n){let r=L.get(K(e,t));if(!r||!r.copy.isConnected)return!1;let i=c(n);return i?(r.summary||(r.summary=g(`span`,`radar-issue-summary`),r.copy.insertBefore(r.summary,r.copy.querySelector(`.radar-issue-meta`))),r.summary.textContent=i,!0):(r.summary?.remove(),r.summary=null,!0)}function q(e,n,r){let i=G(e);if(!i)return;I?.dialog.close();let a=de({issueTitle:String(e.title||i),projectLabel:r,onOpenReport:()=>Y(e)});I={projectId:String(n??``),issueId:i,dialog:a},a.update(t(e))}function J(){if(!I)return;if(!I.dialog.isOpen()){I=null;return}let e=C(j().latest,I.projectId,I.issueId);e&&I.dialog.update(t(e))}function Y(e){let t=G(e);t&&w(`get-radar-report`,{issueId:t},{timeoutMs:A}).then(n=>{n.ok?n.found?M({issueId:t,issueTitle:String(e.title??``),format:String(n.format??``),content:String(n.content||``)}):M({issueId:t,issueTitle:String(e.title??``),message:String(n.message||`Report not found`)}):M({issueId:t,issueTitle:String(e.title??``),error:String(n.error||`Could not read report`)})}).catch(n=>{M({issueId:t,issueTitle:String(e.title??``),error:k(n,A)})})}function X(){let e=g(`div`,`radar-issue-actions`),t=g(`span`,`radar-issue-action-status`);t.setAttribute(`role`,`status`),e.append(t);let n=[],r=null,i=()=>{r?.remove(),r=null},a=t=>{i(),r=t,e.append(t)},o=e=>{for(let t of n)t.disabled=e};return{addButton:(r,i,a)=>{let o=g(`button`,`radar-issue-action`,r);return o.type=`button`,o.title=i,o.addEventListener(`click`,e=>{e.stopPropagation(),a()}),n.push(o),e.insertBefore(o,t),o},request:(e,n,r,a,s,c=null)=>{F.begin(e),o(!0),i(),O(t,`busy`,a);let l=(n,r)=>{o(!1),i(),O(t,n,r),F.settle(e)};w(n,r,{timeoutMs:V}).then(e=>{e.ok?(l(`ok`,s(e)),c&&c(e)):l(`error`,String(e.error||`Request failed`))}).catch(e=>l(`error`,k(e,V)))},showFollowUp:a,wrap:e}}function xe(e){let t=g(`button`,`radar-issue-action radar-open-trace`,`Open trace`);return t.type=`button`,t.title=`Open the session trace`,t.addEventListener(`click`,t=>{t.stopPropagation(),Be(e)}),t}function Se(e,t,n){let{addButton:r,request:i,showFollowUp:a,wrap:o}=X(),s=(n,r,a,o,s=null)=>i(`${n}:${e.issueId}`,n,{projectId:t,issueId:e.issueId,...r},a,o,s);return e.inFlight&&r(`View investigation`,`Watch the running investigation`,()=>q(e,t,n)),!e.inFlight&&e.verdict&&G(e)&&r(`Open report`,`Open the investigation report for this issue`,()=>Y(e)),e.inFlight||r(`Open session`,`Paste an investigation prompt into the mapped project session`,()=>{s(`radar-open-session`,{},`Opening session`,e=>e.pending?`Starting ${String(e.sessionName||`session`)}; the prompt lands when it is up`:`Prompt pasted into ${String(e.sessionName||`the session`)}; press Enter there`,e=>{typeof e.sessionId==`string`&&j().traceOpener&&a(xe(e.sessionId))})}),r(`Resolve`,`Mark this issue resolved in PostHog`,()=>{s(`radar-issue-action`,{action:`resolve`},`Resolving in PostHog`,()=>`Marked resolved`)}),r(`Suppress`,`Suppress this issue in PostHog`,()=>{ie({title:`Suppress issue`,message:`This marks the issue suppressed in PostHog for everyone on the project.`,confirmLabel:`Suppress`,danger:!0,onConfirm:()=>s(`radar-issue-action`,{action:`suppress`},`Suppressing in PostHog`,()=>`Marked suppressed`)})}),o}function Z(e){return le()?me:e}function Ce(e){let t=R.get(e);t&&(e.title=t())}function we(){if(N)for(let e of N.querySelectorAll(`.radar-issue-reportable`))Ce(e)}ce(we);function Te(e,t,n){e.classList.add(`radar-issue-reportable`),R.set(e,t),Ce(e),e.addEventListener(`click`,e=>{e.target instanceof Element&&(e.target.closest(`a, button`)||n())})}function Ee(e,t,r){let i=g(`div`,`radar-issue`);i.dataset.severity=te(e.change);let a=g(`span`,`radar-stripe`);a.setAttribute(`aria-hidden`,`true`);let o=g(`span`,`radar-change`,he[e.change??``]||String(e.change||`unknown`)),u=d(`radar-issue-title`,String(e.title||`Untitled issue`),e.url,String(e.title||``)),f=g(`span`,`radar-metric`);f.append(g(`span`,`radar-metric-value`,W(e.occurrences)),g(`span`,`radar-metric-label`,`occ`));let p=g(`span`,`radar-metric`);p.append(g(`span`,`radar-metric-value`,W(e.users)),g(`span`,`radar-metric-label`,`users`));let m=l(e.history),h=re(m,64,16),_=h?document.createElementNS(P,`svg`):null;if(_){_.classList.add(`radar-sparkline`),_.setAttribute(`viewBox`,`0 0 64 16`),_.setAttribute(`width`,`64`),_.setAttribute(`height`,`16`),_.setAttribute(`role`,`img`),_.setAttribute(`focusable`,`false`);let e=document.createElementNS(P,`title`);e.textContent=ee(m);let t=document.createElementNS(P,`polyline`);t.setAttribute(`points`,h),_.append(e,t)}let v=c(e),b=g(`span`,`radar-issue-copy`);b.append(u);let x=null;v&&(x=g(`span`,`radar-issue-summary`),x.textContent=v,b.append(x)),L.set(K(t,e.issueId),{copy:b,summary:x});let S=g(`span`,`radar-issue-meta`),C=ne(e);if(C!==null){let e=g(`span`,`radar-issue-seen`);e.title=new Date(C).toLocaleString(),z.track(e,C,T),S.append(e)}let w=n(e);w&&S.append(g(`span`,`radar-issue-status`,w));let E=String(e.title||e.issueId);if(e.inFlight){let n=g(`span`,`radar-verdict`,`investigating`);n.dataset.verdict=`INVESTIGATING`,S.append(n);let a=typeof e.startedAt==`number`?e.startedAt:null;if(a!==null&&Number.isFinite(a)&&a>0){let e=g(`span`,`radar-issue-elapsed`);z.track(e,a,ye),S.append(e)}G(e)&&Te(i,()=>`Watch the investigation of ${Z(E)}`,()=>q(e,t,r))}if(!e.inFlight&&e.verdict){let t=g(`span`,`radar-verdict`,y(e.verdict));t.dataset.verdict=e.verdict,S.append(t),G(e)&&Te(i,()=>`View investigation report for ${Z(E)}`,()=>Y(e))}S.childElementCount>0&&b.append(S);let D=g(`span`,`radar-issue-trend`);_&&D.append(_);let O=s(m);if(O){let e=O.direction===`up`?`+`:O.direction===`down`?`-`:`=`,t=g(`span`,`radar-delta`,`${e}${O.percent}%`);t.dataset.direction=O.direction,D.append(t)}let k={stripe:a,change:o,copy:b,occurrences:f,users:p,trend:D};return U(i,e=>k[e.columnId]),G(e)&&i.append(Se(e,t,r)),i}var Q=(e,t,n)=>b(`radar`,e,t,n);function De(e){return e.error?`poll failed: ${e.error}`:e.staleMs>0?`stale ${E(e.staleMs)}`:``}function Oe(e,t,{showHost:n,nameTag:r,nameClass:i,hostClass:a}){let o=g(r,i,f(t));o.title=String(t.name||``),e.append(o);let s=n?u(t.host):``;s&&e.append(g(`span`,a,s))}function ke(){let e=H(`radar-column-heads`);for(let t of B){if(!t.headText){e.append(g(`span`));continue}let n=g(`span`,`radar-column-head`,t.headText);n.dataset.column=t.columnId,e.append(n)}return e}function Ae(e,t){let n=e.project,r=g(`div`,`radar-project`),i=_(n.issues),a=p(i),o=g(`div`,`radar-project-head`);Oe(o,n,{showHost:t,nameTag:`h3`,nameClass:`radar-project-name`,hostClass:`radar-project-host`}),r.append(o);let s=g(`div`,`radar-project-summary`);s.append(Q(a.active===1?`active issue`:`active issues`,W(a.active))),s.append(Q(`spiking`,W(a.spiking),a.spiking>0?`crit`:null)),s.append(Q(`needs you`,W(a.needsHuman),a.needsHuman>0?`warn`:null));let c=De(e);if(c){let t=g(`span`,`radar-project-alert`,c);t.dataset.tone=e.error?`crit`:`warn`,s.append(t)}if(r.append(s),i.length===0)return r;r.append(ke());let l=H(`radar-issues`);for(let e of i)l.append(Ee(e,n.projectId,f(n)));return r.append(l),r}function je(e,t){let n=e.project,r=g(`div`,`radar-quiet-row`),i=g(`span`,`radar-quiet-dot`);return i.setAttribute(`aria-hidden`,`true`),r.append(i),Oe(r,n,{showHost:t,nameTag:`span`,nameClass:`radar-quiet-name`,hostClass:`radar-quiet-host`}),r.append(g(`span`,`radar-quiet-count`,`0 issues`)),r}var Me=(e,t)=>m(`radar`,e,t);function Ne(){let e=g(`div`,`radar-issue`);return e.dataset.skeleton=``,U(e,e=>g(`span`,e.cellClass)),e}function Pe(){let e=H(`radar-issues`);e.setAttribute(`aria-busy`,`true`),e.setAttribute(`aria-label`,`Loading issues`);for(let t=0;t<5;t+=1)e.append(Ne());return e}function Fe(e){return e?.configured===!1?typeof e.reason==`string`&&e.reason.trim()!==``?`Fix it in`:`Switch it on in`:``}function Ie(e,t=`ready`){let n=Me(`Errors`);if(t===`pending`)return n.append(Pe()),n;if(t===`placeholder`||e.length===0){let e=g(`p`,`radar-unconfigured`,h(j().latest)),t=ue(`lanes-posthog`,`posthog-enabled`,`PostHog settings`),r=Fe(j().latest);return e.append(document.createTextNode(r?` ${r} `:` `),t),n.append(e),n}let r=g(`div`,`radar-global-tick`),o=Number(j().latest?.intervalMinutes);z.track(r,j().latest?.ts,e=>{let t=`polled ${T(e)}`;return!Number.isFinite(o)||o<=0?t:`${t}, every ${o}m`}),n.append(r);let s=o>0?o*6e4:0,{loud:c,quiet:l}=i(e,Date.now(),{intervalMs:s}),u=a(e);for(let e of c)n.append(Ae(e,u));if(l.length===0)return n;let d=g(`div`,`radar-quiet`);for(let e of l)d.append(je(e,u));return n.append(d),n}function Le(e){let{addButton:t,request:n,wrap:r}=X();return e.issueId&&t(`Open report`,`Open the investigation report for this issue`,()=>{Y({issueId:e.issueId,title:e.title})}),t(`Archive`,`Remove this investigation from the inbox`,()=>{n(`archive:${e.id}`,`radar-archive-investigation`,{id:e.id},`Archiving`,()=>`Archived`,()=>se(e.id))}),r}function Re(e){let t=g(`div`,`radar-investigation`),n=g(`span`,`radar-verdict`,y(e.verdict));n.dataset.verdict=e.verdict;let r=d(`radar-issue-title`,e.title,e.url),i=g(`span`,`radar-issue-copy`);if(i.append(r),e.summaryLine){let t=g(`span`,`radar-issue-summary`);t.textContent=e.summaryLine,i.append(t)}if(e.prUrl){let t=g(`a`,`radar-investigation-pr`,`fix PR`);t.href=e.prUrl,t.target=`_blank`,t.rel=`noopener`,t.title=e.prUrl,i.append(t)}if(t.append(n),e.mode===`fix`){let e=g(`span`,`radar-verdict`,`fix`);e.dataset.mode=`fix`,t.append(e)}if(t.append(i),e.projectLabel){let n=g(`span`,`radar-investigation-project`);n.textContent=e.projectLabel,t.append(n)}if(e.at>0){let n=g(`span`,`radar-investigation-time`,T(e.at));n.title=new Date(e.at).toLocaleString(),t.append(n)}return t.append(Le(e)),t}function ze(e){let t=Me(`Investigations`,`completed, not yet archived`),n=g(`div`,`radar-investigations`);for(let t of e)n.append(Re(t));return t.append(n),t}function Be(e){j().traceOpener?.(e)}function Ve(){if(!N)return;N.textContent=``,L.clear(),z.reset();let{latest:e,archivedLocally:t}=j(),n=v(e),r=o(e,t),i=x(e,n.length);N.append(Ie(n,i)),r.length>0&&N.append(ze(r))}function $(){F.request()}function He(t){I?.dialog.isOpen()&&r(I,t)&&I.dialog.update(e(t))}function Ue(e){if(e.kind===`status`)$(),J();else if(e.kind===`investigation-activity`){J();let t=C(j().latest,e.projectId,e.issueId);if(e.wasInFlight&&be(e.projectId,e.issueId,t))return;$()}else e.isPatched?(J(),$()):He(e.frame)}function We(e){if(N)return;let t=g(`div`,`radar-content`);e.appendChild(t),N=t,ae(()=>!S(N)),oe(Ue),z.ensure(),Ve()}var Ge={mount:We};export{Ge as view};
1
+ import{B as e,G as t,J as n,K as r,Q as i,U as a,W as o,X as s,Y as c,Z as l,at as u,c as d,ct as ee,et as f,it as te,lt as p,n as m,nt as h,o as g,ot as _,p as v,pt as y,q as ne,r as b,st as re,tt as x,u as S,z as C}from"./dom-helpers-B98sy9ep.js";import{u as w}from"./control-ws-C8SS9PPx.js";import{n as T,r as E,t as D}from"./poll-ago-DdlzkUaM.js";import{a as O,s as k,t as A}from"./action-status-D9Sf2cZp.js";import{a as ie}from"./modal-5t7_5VCF.js";import{F as ae,I as oe,N as se,P as j,Qn as ce,Zn as le,g as ue}from"./index-BUTeP_1d.js";import{createInvestigationDialog as de,createRadarReportDialog as M}from"./dialogs-BzWYYMp7.js";var fe=4e3;function pe({render:e,holdMs:t=fe,setTimer:n=setTimeout,clearTimer:r=clearTimeout}){let i=new Set,a=!1,o=null;function s(e){(o===null||e)&&(o!==null&&r(o),o=n(c,t))}function c(){o=null,i.size>0?s(!1):a&&(a=!1,e())}return{begin(e){i.add(e)},settle(e){i.delete(e),s(!0)},request(){i.size===0&&o===null?e():(a=!0,s(!1))},_state(){return{pending:i.size,held:a,armed:o!==null}}}}var N=null,P=`http://www.w3.org/2000/svg`,F=pe({render:Ve}),I=null,L=new Map,R=new WeakMap,me=`this issue`,z=D(()=>N),he={spiking:`spiking`,regressed:`regressed`,worsened:`worsened`,new:`new`,quiet:`quiet`},B=[{columnId:`stripe`,headText:``,cellClass:`radar-stripe`,track:`auto`,phoneTrack:`auto`,isMagnitude:!1,startsActionCluster:!1},{columnId:`change`,headText:``,cellClass:`radar-change`,track:`auto`,phoneTrack:`minmax(68px, auto)`,isMagnitude:!1,startsActionCluster:!1},{columnId:`copy`,headText:``,cellClass:`radar-issue-copy`,track:`minmax(0, 1fr)`,phoneTrack:`minmax(0, 1fr)`,isMagnitude:!1,startsActionCluster:!0},{columnId:`occurrences`,headText:`Occurrences`,cellClass:`radar-metric`,track:`max-content`,phoneTrack:``,isMagnitude:!0,startsActionCluster:!1},{columnId:`users`,headText:`Users`,cellClass:`radar-metric`,track:`max-content`,phoneTrack:``,isMagnitude:!0,startsActionCluster:!1},{columnId:`trend`,headText:`Trend`,cellClass:`radar-issue-trend`,track:`max-content`,phoneTrack:``,isMagnitude:!0,startsActionCluster:!1}],ge=B.map(e=>e.track).join(` `),_e=B.filter(e=>!e.isMagnitude).map(e=>e.phoneTrack).join(` `),ve=B.findIndex(e=>e.startsActionCluster)+1,V=3e4;function H(e){let t=g(`div`,e);return t.style.setProperty(`--radar-issue-grid`,ge),t.style.setProperty(`--radar-issue-grid-phone`,_e),t.style.setProperty(`--radar-issue-actions-start`,String(ve)),t}function U(e,t){let n=g(`span`,`radar-issue-magnitudes`),r=!1;for(let i of B){let a=t(i);i.isMagnitude?(r||=(e.append(n),!0),n.append(a)):e.append(a)}}function W(e){return Number.isFinite(e)?String(e):`0`}function ye(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?``:`elapsed ${E(Date.now()-e)}`}function G(e){return typeof e?.issueId==`string`?e.issueId:``}function K(e,t){return[String(e??``),String(t??``)].join(`::`)}function be(e,t,n){let r=L.get(K(e,t));if(!r||!r.copy.isConnected)return!1;let i=c(n);return i?(r.summary||(r.summary=g(`span`,`radar-issue-summary`),r.copy.insertBefore(r.summary,r.copy.querySelector(`.radar-issue-meta`))),r.summary.textContent=i,!0):(r.summary?.remove(),r.summary=null,!0)}function q(e,n,r){let i=G(e);if(!i)return;I?.dialog.close();let a=de({issueTitle:String(e.title||i),projectLabel:r,onOpenReport:()=>Y(e)});I={projectId:String(n??``),issueId:i,dialog:a},a.update(t(e))}function J(){if(!I)return;if(!I.dialog.isOpen()){I=null;return}let e=C(j().latest,I.projectId,I.issueId);e&&I.dialog.update(t(e))}function Y(e){let t=G(e);t&&w(`get-radar-report`,{issueId:t},{timeoutMs:A}).then(n=>{n.ok?n.found?M({issueId:t,issueTitle:String(e.title??``),format:String(n.format??``),content:String(n.content||``)}):M({issueId:t,issueTitle:String(e.title??``),message:String(n.message||`Report not found`)}):M({issueId:t,issueTitle:String(e.title??``),error:String(n.error||`Could not read report`)})}).catch(n=>{M({issueId:t,issueTitle:String(e.title??``),error:k(n,A)})})}function X(){let e=g(`div`,`radar-issue-actions`),t=g(`span`,`radar-issue-action-status`);t.setAttribute(`role`,`status`),e.append(t);let n=[],r=null,i=()=>{r?.remove(),r=null},a=t=>{i(),r=t,e.append(t)},o=e=>{for(let t of n)t.disabled=e};return{addButton:(r,i,a)=>{let o=g(`button`,`radar-issue-action`,r);return o.type=`button`,o.title=i,o.addEventListener(`click`,e=>{e.stopPropagation(),a()}),n.push(o),e.insertBefore(o,t),o},request:(e,n,r,a,s,c=null)=>{F.begin(e),o(!0),i(),O(t,`busy`,a);let l=(n,r)=>{o(!1),i(),O(t,n,r),F.settle(e)};w(n,r,{timeoutMs:V}).then(e=>{e.ok?(l(`ok`,s(e)),c&&c(e)):l(`error`,String(e.error||`Request failed`))}).catch(e=>l(`error`,k(e,V)))},showFollowUp:a,wrap:e}}function xe(e){let t=g(`button`,`radar-issue-action radar-open-trace`,`Open trace`);return t.type=`button`,t.title=`Open the session trace`,t.addEventListener(`click`,t=>{t.stopPropagation(),Be(e)}),t}function Se(e,t,n){let{addButton:r,request:i,showFollowUp:a,wrap:o}=X(),s=(n,r,a,o,s=null)=>i(`${n}:${e.issueId}`,n,{projectId:t,issueId:e.issueId,...r},a,o,s);return e.inFlight&&r(`View investigation`,`Watch the running investigation`,()=>q(e,t,n)),!e.inFlight&&e.verdict&&G(e)&&r(`Open report`,`Open the investigation report for this issue`,()=>Y(e)),e.inFlight||r(`Open session`,`Paste an investigation prompt into the mapped project session`,()=>{s(`radar-open-session`,{},`Opening session`,e=>e.pending?`Starting ${String(e.sessionName||`session`)}; the prompt lands when it is up`:`Prompt pasted into ${String(e.sessionName||`the session`)}; press Enter there`,e=>{typeof e.sessionId==`string`&&j().traceOpener&&a(xe(e.sessionId))})}),r(`Resolve`,`Mark this issue resolved in PostHog`,()=>{s(`radar-issue-action`,{action:`resolve`},`Resolving in PostHog`,()=>`Marked resolved`)}),r(`Suppress`,`Suppress this issue in PostHog`,()=>{ie({title:`Suppress issue`,message:`This marks the issue suppressed in PostHog for everyone on the project.`,confirmLabel:`Suppress`,danger:!0,onConfirm:()=>s(`radar-issue-action`,{action:`suppress`},`Suppressing in PostHog`,()=>`Marked suppressed`)})}),o}function Z(e){return le()?me:e}function Ce(e){let t=R.get(e);t&&(e.title=t())}function we(){if(N)for(let e of N.querySelectorAll(`.radar-issue-reportable`))Ce(e)}ce(we);function Te(e,t,n){e.classList.add(`radar-issue-reportable`),R.set(e,t),Ce(e),e.addEventListener(`click`,e=>{e.target instanceof Element&&(e.target.closest(`a, button`)||n())})}function Ee(e,t,r){let i=g(`div`,`radar-issue`);i.dataset.severity=te(e.change);let a=g(`span`,`radar-stripe`);a.setAttribute(`aria-hidden`,`true`);let o=g(`span`,`radar-change`,he[e.change??``]||String(e.change||`unknown`)),u=d(`radar-issue-title`,String(e.title||`Untitled issue`),e.url,String(e.title||``)),f=g(`span`,`radar-metric`);f.append(g(`span`,`radar-metric-value`,W(e.occurrences)),g(`span`,`radar-metric-label`,`occ`));let p=g(`span`,`radar-metric`);p.append(g(`span`,`radar-metric-value`,W(e.users)),g(`span`,`radar-metric-label`,`users`));let m=l(e.history),h=re(m,64,16),_=h?document.createElementNS(P,`svg`):null;if(_){_.classList.add(`radar-sparkline`),_.setAttribute(`viewBox`,`0 0 64 16`),_.setAttribute(`width`,`64`),_.setAttribute(`height`,`16`),_.setAttribute(`role`,`img`),_.setAttribute(`focusable`,`false`);let e=document.createElementNS(P,`title`);e.textContent=ee(m);let t=document.createElementNS(P,`polyline`);t.setAttribute(`points`,h),_.append(e,t)}let v=c(e),b=g(`span`,`radar-issue-copy`);b.append(u);let x=null;v&&(x=g(`span`,`radar-issue-summary`),x.textContent=v,b.append(x)),L.set(K(t,e.issueId),{copy:b,summary:x});let S=g(`span`,`radar-issue-meta`),C=ne(e);if(C!==null){let e=g(`span`,`radar-issue-seen`);e.title=new Date(C).toLocaleString(),z.track(e,C,T),S.append(e)}let w=n(e);w&&S.append(g(`span`,`radar-issue-status`,w));let E=String(e.title||e.issueId);if(e.inFlight){let n=g(`span`,`radar-verdict`,`investigating`);n.dataset.verdict=`INVESTIGATING`,S.append(n);let a=typeof e.startedAt==`number`?e.startedAt:null;if(a!==null&&Number.isFinite(a)&&a>0){let e=g(`span`,`radar-issue-elapsed`);z.track(e,a,ye),S.append(e)}G(e)&&Te(i,()=>`Watch the investigation of ${Z(E)}`,()=>q(e,t,r))}if(!e.inFlight&&e.verdict){let t=g(`span`,`radar-verdict`,y(e.verdict));t.dataset.verdict=e.verdict,S.append(t),G(e)&&Te(i,()=>`View investigation report for ${Z(E)}`,()=>Y(e))}S.childElementCount>0&&b.append(S);let D=g(`span`,`radar-issue-trend`);_&&D.append(_);let O=s(m);if(O){let e=O.direction===`up`?`+`:O.direction===`down`?`-`:`=`,t=g(`span`,`radar-delta`,`${e}${O.percent}%`);t.dataset.direction=O.direction,D.append(t)}let k={stripe:a,change:o,copy:b,occurrences:f,users:p,trend:D};return U(i,e=>k[e.columnId]),G(e)&&i.append(Se(e,t,r)),i}var Q=(e,t,n)=>b(`radar`,e,t,n);function De(e){return e.error?`poll failed: ${e.error}`:e.staleMs>0?`stale ${E(e.staleMs)}`:``}function Oe(e,t,{showHost:n,nameTag:r,nameClass:i,hostClass:a}){let o=g(r,i,f(t));o.title=String(t.name||``),e.append(o);let s=n?u(t.host):``;s&&e.append(g(`span`,a,s))}function ke(){let e=H(`radar-column-heads`);for(let t of B){if(!t.headText){e.append(g(`span`));continue}let n=g(`span`,`radar-column-head`,t.headText);n.dataset.column=t.columnId,e.append(n)}return e}function Ae(e,t){let n=e.project,r=g(`div`,`radar-project`),i=_(n.issues),a=p(i),o=g(`div`,`radar-project-head`);Oe(o,n,{showHost:t,nameTag:`h3`,nameClass:`radar-project-name`,hostClass:`radar-project-host`}),r.append(o);let s=g(`div`,`radar-project-summary`);s.append(Q(a.active===1?`active issue`:`active issues`,W(a.active))),s.append(Q(`spiking`,W(a.spiking),a.spiking>0?`crit`:null)),s.append(Q(`needs you`,W(a.needsHuman),a.needsHuman>0?`warn`:null));let c=De(e);if(c){let t=g(`span`,`radar-project-alert`,c);t.dataset.tone=e.error?`crit`:`warn`,s.append(t)}if(r.append(s),i.length===0)return r;r.append(ke());let l=H(`radar-issues`);for(let e of i)l.append(Ee(e,n.projectId,f(n)));return r.append(l),r}function je(e,t){let n=e.project,r=g(`div`,`radar-quiet-row`),i=g(`span`,`radar-quiet-dot`);return i.setAttribute(`aria-hidden`,`true`),r.append(i),Oe(r,n,{showHost:t,nameTag:`span`,nameClass:`radar-quiet-name`,hostClass:`radar-quiet-host`}),r.append(g(`span`,`radar-quiet-count`,`0 issues`)),r}var Me=(e,t)=>m(`radar`,e,t);function Ne(){let e=g(`div`,`radar-issue`);return e.dataset.skeleton=``,U(e,e=>g(`span`,e.cellClass)),e}function Pe(){let e=H(`radar-issues`);e.setAttribute(`aria-busy`,`true`),e.setAttribute(`aria-label`,`Loading issues`);for(let t=0;t<5;t+=1)e.append(Ne());return e}function Fe(e){return e?.configured===!1?typeof e.reason==`string`&&e.reason.trim()!==``?`Fix it in`:`Switch it on in`:``}function Ie(e,t=`ready`){let n=Me(`Errors`);if(t===`pending`)return n.append(Pe()),n;if(t===`placeholder`||e.length===0){let e=g(`p`,`radar-unconfigured`,h(j().latest)),t=ue(`lanes-posthog`,`posthog-enabled`,`PostHog settings`),r=Fe(j().latest);return e.append(document.createTextNode(r?` ${r} `:` `),t),n.append(e),n}let r=g(`div`,`radar-global-tick`),o=Number(j().latest?.intervalMinutes);z.track(r,j().latest?.ts,e=>{let t=`polled ${T(e)}`;return!Number.isFinite(o)||o<=0?t:`${t}, every ${o}m`}),n.append(r);let s=o>0?o*6e4:0,{loud:c,quiet:l}=i(e,Date.now(),{intervalMs:s}),u=a(e);for(let e of c)n.append(Ae(e,u));if(l.length===0)return n;let d=g(`div`,`radar-quiet`);for(let e of l)d.append(je(e,u));return n.append(d),n}function Le(e){let{addButton:t,request:n,wrap:r}=X();return e.issueId&&t(`Open report`,`Open the investigation report for this issue`,()=>{Y({issueId:e.issueId,title:e.title})}),t(`Archive`,`Remove this investigation from the inbox`,()=>{n(`archive:${e.id}`,`radar-archive-investigation`,{id:e.id},`Archiving`,()=>`Archived`,()=>se(e.id))}),r}function Re(e){let t=g(`div`,`radar-investigation`),n=g(`span`,`radar-verdict`,y(e.verdict));n.dataset.verdict=e.verdict;let r=d(`radar-issue-title`,e.title,e.url),i=g(`span`,`radar-issue-copy`);if(i.append(r),e.summaryLine){let t=g(`span`,`radar-issue-summary`);t.textContent=e.summaryLine,i.append(t)}if(e.prUrl){let t=g(`a`,`radar-investigation-pr`,`fix PR`);t.href=e.prUrl,t.target=`_blank`,t.rel=`noopener`,t.title=e.prUrl,i.append(t)}if(t.append(n),e.mode===`fix`){let e=g(`span`,`radar-verdict`,`fix`);e.dataset.mode=`fix`,t.append(e)}if(t.append(i),e.projectLabel){let n=g(`span`,`radar-investigation-project`);n.textContent=e.projectLabel,t.append(n)}if(e.at>0){let n=g(`span`,`radar-investigation-time`,T(e.at));n.title=new Date(e.at).toLocaleString(),t.append(n)}return t.append(Le(e)),t}function ze(e){let t=Me(`Investigations`,`completed, not yet archived`),n=g(`div`,`radar-investigations`);for(let t of e)n.append(Re(t));return t.append(n),t}function Be(e){j().traceOpener?.(e)}function Ve(){if(!N)return;N.textContent=``,L.clear(),z.reset();let{latest:e,archivedLocally:t}=j(),n=v(e),r=o(e,t),i=x(e,n.length);N.append(Ie(n,i)),r.length>0&&N.append(ze(r))}function $(){F.request()}function He(t){I?.dialog.isOpen()&&r(I,t)&&I.dialog.update(e(t))}function Ue(e){if(e.kind===`status`)$(),J();else if(e.kind===`investigation-activity`){J();let t=C(j().latest,e.projectId,e.issueId);if(e.wasInFlight&&be(e.projectId,e.issueId,t))return;$()}else e.isPatched?(J(),$()):He(e.frame)}function We(e){if(N)return;let t=g(`div`,`radar-content`);e.appendChild(t),N=t,ae(()=>!S(N)),oe(Ue),z.ensure(),Ve()}var Ge={mount:We};export{Ge as view};
@@ -0,0 +1 @@
1
+ @layer components{.radar-content{flex-direction:column;gap:18px;max-width:1080px;margin:0 auto;display:flex}.radar-unconfigured{color:var(--text-muted);max-width:78ch;margin:0;font-size:12px;line-height:1.55}.radar-global-tick{color:var(--text-muted);text-align:right;font-size:11px}.radar-project{border:1px solid var(--border-dim);border-radius:var(--radius);background:color-mix(in oklab, var(--bg) 60%, transparent);padding:14px 16px}.radar-project-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.radar-project-name{color:var(--text-head);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:11px;font-weight:700}.radar-project-host{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.radar-project-summary{border-bottom:1px solid var(--border-dim);align-items:baseline;gap:16px;margin:6px 0 12px;padding-bottom:8px;display:flex}.radar-project-alert{color:var(--text-muted);margin-left:auto;font-size:11px}.radar-project-alert[data-tone=crit]{color:var(--state-failed)}.radar-project-alert[data-tone=warn]{color:var(--state-waiting)}.radar-quiet{border:1px solid var(--border-dim);border-radius:var(--radius);background:color-mix(in oklab, var(--bg) 60%, transparent);flex-direction:column;padding:6px 12px;display:flex}.radar-quiet-row{align-items:center;gap:10px;min-width:0;padding:3px 0;font-size:11px;display:flex}.radar-quiet-dot{background:var(--text-muted);opacity:.45;border-radius:50%;flex:none;width:5px;height:5px}.radar-quiet-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);overflow:hidden}.radar-quiet-host{color:var(--text-muted);flex:none;font-size:11px}.radar-quiet-count{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:11px}.radar-issues{flex-direction:column;gap:2px;display:flex}.radar-column-heads,.radar-issues{--radar-metric-column:52px;--radar-trend-column:118px}.radar-column-heads,.radar-issue{grid-template-columns:var(--radar-issue-grid);align-items:center;gap:10px;min-width:0;display:grid}.radar-column-heads{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 0 4px;font-size:10px;font-weight:700}.radar-column-head[data-column=occurrences],.radar-column-head[data-column=users]{min-width:var(--radar-metric-column);text-align:right}.radar-column-head[data-column=trend]{min-width:var(--radar-trend-column);text-align:right}.radar-issue{padding:3px 0}.radar-issue[data-skeleton]>*{border-radius:var(--radius);background:color-mix(in oklab, var(--accent) 10%, var(--bg));color:#0000;min-height:8px}.radar-issue[data-skeleton] .radar-issue-magnitudes>*{border-radius:var(--radius);background:color-mix(in oklab, var(--accent) 10%, var(--bg));min-height:8px}.radar-issue[data-skeleton] .radar-metric{width:var(--radar-metric-column)}@media (prefers-reduced-motion:no-preference){.radar-issue[data-skeleton]>*{animation:1.2s ease-in-out infinite alternate radar-skeleton-pulse}}.radar-issue-reportable{cursor:pointer;border-radius:var(--radius)}@media (hover:hover){.radar-issue-reportable:hover{background:color-mix(in oklab, var(--accent) 8%, transparent)}}.radar-issue-reportable .radar-verdict:after{content:" view";color:var(--text-muted)}.radar-stripe{background:var(--border);border-radius:2px;flex:none;align-self:stretch;width:3px;min-height:14px}.radar-issue[data-severity=crit] .radar-stripe{background:var(--state-failed)}.radar-issue[data-severity=warn] .radar-stripe{background:var(--state-waiting)}.radar-issue[data-severity=dim] .radar-stripe{background:var(--border)}.radar-change{text-transform:uppercase;letter-spacing:.08em;min-width:68px;color:var(--text-muted);flex:none;font-size:10px;font-weight:700}.radar-issue[data-severity=crit] .radar-change{color:var(--state-failed)}.radar-issue[data-severity=warn] .radar-change{color:var(--state-waiting)}.radar-sparkline{width:64px;height:16px;color:var(--text-muted);flex:none}.radar-issue[data-severity=crit] .radar-sparkline{color:var(--state-failed)}.radar-issue[data-severity=warn] .radar-sparkline{color:var(--state-waiting)}.radar-sparkline polyline{fill:none;stroke:currentColor;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round}.radar-issue-magnitudes{display:contents}.radar-issue-trend{width:var(--radar-trend-column);justify-content:flex-end;align-items:center;gap:6px;display:flex}.radar-issue-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.radar-issue-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);text-decoration:none;overflow:hidden}@media (hover:hover){a.radar-issue-title:hover{color:var(--accent);text-decoration:underline}}.radar-issue-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.radar-issue-meta{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.radar-metric{min-width:var(--radar-metric-column);text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums}.radar-metric-value{font-variant-numeric:tabular-nums;color:var(--text);margin-right:3px}.radar-metric-label{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.radar-column-heads+.radar-issues .radar-metric-label{display:none}.radar-delta{border:1px solid var(--border-dim);border-radius:var(--radius);color:var(--text-muted);font-variant-numeric:tabular-nums;padding:1px 4px;font-size:11px}.radar-delta[data-direction=up]{color:var(--state-failed);border-color:color-mix(in oklab, var(--state-failed) 50%, var(--border-dim))}.radar-delta[data-direction=down]{color:var(--state-complete);border-color:color-mix(in oklab, var(--state-complete) 50%, var(--border-dim))}.radar-issue-seen,.radar-issue-elapsed{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.radar-issue-status{border:1px solid var(--border-dim);border-radius:var(--radius);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);flex:none;padding:1px 5px;font-size:10px;font-weight:700}.radar-verdict{border:1px solid var(--border-dim);border-radius:var(--radius);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);flex:none;padding:1px 6px;font-size:10px;font-weight:700}.radar-verdict[data-verdict=NEEDS_HUMAN]{color:var(--state-waiting);border-color:color-mix(in oklab, var(--state-waiting) 50%, var(--border-dim))}.radar-verdict[data-verdict=ROOT_CAUSE],.radar-verdict[data-verdict=FIXED]{color:var(--state-complete);border-color:color-mix(in oklab, var(--state-complete) 50%, var(--border-dim))}.radar-verdict[data-verdict=ERROR]{color:var(--state-failed);border-color:color-mix(in oklab, var(--state-failed) 50%, var(--border-dim))}.radar-verdict[data-verdict=INVESTIGATING]{color:var(--accent);border-color:var(--accent-dim)}.radar-verdict[data-mode=fix]{color:var(--accent-dim);border-color:color-mix(in oklab, var(--accent-dim) 50%, var(--border-dim))}.radar-investigation-pr{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;flex:none;font-size:10px;font-weight:700}.radar-issue>.radar-issue-actions{grid-column:var(--radar-issue-actions-start) / -1}.radar-issue-action-status[data-tone=ok]{color:var(--state-complete)}.radar-issue-action-status[data-tone=error]{color:var(--state-failed)}.radar-open-trace{color:var(--accent);border-color:var(--accent-dim)}.radar-investigations{flex-direction:column;gap:2px;display:flex}.radar-investigation{align-items:center;gap:10px;min-width:0;padding:3px 0;display:flex}.radar-investigation-project{text-overflow:ellipsis;white-space:nowrap;max-width:140px;color:var(--text-muted);flex:none;font-size:11px;overflow:hidden}.radar-investigation-time{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px}html[data-layout=phone] .radar-content{gap:22px}html[data-layout=phone] .radar-project{padding:12px}html[data-layout=phone] .radar-project-head{flex-wrap:wrap;gap:2px 10px}html[data-layout=phone] .radar-project-host{white-space:normal;overflow-wrap:anywhere;flex:100%}html[data-layout=phone] .radar-project-summary{flex-wrap:wrap;gap:6px 14px;margin-bottom:8px}html[data-layout=phone] .radar-quiet{padding:4px 12px}html[data-layout=phone] .radar-quiet-row{flex-wrap:wrap;padding:5px 0;font-size:12px}html[data-layout=phone] .radar-quiet-name{white-space:normal;overflow-wrap:anywhere;flex:auto}html[data-layout=phone] .radar-issues,html[data-layout=phone] .radar-investigations{gap:0}html[data-layout=phone] .radar-column-heads{display:none}html[data-layout=phone] .radar-issue{grid-template-columns:var(--radar-issue-grid-phone);border-bottom:1px solid var(--border-dim);align-items:center;gap:6px 8px;padding:10px 0}html[data-layout=phone] .radar-investigation{border-bottom:1px solid var(--border-dim);flex-wrap:wrap;align-items:center;gap:6px 8px;padding:10px 0}html[data-layout=phone] .radar-issue:last-child,html[data-layout=phone] .radar-investigation:last-child{border-bottom:none}html[data-layout=phone] .radar-issue-magnitudes{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px 12px;display:flex}html[data-layout=phone] .radar-issue-trend{width:auto}html[data-layout=phone] .radar-column-heads+.radar-issues .radar-metric-label{display:inline}html[data-layout=phone] .radar-issue-title,html[data-layout=phone] .radar-issue-summary{-webkit-line-clamp:2;line-clamp:2;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box}html[data-layout=phone] .radar-issue-summary{font-size:11px}html[data-layout=phone] .radar-sparkline{opacity:.6;width:48px}html[data-layout=phone] .radar-issue-actions{opacity:1;flex-wrap:wrap;flex-basis:100%;grid-column:1/-1;gap:6px}html[data-layout=phone] .radar-issue-action-status{white-space:normal;flex:100%;max-width:100%;min-height:15px;overflow:visible}html[data-layout=phone] .radar-investigation-project{white-space:normal;overflow-wrap:anywhere;max-width:100%}}
@@ -1,4 +1,4 @@
1
- import{C as e,H as t,Nn as n,On as r,Pn as i,V as a,a as o,c as s,d as c,i as l,jn as u,kn as d,o as f,u as p}from"./dom-helpers-B98sy9ep.js";import{l as m,r as h}from"./control-ws-C8SS9PPx.js";import{n as g,t as _}from"./poll-ago-DdlzkUaM.js";import{lt as ee}from"./ui-prefs-Dvsgw_ZF.js";import{T as v,a as y,w as b}from"./action-status-D9Sf2cZp.js";import{i as x}from"./modal-5t7_5VCF.js";import{$ as S,$t as C,At as w,Ct as T,Dt as te,Ft as ne,Hn as re,It as E,Lt as ie,Mt as D,Nt as ae,Ot as O,Pt as oe,Q as se,Qn as ce,Rt as le,St as ue,Tt as k,Yn as de,Z as fe,Zn as pe,_t as me,at as he,bt as ge,ct as _e,dt as ve,en as ye,et as be,ft as xe,g as Se,gt as Ce,ht as we,it as Te,jt as Ee,kt as De,lt as Oe,mt as ke,nt as Ae,ot as je,pt as Me,rt as Ne,st as Pe,tt as Fe,ut as Ie,vt as Le,xt as Re,yt as ze,zn as Be,zt as Ve}from"./index-BReL4NSr.js";import{a as He,c as Ue,l as We,n as Ge,o as Ke,s as qe,t as Je,u as Ye}from"./pr-scope-tabs-jELwYeSS.js";var Xe=`> [!NOTE]
1
+ import{C as e,H as t,Nn as n,On as r,Pn as i,V as a,a as o,c as s,d as c,i as l,jn as u,kn as d,o as f,u as p}from"./dom-helpers-B98sy9ep.js";import{l as m,r as h}from"./control-ws-C8SS9PPx.js";import{n as g,t as _}from"./poll-ago-DdlzkUaM.js";import{lt as ee}from"./ui-prefs-Dvsgw_ZF.js";import{T as v,a as y,w as b}from"./action-status-D9Sf2cZp.js";import{i as x}from"./modal-5t7_5VCF.js";import{$ as S,$t as C,At as w,Ct as T,Dt as te,Ft as ne,Hn as re,It as E,Lt as ie,Mt as D,Nt as ae,Ot as O,Pt as oe,Q as se,Qn as ce,Rt as le,St as ue,Tt as k,Yn as de,Z as fe,Zn as pe,_t as me,at as he,bt as ge,ct as _e,dt as ve,en as ye,et as be,ft as xe,g as Se,gt as Ce,ht as we,it as Te,jt as Ee,kt as De,lt as Oe,mt as ke,nt as Ae,ot as je,pt as Me,rt as Ne,st as Pe,tt as Fe,ut as Ie,vt as Le,xt as Re,yt as ze,zn as Be,zt as Ve}from"./index-BUTeP_1d.js";import{a as He,c as Ue,l as We,n as Ge,o as Ke,s as qe,t as Je,u as Ye}from"./pr-scope-tabs-BPX_CXBo.js";var Xe=`> [!NOTE]
2
2
  > Automated review. Not written by a human.`,Ze=`> [!NOTE]
3
3
  > Automated review by [Glimmervoid](https://glimmervoid.dev). Not written by a human.`,Qe=`> [!NOTE]
4
4
  > Automated review by [Glimmervoid](https://glimmervoid.dev), not written by a human. Approved by hand after checking it.`,$e=d.options.join(`|`),et=String.raw`\*\*(?:\[([^\]\n]+)\]\s+)?(${$e})\*\*`;function tt(e){return[...e.matchAll(new RegExp(et,`g`))].flatMap(e=>{let t=d.safeParse(e[2]);return t.success?[t.data]:[]})}function nt(e){let t=new RegExp(String.raw`^${et}\s*(?:\r?\n|$)`).exec(e);if(!t)return null;let n=d.safeParse(t[2]);return n.success?{reviewer:t[1]??null,severity:n.data,length:t[0].length}:null}function rt(e){let t=e.trimStart(),n=[Xe,Ze,Qe].find(e=>t.startsWith(e));return n?t.slice(n.length).trim():e.trim()}var it=`(line not in the diff)`,at=String.raw`- ${et}`,ot=String.raw`\*\*\x60([^\x60\n]+)\x60\*\* ${it.replace(/[()]/g,`\\$&`)}`,st=new RegExp(String.raw`^(?:${at}|${ot})`,`gm`),ct=new RegExp(String.raw`^${at}\s*(?:\x60([^\x60\n]+)\x60:\s*)?`),lt=new RegExp(String.raw`^${ot}\s*`);function ut(e){return d.options.find(t=>e.includes(t))??null}function dt(e){let t=ct.exec(e);if(t)return{severity:d.parse(t[2]),location:t[3]??null,body:e.slice(t[0].length).trim(),markdown:e};let n=lt.exec(e),r=n?e.slice(n[0].length).trim():e;return{severity:ut(tt(r)),location:n?.[1]??null,body:r,markdown:e}}function ft(e){let t=rt(e),n=t.search(st);return(n===-1?t:t.slice(0,n)).trim()}function pt(e){let t=rt(e),n=[...t.matchAll(st)].map(e=>e.index);return n.map((e,r)=>t.slice(e,n[r+1]).trim()).filter(Boolean).map(dt)}var mt={"direct-request":`Needs you`,"team-request":`Ready`,"changes-requested":`Author to fix`,"checks-failing":`Checks failing`,"checks-pending":`Checks running`,draft:`Draft`,"review-available":`Ready`,approved:`Approved`},ht={APPROVE:{label:`You approved`,tone:`ok`,icon:`passed`},COMMENT:{label:`You commented`,tone:`muted`,icon:`thread`},REQUEST_CHANGES:{label:`You requested changes`,tone:`wait`,icon:`changes-requested`}},gt={APPROVED:{label:`You approved`,tone:`ok`,icon:`passed`},CHANGES_REQUESTED:{label:`You requested changes`,tone:`wait`,icon:`changes-requested`},COMMENTED:{label:`You commented`,tone:`muted`,icon:`thread`}};function _t(e){let t=(e.githubReviews??[]).filter(e=>e.isViewer).sort((e,t)=>(Date.parse(t.submittedAt??``)||0)-(Date.parse(e.submittedAt??``)||0)).at(0);if(!e.postedEvent)return t?gt[t.state]:null;if(!t)return ht[e.postedEvent];let n=Date.parse(t.submittedAt??``);return Number.isNaN(n)||e.postedAt!==void 0&&e.postedAt>n?ht[e.postedEvent]:gt[t.state]}var vt={"changes-requested":`changes-requested`,"checks-failing":`failed`,"checks-pending":`running`,draft:`draft`};function yt(e){let{reason:t}=w(e),n=vt[t];return n?{text:mt[t],icon:n}:null}function bt(e){return yt(e)?.text??null}var xt={discarded:{tone:`muted`,icon:`discarded`,meaning:`Not mine`}};function St(e,t){let n=bt(t);return n?`${e}, ${n}`:e}function Ct(e){if(n(e))return!0;let t=(e.githubReviews??[]).filter(e=>e.isViewer);return t.length===0||t.some(t=>t.commit===Ee(e))}var wt={tone:`warn`,icon:`your-turn`,meaning:`Comments resolved`};function Tt(e,t){if(e.prStage)return{tone:Ve(e.prStage),icon:ie(e.prStage),meaning:le(e.prStage)};let n=xt[t];if(n)return n;if(t===`inReview`)return{tone:`wait`,icon:`running`,meaning:St(`In review`,e)};if(t===`queued`)return{tone:`muted`,icon:`queued`,meaning:St(`Queued`,e)};if(t===`settled`&&`reviewedHead`in e){let t=Ct(e)?_t(e):null;return t?{tone:t.tone,icon:t.icon,meaning:t.label}:{tone:`ok`,icon:`passed`,meaning:`Others reviewed`}}if(t===`posted`&&`reviewedHead`in e){let t=_t(e);return t?{tone:t.tone,icon:t.icon,meaning:t.label}:{tone:`muted`,icon:`none`,meaning:`Posted`}}if(t===`attention`&&`status`in e)return e.status===`error`?{tone:`danger`,icon:`failed`,meaning:`Review failed`}:{tone:`warn`,icon:`stale`,meaning:`Out of date`};let r=yt(e);return r?{tone:`wait`,icon:r.icon,meaning:r.text}:t===`ready`&&`reviewedHead`in e&&oe(e)?wt:{tone:`warn`,icon:`your-turn`,meaning:`Waits on you`}}function Et(e){return!e||e.total===0?null:e.total===1?e.resolved===1?`Your 1 comment resolved`:`Your 1 comment unresolved`:e.resolved===e.total?`All ${e.total} of your comments resolved`:`${e.resolved} of ${e.total} of your comments resolved`}function Dt(e){return`${e} ${e===1?`comment`:`comments`}`}function Ot(e,t,n){let r=[`${E(e.repo,e.number)}: ${e.title}`],a=`reviewedHead`in e?e.assessment?.goal.trim():``;if(a&&r.push(a),r.push(Tt(e,t).meaning),n.opened&&r.push(`Opened ${n.opened}`),n.reviewed&&r.push(`Reviewed ${n.reviewed}`),n.posted&&r.push(`Posted ${n.posted}`),!(`reviewedHead`in e))return r.join(`
@@ -0,0 +1 @@
1
+ @layer components{.my-pr-note{color:var(--text-dim);margin:0;padding:8px 14px;font-size:12px}.pr-thread-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);gap:8px;padding:12px}.pr-thread-heading{justify-content:space-between}.pr-thread-chip{color:var(--text-muted);border:1px solid;border-radius:2px;flex:none;padding:2px 6px;font-size:10px;font-weight:700}.pr-thread-chip[data-tone=ok]{color:var(--state-complete)}.pr-thread-chip[data-tone=warn]{color:var(--state-waiting)}.pr-thread-message{min-width:0;color:var(--text-head)}.pr-thread-message-muted{color:var(--text-dim)}.pr-thread-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.55}.pr-thread-preview{-webkit-line-clamp:8;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pr-thread-message-muted .pr-thread-preview{-webkit-line-clamp:3}.pr-thread-message:has(.pr-thread-disclosure[open])>.pr-thread-preview{display:none}.pr-thread-expand{width:fit-content;color:var(--text-dim);cursor:pointer;padding:4px 0;font-size:11px}@media (hover:hover){.pr-thread-expand:hover{color:var(--text-head)}}.pr-thread-expand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pr-thread-expand:active{color:var(--accent)}.pr-thread-disclosure .pr-thread-continues{color:var(--text-dim);margin-top:4px;font-size:11px;font-weight:400;display:inline-block}.pr-thread-footer{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.pr-content{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.pr-team-chip>span:last-child{text-overflow:ellipsis;overflow:hidden}.review-group-heading{align-items:center;gap:8px;display:flex}.review-group-toggle{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0}.review-group-chevron{margin-right:6px;transition:transform .12s ease-out;display:inline-block}.review-group-toggle[aria-expanded=true] .review-group-chevron{transform:rotate(90deg)}.review-group-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.review-group-count{color:var(--text-muted);font-weight:400}.review-team-chip-slot{display:contents}.review-queue-phone-bar{display:none}@media (prefers-reduced-motion:reduce){.review-group-chevron{transition:none}}.pr-caught-up{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);flex-direction:column;gap:4px;margin:4px 14px 12px;padding:10px 12px;display:flex}.pr-caught-up-title{color:var(--state-complete);align-items:center;gap:8px;font-size:12px;display:flex}.pr-caught-up-detail{color:var(--text-dim);font-size:11px}.pr-phase-label{color:var(--accent);white-space:nowrap}.pr-viewer-threads[data-state=all-resolved]{color:var(--state-waiting)}.pr-viewer-threads{color:var(--text-muted);letter-spacing:.02em;font-size:12px;line-height:1.55}.pr-verdict-seal{color:var(--accent);white-space:nowrap;letter-spacing:.04em;align-items:center;gap:6px;font-size:14px;font-weight:700;display:inline-flex}.pr-verdict-seal[data-tone=ok]{color:var(--state-complete)}.pr-verdict-seal[data-tone=warn]{color:var(--state-waiting)}.pr-verdict-seal[data-tone=crit]{color:var(--state-failed)}.pr-verdict-seal svg{flex:none}.pr-rereview-notice{color:var(--text-dim);font-size:12px;line-height:1.6}.pr-severity-meter{align-items:center;gap:2px;display:inline-flex}.pr-severity-meter svg{flex:none}.pr-severity-halo{filter:drop-shadow(0 0 4px var(--state-failed))}.pr-detail-team{container:review-detail/inline-size}.pr-desk-column,.pr-desk-rail{flex-direction:column;gap:20px;min-width:0;display:flex}.pr-will-post,.pr-desk-facts{border:1px solid var(--border-dim);border-radius:var(--radius);background:var(--bg-card);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.pr-will-post-event{color:var(--text-head);font-size:14px}.pr-will-post-detail{color:var(--text-dim);font-size:12px;line-height:1.5}.pr-will-post>.pr-note{margin-top:4px}.pr-fact-list{flex-direction:column;gap:6px;margin:0;font-size:12px;display:flex}.pr-fact{grid-template-columns:7.5em minmax(0,1fr);gap:8px;display:grid}.pr-fact>dt{color:var(--text-muted)}.pr-fact>dd{color:var(--text);overflow-wrap:anywhere;margin:0}.pr-verdict-recommendation{color:var(--text-head);font-size:12px}@container review-detail (width>=1100px){.pr-desk-rail{position:sticky;top:24px}}.pr-about-box,.pr-verdict-box,.pr-progress{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);flex-direction:column;gap:12px;padding:16px;display:flex}.pr-verdict-line{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.pr-verdict-summary{color:var(--text);overflow-wrap:anywhere;font-size:12px;line-height:1.6}.pr-about-goal,.pr-verdict-reason{color:var(--text-head)}.pr-verdict-legacy{color:var(--text-dim);font-size:12px}.pr-verdict-gaps li::marker{color:var(--state-waiting)}.pr-hand-checks{border:1px solid var(--state-waiting);border-radius:var(--radius);background:var(--bg-card);flex-direction:column;gap:8px;padding:12px 16px;font-size:12px;display:flex}.pr-hand-checks li::marker{color:var(--state-waiting)}.pr-verdict-checked{color:var(--text-dim);font-size:12px}.pr-verdict-checked>summary{cursor:pointer;color:var(--text-muted)}.pr-verdict-checked>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pr-verdict-checked>.pr-assessment-list{color:var(--text-dim);margin-top:8px}.pr-note{flex-direction:column;gap:8px;display:flex}.pr-decision-spacer{flex:1}.pr-assessment-title{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.pr-assessment-list{color:var(--text);overflow-wrap:anywhere;flex-direction:column;gap:6px;padding-left:18px;font-size:12px;line-height:1.6;list-style:outside;display:flex}.pr-assessment-list li::marker{color:var(--text-muted)}.pr-posts{flex-direction:column;gap:12px;display:flex}.pr-posts-heading{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.pr-posts-heading h3,.pr-steps h3{padding:0}.pr-posts-heading>span{color:var(--text-muted);font-size:11px}.pr-disclosure{border:1px solid var(--border-dim);border-radius:var(--radius);background:var(--bg-card);min-width:0;padding:12px 14px}.pr-disclosure-summary,.pr-comment-header{cursor:pointer;list-style:none}.pr-disclosure-summary::-webkit-details-marker{display:none}.pr-comment-header::-webkit-details-marker{display:none}.pr-disclosure-summary{align-items:center;gap:10px;min-width:0;font-size:12px;display:flex}.pr-disclosure-summary:before,.pr-comment-header:before{content:"";width:6px;height:6px;color:var(--text-dim);border-bottom:1.5px solid;border-right:1.5px solid;flex:none;transform:rotate(-45deg)}.pr-disclosure[open]>.pr-disclosure-summary:before,.pr-comment-content[open]>.pr-comment-header:before{transform:rotate(45deg)}.pr-disclosure-summary:focus-visible,.pr-comment-header:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.pr-disclosure-label{color:var(--text-head);flex:none;font-weight:700}.pr-disclosure-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);overflow:hidden}.pr-earlier-review-body{flex-direction:column;gap:10px;margin-top:12px;display:flex}.pr-earlier-review-body>.pr-comment-card{background:var(--bg-surface)}.pr-comment-card.pr-comment-card-readonly{grid-template-columns:minmax(0,1fr)}.pr-changed-since{color:var(--text-dim);font-size:12px;line-height:1.6}.pr-changed-since-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.pr-body-input{resize:vertical;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:100%;min-height:84px;color:var(--text-head);font:inherit;padding:10px 12px;font-size:12px;line-height:1.5}.pr-note-input{min-height:52px}.pr-comment-card{border:1px solid var(--border-dim);border-radius:var(--radius);background:var(--bg-card);grid-template-columns:24px minmax(0,1fr);gap:10px;padding:14px 16px;display:grid}.pr-comment-card[data-included=false]{opacity:.55}.pr-comment-card[data-current=true]{border-color:var(--accent)}.pr-comment-card:has(>.pr-post-toggle){grid-template-columns:auto minmax(0,1fr)}.pr-post-toggle{border:1px solid var(--border);border-radius:var(--radius);align-self:start;display:inline-flex;overflow:hidden}.pr-post-choice{min-height:22px;color:var(--text-muted);font:700 11px/1 var(--font-mono);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;padding:0 8px}.pr-post-choice+.pr-post-choice{border-left:1px solid var(--border)}.pr-post-choice[aria-pressed=true]{background:color-mix(in oklab, var(--accent) 16%, transparent);color:var(--accent)}.pr-comment-card[data-included=false] .pr-post-choice[aria-pressed=true]{background:var(--bg-surface);color:var(--text-head)}.pr-comment-content{min-width:0}.pr-comment-header{align-items:center;gap:8px;min-width:0;min-height:22px;font-size:12px;display:flex}.pr-comment-paragraphs{flex-direction:column;gap:10px;padding-top:12px;display:flex}.pr-comment-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);flex:1;overflow:hidden}.pr-comment-content[open]>.pr-comment-header>.pr-comment-preview{visibility:hidden}.pr-comment-location{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:30%;color:var(--text-head);flex:0 auto;overflow:hidden}.pr-comment-paragraph{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.65}.pr-comment-paragraph code,.pr-verdict-box code{border-radius:var(--radius);background:var(--bg-surface);color:var(--text-head);padding:1px 5px;font-size:12px}.pr-citation{color:var(--text-dim);overflow-wrap:anywhere;font-size:11px}.pr-comment-code{border-radius:var(--radius);background:var(--bg-surface);min-width:0;max-width:100%;max-height:24em;color:var(--text);font:12px/1.5 var(--font-mono);margin:0;padding:10px 12px;overflow:auto}.pr-comment-code code{font:inherit}.pr-diff-excerpt{border-radius:var(--radius);background:var(--bg-surface);color:var(--text);font:12px/1.5 var(--font-mono);margin-top:10px;padding:6px 0;overflow-x:auto}.pr-diff-excerpt-number{text-align:right;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex:0 0 3.5em;padding-right:6px}.pr-comment-lead{color:var(--accent)}.pr-comment-lead-question{color:var(--state-done);align-items:center;gap:5px;display:inline-flex}.pr-session-open{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.pr-progress-tracker{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;list-style:none;display:grid}.pr-progress-stage{color:var(--text-muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.pr-progress-bar{background:var(--border-dim);border-radius:2px;height:3px;display:block}.pr-progress-stage[data-state=done]{color:var(--text)}.pr-progress-stage[data-state=done] .pr-progress-bar{background:var(--state-complete)}.pr-progress-stage[data-state=active]{color:var(--text-head);font-weight:700}.pr-progress-stage[data-state=active] .pr-progress-bar{background:var(--accent)}.pr-progress-text{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.pr-steps{flex-direction:column;gap:10px;display:flex}.pr-step-list{flex-direction:column;gap:8px;list-style:none;display:flex}.pr-step{grid-template-columns:6ch 10ch minmax(0,1fr);align-items:baseline;gap:12px;font-size:12px;display:grid}.pr-step-at{color:var(--text-muted);font-variant-numeric:tabular-nums}.pr-step-tool{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pr-step-detail{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pr-attention-detail{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);padding:16px;font-size:12px;line-height:1.6}html[data-layout=phone] .review-queue-phone-bar{z-index:2;border-bottom:1px solid var(--border-dim);background:var(--bg);align-items:center;gap:12px;padding:4px 16px;display:flex;position:sticky;top:0}html[data-layout=phone] .review-queue-position{color:var(--text-dim);font-size:12px}html[data-layout=phone] .pr-changed-since-link{align-items:center;min-height:44px;display:inline-flex}html[data-layout=phone] .pr-post-choice{min-width:44px;min-height:44px}html[data-layout=phone] .pr-comment-header{min-height:44px}html[data-layout=phone] .pr-body-input{font-size:16px}html[data-layout=phone] .pr-progress-tracker{gap:6px}html[data-layout=phone] .pr-progress-stage{font-size:11px}html[data-layout=phone] .pr-step{grid-template-columns:5ch 8ch minmax(0,1fr);gap:6px}}