glimmervoid 0.44.0 → 0.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/bin/glimmervoid.js +8 -8
- package/dist/chunks/{adapters-CSRTLFiZ.js → adapters-7AfJ6yb3.js} +2 -2
- package/dist/chunks/{adapters-DjDtNufj.js → adapters-B_ss_kZh.js} +1 -1
- package/dist/chunks/{agent-api-cli-ep_5T7Hx.js → agent-api-cli-prUJ5ZGN.js} +1 -1
- package/dist/chunks/{agent-api-cli-CVgij_62.js → agent-api-cli-zwuWZlwk.js} +1 -1
- package/dist/chunks/{agent-api-core-DmPT6Hc_.js → agent-api-core-DQwd2ClI.js} +1 -1
- package/dist/chunks/{config-CGRYpcBQ.js → config-DlKkg6IX.js} +16 -1
- package/dist/chunks/{config-store-B1u3WA5t.js → config-store-DIrwF5iQ.js} +51 -7
- package/dist/chunks/config-store-LYSRHNQs.js +1 -0
- package/dist/chunks/{contracts-Fup4hhP9.js → contracts-lxJ0sQEl.js} +48 -15
- package/dist/chunks/{main-DPtmg7Bn.js → main-BCbulgNv.js} +352 -45
- package/dist/chunks/{pair-cli-BwOTWShx.js → pair-cli-B3VRcrHm.js} +2 -2
- package/dist/chunks/{remote-config-DWWnz5dP.js → remote-config-C91HwjWq.js} +1 -1
- package/dist/chunks/{settings-cli-C_owm3rw.js → settings-cli-C9eCc60b.js} +4 -4
- package/dist/chunks/{settings-readout-core-C_JzSeF7.js → settings-readout-core-DK1m5TUq.js} +1 -1
- package/dist/chunks/{ssh-sign-cli-CDjUtDKa.js → ssh-sign-cli-DCnHgHqo.js} +1 -1
- package/dist/client/assets/action-status-DXcC95xv.js +1 -0
- package/dist/client/assets/action-status-DXcC95xv.js.br +0 -0
- package/dist/client/assets/benchmark-panel-Cssmnd3z.js +1 -0
- package/dist/client/assets/benchmark-panel-Cssmnd3z.js.br +0 -0
- package/dist/client/assets/dom-helpers-CcEFPh-F.js +4 -0
- package/dist/client/assets/dom-helpers-CcEFPh-F.js.br +0 -0
- package/dist/client/assets/hooks-panel-Cli8EeBB.js +1 -0
- package/dist/client/assets/hooks-panel-Cli8EeBB.js.br +0 -0
- package/dist/client/assets/index-C3nOrTwM.css +2 -0
- package/dist/client/assets/index-C3nOrTwM.css.br +0 -0
- package/dist/client/assets/index-C8u3ZjM3.js +173 -0
- package/dist/client/assets/index-C8u3ZjM3.js.br +0 -0
- package/dist/client/assets/issues-panel-Bev1wadi.js +1 -0
- package/dist/client/assets/issues-panel-Bev1wadi.js.br +0 -0
- package/dist/client/assets/modal-CvDX5-_2.js +1 -0
- package/dist/client/assets/modal-CvDX5-_2.js.br +0 -0
- package/dist/client/assets/poll-ago-Dj148faJ.js +1 -0
- package/dist/client/assets/poll-ago-Dj148faJ.js.br +0 -0
- package/dist/client/assets/pr-queue-columns-Jleg5z3W.js +1 -0
- package/dist/client/assets/pr-queue-columns-Jleg5z3W.js.br +0 -0
- package/dist/client/assets/radar-panel-Dtp4ZzT3.js +1 -0
- package/dist/client/assets/radar-panel-Dtp4ZzT3.js.br +0 -0
- package/dist/client/assets/review-queue-panel-BQvU_-xl.js +2 -0
- package/dist/client/assets/review-queue-panel-BQvU_-xl.js.br +0 -0
- package/dist/client/assets/settings-panel-DegKCsoZ.js +3 -0
- package/dist/client/assets/settings-panel-DegKCsoZ.js.br +0 -0
- package/dist/client/assets/sprite-bee-DwCVghaj.png +0 -0
- package/dist/client/assets/sprite-cat-DRx9MYM3.png +0 -0
- package/dist/client/assets/sprite-cow-BX3Phf6B.png +0 -0
- package/dist/client/assets/sprite-deer-DwQYMzDV.png +0 -0
- package/dist/client/assets/sprite-dragon-CTIHOQJ3.png +0 -0
- package/dist/client/assets/sprite-fox-BI43RV3z.png +0 -0
- package/dist/client/assets/sprite-frog-CwGTpt-c.png +0 -0
- package/dist/client/assets/sprite-giraffe-DwM3MmKG.png +0 -0
- package/dist/client/assets/sprite-hamster-WN4q03Wr.png +0 -0
- package/dist/client/assets/sprite-hedgehog-CM9XZtPS.png +0 -0
- package/dist/client/assets/sprite-horse-B5CMO0Ue.png +0 -0
- package/dist/client/assets/sprite-owl-BybpXmvP.png +0 -0
- package/dist/client/assets/sprite-panda-DxAHDNb3.png +0 -0
- package/dist/client/assets/sprite-penguin-Du588fg8.png +0 -0
- package/dist/client/assets/sprite-pig-BTuwvuhq.png +0 -0
- package/dist/client/assets/sprite-red-panda-5y9J8xSy.png +0 -0
- package/dist/client/assets/sprite-sheep-vHUTjc5U.png +0 -0
- package/dist/client/assets/sprite-unicorn-CJ3g8Zet.png +0 -0
- package/dist/client/assets/sprite-whale-C3Galw4z.png +0 -0
- package/dist/client/assets/trace-panel-DFqImX92.js +1 -0
- package/dist/client/assets/trace-panel-DFqImX92.js.br +0 -0
- package/dist/client/assets/trail-acacia-5Fr79eBl.png +0 -0
- package/dist/client/assets/trail-acacia-frame2-D83GtoaY.png +0 -0
- package/dist/client/assets/trail-acacia-frame3-BBXTo5I-.png +0 -0
- package/dist/client/assets/trail-acacia-frame4-Xv9ZEsyD.png +0 -0
- package/dist/client/assets/trail-acorns-BOCEZemb.png +0 -0
- package/dist/client/assets/trail-acorns-frame2-BhHnaBud.png +0 -0
- package/dist/client/assets/trail-acorns-frame3-DKXXievy.png +0 -0
- package/dist/client/assets/trail-acorns-frame4-Ch2VXeMA.png +0 -0
- package/dist/client/assets/trail-bamboo-GqKJxCTV.png +0 -0
- package/dist/client/assets/trail-bamboo-frame2-bHacG8f_.png +0 -0
- package/dist/client/assets/trail-bamboo-frame3-CaoctCwJ.png +0 -0
- package/dist/client/assets/trail-bamboo-frame4-CqBfq3ff.png +0 -0
- package/dist/client/assets/trail-bubbles-frame2-eNpysXFZ.png +0 -0
- package/dist/client/assets/trail-bubbles-frame3-CWwqOJLM.png +0 -0
- package/dist/client/assets/trail-bubbles-frame4-Dj9TUXsV.png +0 -0
- package/dist/client/assets/trail-bubbles-pZ5FzCq7.png +0 -0
- package/dist/client/assets/trail-clouds-D18nQlSc.png +0 -0
- package/dist/client/assets/trail-clouds-frame2-W-_5l_i2.png +0 -0
- package/dist/client/assets/trail-clouds-frame3-CGQnOEBI.png +0 -0
- package/dist/client/assets/trail-clouds-frame4-CvlkFN6d.png +0 -0
- package/dist/client/assets/trail-clover-Ci7hUdO0.png +0 -0
- package/dist/client/assets/trail-clover-frame2-Z6NRhQ3U.png +0 -0
- package/dist/client/assets/trail-clover-frame3-0srIKU22.png +0 -0
- package/dist/client/assets/trail-clover-frame4-BO9UjM_-.png +0 -0
- package/dist/client/assets/trail-daisies-DVEPmnHq.png +0 -0
- package/dist/client/assets/trail-daisies-frame2-C_3-bnO5.png +0 -0
- package/dist/client/assets/trail-daisies-frame3-CR7GzXzm.png +0 -0
- package/dist/client/assets/trail-daisies-frame4-CKQDb8cR.png +0 -0
- package/dist/client/assets/trail-dust-Cf48D_ja.png +0 -0
- package/dist/client/assets/trail-dust-frame2-DAisulyH.png +0 -0
- package/dist/client/assets/trail-dust-frame3-BLi-DUzo.png +0 -0
- package/dist/client/assets/trail-dust-frame4-DGXo_Q2f.png +0 -0
- package/dist/client/assets/trail-embers-c-vlGDDo.png +0 -0
- package/dist/client/assets/trail-embers-frame2-wCK1DXpW.png +0 -0
- package/dist/client/assets/trail-embers-frame3-C5QS1ZRt.png +0 -0
- package/dist/client/assets/trail-embers-frame4-DA-O9bwZ.png +0 -0
- package/dist/client/assets/trail-hearts-DQwkXjr0.png +0 -0
- package/dist/client/assets/trail-hearts-frame2-DbyTUdl2.png +0 -0
- package/dist/client/assets/trail-hearts-frame3-XHaluU_W.png +0 -0
- package/dist/client/assets/trail-hearts-frame4-BA0W9inL.png +0 -0
- package/dist/client/assets/trail-honey-BC7CvXOJ.png +0 -0
- package/dist/client/assets/trail-honey-frame2-C4tRQx2J.png +0 -0
- package/dist/client/assets/trail-honey-frame3-V4pdDsZr.png +0 -0
- package/dist/client/assets/trail-honey-frame4-BqfUOIZk.png +0 -0
- package/dist/client/assets/trail-leaves-Di39skyY.png +0 -0
- package/dist/client/assets/trail-leaves-frame2-Dibep-05.png +0 -0
- package/dist/client/assets/trail-leaves-frame3-ByxojOFR.png +0 -0
- package/dist/client/assets/trail-leaves-frame4-CQGuAWJE.png +0 -0
- package/dist/client/assets/trail-logomarks-eIe8WIQx.png +0 -0
- package/dist/client/assets/trail-logomarks-frame2-Dw7X4i4F.png +0 -0
- package/dist/client/assets/trail-logomarks-frame3-CwoFgR8k.png +0 -0
- package/dist/client/assets/trail-logomarks-frame4-B7tFxRZO.png +0 -0
- package/dist/client/assets/trail-paws-C4cgGpTt.png +0 -0
- package/dist/client/assets/trail-paws-frame2-D8gNCPFb.png +0 -0
- package/dist/client/assets/trail-paws-frame3-BiEhbm80.png +0 -0
- package/dist/client/assets/trail-paws-frame4-BLLXXSyZ.png +0 -0
- package/dist/client/assets/trail-rainbow-BavE03WZ.png +0 -0
- package/dist/client/assets/trail-rainbow-frame2-BGZ7ZuQD.png +0 -0
- package/dist/client/assets/trail-rainbow-frame3-CY3FOgWe.png +0 -0
- package/dist/client/assets/trail-rainbow-frame4-DPWH6W3T.png +0 -0
- package/dist/client/assets/trail-seeds-BVCYzFRY.png +0 -0
- package/dist/client/assets/trail-seeds-frame2-CgopUUJh.png +0 -0
- package/dist/client/assets/trail-seeds-frame3-D2rIJzox.png +0 -0
- package/dist/client/assets/trail-seeds-frame4-WbnqCHlJ.png +0 -0
- package/dist/client/assets/trail-snow-BmXmGNtx.png +0 -0
- package/dist/client/assets/trail-snow-frame2-BQC5GITf.png +0 -0
- package/dist/client/assets/trail-snow-frame3-1GIpb4hr.png +0 -0
- package/dist/client/assets/trail-snow-frame4-BB4B66p3.png +0 -0
- package/dist/client/assets/trail-sparkles-D3Ivb6ob.png +0 -0
- package/dist/client/assets/trail-sparkles-frame2-DR03q4T0.png +0 -0
- package/dist/client/assets/trail-sparkles-frame3-DtdWWuVM.png +0 -0
- package/dist/client/assets/trail-sparkles-frame4-ea8pBjiu.png +0 -0
- package/dist/client/assets/trail-stars-EgySiFbH.png +0 -0
- package/dist/client/assets/trail-stars-frame2-BOXk5jcm.png +0 -0
- package/dist/client/assets/trail-stars-frame3-DJ2AW0RA.png +0 -0
- package/dist/client/assets/trail-stars-frame4-BcSJ1AVu.png +0 -0
- package/dist/client/assets/ui-prefs-CavQQH-s.js +1 -0
- package/dist/client/assets/ui-prefs-CavQQH-s.js.br +0 -0
- package/dist/client/assets/usage-panel-CEJqXYIA.js +1 -0
- package/dist/client/assets/usage-panel-CEJqXYIA.js.br +0 -0
- package/dist/client/assets/visions-panel-Dm3iKlhv.js +1 -0
- package/dist/client/assets/visions-panel-Dm3iKlhv.js.br +0 -0
- package/dist/client/assets/xterm-BdQ2Kshh.js +79 -0
- package/dist/client/assets/xterm-BdQ2Kshh.js.br +0 -0
- package/dist/client/assets/zod-BRLv4KqJ.js.br +0 -0
- package/dist/client/fonts/CommitMono-OFL.txt.br +0 -0
- package/dist/client/fonts/commit-mono-400-regular-core.woff2 +0 -0
- package/dist/client/fonts/commit-mono-700-regular-core.woff2 +0 -0
- package/dist/client/index.html +10 -5
- package/dist/client/index.html.br +0 -0
- package/dist/client/octicons-LICENSE.txt.br +3 -0
- package/dist/server/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/config-store-D4vUBcUX.js +0 -1
- package/dist/client/assets/index-BedqDfKJ.js +0 -177
- package/dist/client/assets/index-o9J4_Orv.css +0 -2
- package/dist/client/assets/xterm-kR64YvZ-.js +0 -79
- package/dist/client/fonts/commit-mono-400-italic.woff2 +0 -0
- package/dist/client/fonts/commit-mono-700-italic.woff2 +0 -0
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Jt as e,_ as t,c as n,o as r,rn as i,u as a,un as o}from"./dom-helpers-CcEFPh-F.js";import{m as s,p as c}from"./poll-ago-Dj148faJ.js";import{a as l,u}from"./action-status-DXcC95xv.js";import{Es as d,Ts as f,Yo as p,_t as m,dt as h,ft as ee,gt as g,ht as _,mt as v,pt as y,vt as b,yt as te}from"./index-C8u3ZjM3.js";import{i as ne,n as x,r as re}from"./pr-queue-columns-Jleg5z3W.js";function ie(e){return e?e.configured?`No open issues.`:e.reason??`Loading issues.`:`Loading issues.`}function S(e,t){return t===`all`||e.sources.includes(t)}function C(e){return{all:e.length,me:e.filter(e=>S(e,`me`)).length,team:e.filter(e=>S(e,`team`)).length,project:e.filter(e=>S(e,`project`)).length}}function ae(e,t,n){let r=t.query.trim().toLowerCase().split(/\s+/).filter(Boolean),i=e.filter(e=>{if(!S(e,t.scope)||t.repo&&e.repo!==t.repo||t.label&&!e.labels.includes(t.label)||t.hasSession&&(!e.sessionId||!n.has(e.sessionId))||t.hasPr&&e.pullRequests.length===0||t.isUnassignedOnly&&e.assignees.length>0)return!1;let i=[e.title,`#${e.number}`,e.repo,e.author,...e.labels,...e.assignees,...e.teams].join(` `).toLowerCase();return r.every(e=>i.includes(e))}),a=e=>Date.parse(e)||0,o=e=>t.sort===`comments`?e.comments:t.sort===`created`?a(e.createdAt):a(e.updatedAt);return i.sort((e,t)=>o(t)-o(e)||e.key.localeCompare(t.key))}function oe(e){let t=new Map;for(let n of e){let e=t.get(n.repo)??[];e.push(n),t.set(n.repo,e)}return t}function se(e){return{repos:[...new Set(e.map(e=>e.repo))].sort(),labels:[...new Set(e.flatMap(e=>e.labels))].sort()}}function ce(e){let t=[e.query.trim()&&`search "${e.query.trim()}"`,e.repo,e.label,e.hasSession&&`has session`,e.hasPr&&`has PR`,e.isUnassignedOnly&&`unassigned`].filter(Boolean);return t.length===0?``:`Filtered by ${t.join(`, `)}.`}function w(e,t){let n=typeof e==`number`?e:Date.parse(e);if(!Number.isFinite(n))return`unknown`;let r=Math.round(Math.max(0,t-n)/6e4);if(r<1)return`now`;if(r<60)return`${r}m`;let i=Math.round(r/60);return i<48?`${i}h`:`${Math.round(i/24)}d`}function T(e,t){let n=w(e,t);return n===`now`?`just now`:n===`unknown`?`at an unknown time`:`${n} ago`}function E(t,n){let r=e(t.url),i=r?n(r.toLowerCase()):void 0;return i?o(i):t.state}var D=[{id:`all`,label:`All`},{id:`me`,label:`Mine`},{id:`team`,label:`Team`},{id:`project`,label:`Projects`}],O={scope:`all`,repo:``,label:``,sort:`updated`,query:``,hasSession:!1,hasPr:!1,isUnassignedOnly:!1},k=null,A=null,j=null,M=null,N=null,P=null,F=null,I=null,L=!1,R=null;function z(e){return e.sessionId?s.get(e.sessionId):void 0}function B(e,n,a){let o=z(n),s=o?.currentState??i.DORMANT,c=t(s,o?.awaitingBackgroundTasks),l=o?`Session: ${c.label}`:`No session yet`,d=a?c.label:``;if(e.dataset.state===s&&e.title===l&&e.dataset.icon===c.icon&&e.textContent===d)return;e.dataset.state=s,e.dataset.icon=c.icon,e.title=l,e.setAttribute(`aria-label`,l);let f=r(`span`,`issues-state-icon`);u(f,c.icon),e.replaceChildren(f),a&&e.append(d)}function V(e,t=!1){let n=r(`span`,t?`issues-state`:`pr-queue-glyph issues-state`);return B(n,e,t),n}function H(e){let t=z(e);return t?c(t):`none yet`}function U(e){z(e)||v(e)}function W(e){let t=r(`button`,`pr-queue-row issue-row`);t.type=`button`,t.dataset.issueKey=e.key,t.setAttribute(`aria-current`,String(e.key===y().selectedKey));let n=r(`span`,`pr-queue-top`);n.append(r(`span`,`pr-queue-ref`,`#${e.number}`),r(`span`,`pr-queue-title`,e.title||`Untitled issue`));let i=r(`span`,`pr-queue-bottom`);e.sources.includes(`me`)&&i.append(r(`span`,`issues-why`,`you`)),i.append(r(`span`,`issues-row-labels`,e.labels.join(`, `)));for(let t of e.pullRequests){let e=E(t,f),n=r(`span`,`issues-row-pr`,`PR #${t.number} ${e}`);n.dataset.prState=e,i.append(n)}let a=r(`span`,`pr-queue-elapsed`,w(e.updatedAt,Date.now()));return a.dataset.issueAge=e.updatedAt,i.append(a),t.append(V(e),n,i),t.addEventListener(`click`,()=>{g(`select`),b(e.key),k&&(k.dataset.detailOpen=`true`),m(e),X(),M&&(M.scrollTop=0)}),t}function G(e,t,n){let i=r(`dd`);i.append(...n),e.append(r(`dt`,null,t),i)}function K(e){let t=r(`footer`,`pr-footer issues-detail-footer`),i=z(e);if(i&&e.sessionId){let n=e.sessionId,i=r(`button`,`pr-action`,`Go to session`);i.type=`button`,i.addEventListener(`click`,()=>{g(`go-to-session`),p(n)}),t.append(i)}if(e.projectId&&!i){let n=r(`button`,`pr-action`,`Open session`);n.type=`button`,n.disabled=h(e),n.addEventListener(`click`,()=>U(e)),t.append(n)}t.append(n(`pr-action pr-action-ghost`,`View on GitHub`,e.url));let a=_(e),o=e.projectId?``:`Add a project for ${e.repo} in Settings to open sessions from here.`,s=r(`span`,`pr-action-status issue-open-status`);return s.setAttribute(`role`,`status`),l(s,a?.tone??null,a?.text??o),t.append(s),t}function q(e,t){let n=r(`span`,null,T(e,t));return n.dataset.issueAgo=e,n}function le(){let e=M?.querySelector(`.issues-detail`),{selectedKey:t,issueByKey:n}=y(),r=t?n.get(t):void 0;if(!e||!r)return;let i=e.querySelector(`.issues-facts .issues-state`);i&&B(i,r,!0);let a=e.querySelector(`.issues-session-name`),o=H(r);a&&a.textContent!==o&&(a.textContent=o);let s=String(!!z(r));e.dataset.hasLiveSession!==s&&(e.dataset.hasLiveSession=s,e.querySelector(`.issues-detail-footer`)?.replaceWith(K(r)))}function J(){if(!M)return;let{latestStatus:e,selectedKey:t}=y(),i=e?.issues.find(e=>e.key===t);if(!i){M.replaceChildren(r(`p`,`pr-empty`,`Pick an issue from the queue.`));return}let a=r(`article`,`pr-detail issues-detail`),o=r(`button`,`pr-action pr-action-ghost issues-back`,`Back to issues`);o.type=`button`,o.addEventListener(`click`,()=>{g(`back`),k&&(k.dataset.detailOpen=`false`),[...j?.querySelectorAll(`[data-issue-key]`)??[]].find(e=>e.dataset.issueKey===y().selectedKey)?.focus({preventScroll:!0})});let s=r(`header`,`pr-detail-heading`),c=r(`div`,`pr-detail-title`);c.append(n(`pr-link`,`${i.repo}#${i.number}`,i.url),r(`h2`,null,i.title||`Untitled issue`));let l=Date.now(),u=r(`div`,`pr-detail-meta`),d=r(`span`,null,`opened by ${i.author||`unknown`} `),p=r(`span`,null,`updated `);d.append(q(i.createdAt,l)),p.append(q(i.updatedAt,l)),u.append(d,p,r(`span`,null,`${i.comments} comments`)),i.sources.includes(`me`)&&u.append(r(`span`,`issues-why`,`assigned to you`));for(let e of i.teams)u.append(r(`span`,null,`mentions ${e}`));s.append(c,u);let m=r(`dl`,`issues-facts`);G(m,`Repository`,[i.repo]),G(m,`Labels`,[i.labels.join(`, `)||`none`]),G(m,`Assignees`,[i.assignees.join(`, `)||`unassigned`]),a.dataset.hasLiveSession=String(!!z(i)),G(m,`Session`,[V(i,!0),r(`span`,`issues-session-name`,H(i))]);let h=i.pullRequests.flatMap(e=>{let t=E(e,f),i=r(`span`,`issues-pr-state`,t);return i.dataset.prState=t,[i,n(`issues-inline-link`,`#${e.number} ${e.title}`,e.url)]});G(m,`Pull request`,h.length>0?h:[`none linked`]);let _=r(`section`,`issues-body-section`),v=r(`div`,`issue-body`,ee(i));v.setAttribute(`role`,`status`),_.append(r(`h3`,`pr-section-heading`,`Description`),v),a.append(o,s,m,_,K(i)),M.replaceChildren(a)}function Y(e,t,n,i){if(!e)return;let a=i&&!n.includes(i)?[...n,i].sort():n;e.replaceChildren(...[``,...a].map(e=>{let n=r(`option`,null,e||t);return n.value=e,n})),e.value=i}function X(){L=!1,Z(),J()}function Z(){if(!k||!j||!A)return;let{latestStatus:e,selectedKey:t}=y(),n=e?.issues??[],i=C(n);for(let e of D){A.querySelector(`[data-scope="${e.id}"]`)?.setAttribute(`aria-selected`,String(e.id===O.scope));let t=A.querySelector(`[data-scope-count="${e.id}"]`);t&&(t.textContent=String(i[e.id]))}let a=se(n);Y(P,`All repos`,a.repos,O.repo),Y(F,`All labels`,a.labels,O.label),N&&(N.textContent=ce(O));let o=ae(n,O,new Set(s.keys())),c=document.activeElement instanceof HTMLElement&&j.contains(document.activeElement)?document.activeElement.dataset.issueKey:null,l=[...oe(o)].map(([e,t])=>{let n=r(`section`,`pr-queue-section`),i=r(`h3`,`pr-section-heading issues-repo-heading`,e);return t.some(e=>e.projectId)||i.append(r(`span`,`issues-repo-note`,`view only`)),i.append(r(`span`,`issues-repo-count`,String(t.length))),n.append(i,...t.map(W)),n});j.replaceChildren(...l),o.length===0&&j.append(r(`p`,`pr-empty`,n.length>0?`No open issues match these filters. Clear the search or pick All.`:ie(e))),c&&[...j.querySelectorAll(`[data-issue-key]`)].find(e=>e.dataset.issueKey===c)?.focus({preventScroll:!0}),t&&!n.some(e=>e.key===t)&&(b(null),k.dataset.detailOpen=`false`),R?.update(e),Q()}function ue(){let e=r(`div`,`issues-filters`),t=r(`div`,`issues-search-row`),n=r(`input`,`issues-search`);n.type=`search`,n.placeholder=`Search issues`,n.autocomplete=`off`,n.setAttribute(`aria-label`,`Search issues`),n.addEventListener(`input`,()=>{O.query=n.value,X()}),n.addEventListener(`change`,()=>g(`search`));let i=r(`button`,`pr-action pr-action-ghost`,`Filters`);i.type=`button`,i.setAttribute(`aria-expanded`,`false`),i.setAttribute(`aria-controls`,`issues-filters-panel`);let a=r(`div`,`issues-filters-panel`);a.id=`issues-filters-panel`,a.hidden=!0,i.addEventListener(`click`,()=>{g(`filters-toggle`),a.hidden=!a.hidden,i.setAttribute(`aria-expanded`,String(!a.hidden))}),t.append(n,i);let o=r(`div`,`issues-filter-row`);function s(e){let t=r(`select`,`issues-field`);return t.setAttribute(`aria-label`,e),o.append(t),t}P=s(`Repository`),P.addEventListener(`change`,()=>{g(`filter`),O.repo=P?.value??``,X()}),F=s(`Label`),F.addEventListener(`change`,()=>{g(`filter`),O.label=F?.value??``,X()});let c=s(`Sort`);for(let[e,t]of[[`updated`,`Updated`],[`created`,`Newest`],[`comments`,`Most discussed`]]){let n=r(`option`,null,t);n.value=e??``,c.append(n)}c.addEventListener(`change`,()=>{g(`filter`),O.sort=c.value,X()});let l=r(`div`,`issues-filter-row`);for(let[e,t]of[[`hasSession`,`Has session`],[`hasPr`,`Has PR`],[`isUnassignedOnly`,`Unassigned`]]){let n=r(`label`,`issues-toggle`),i=r(`input`);i.type=`checkbox`,i.addEventListener(`change`,()=>{g(`filter`),O[e]=i.checked,X()}),n.append(i,` ${t}`),l.append(n)}return N=r(`span`,`issues-filter-summary`),N.setAttribute(`role`,`status`),a.append(o,l),e.append(t,N,a),e}function Q(){if(!k||k.closest(`[hidden]`)||document.hidden)return;let e=Date.now(),t=y().latestStatus?.lastSyncAt;I&&(I.textContent=t?`Synced ${T(t,e)}.`:`Not synced yet.`);for(let t of k.querySelectorAll(`[data-issue-age]`))t.textContent=w(t.dataset.issueAge??``,e);for(let t of k.querySelectorAll(`[data-issue-ago]`))t.textContent=T(t.dataset.issueAgo??``,e)}function de(e){if(k)return;k=r(`div`,`issues-content`),k.dataset.detailOpen=`false`,e.append(k),R=ne(`issues`,k);let t=r(`div`,`pr-columns issues-columns`),n=r(`section`,`pr-queue-pane`);n.setAttribute(`aria-label`,`Issue queue`),A=r(`div`,`pr-scope-tabs issues-scope-tabs`),A.setAttribute(`role`,`tablist`),A.setAttribute(`aria-label`,`Issue scope`);for(let e of D){let t=r(`span`,`issues-scope`);t.setAttribute(`role`,`presentation`);let n=r(`button`,`pr-scope-tab`,e.label);n.type=`button`,n.dataset.scope=e.id,n.setAttribute(`role`,`tab`),n.addEventListener(`click`,()=>{g(`scope`),O.scope=e.id,X()});let i=r(`span`,`issues-scope-count`);i.dataset.scopeCount=e.id,t.append(n,i),A.append(t)}j=r(`nav`,`pr-queue`),j.setAttribute(`aria-label`,`Issues`);let i=x(R.control);I=r(`span`,`issues-sync`),I.setAttribute(`role`,`status`),i.prepend(I),i.append(R.notice),n.append(re(A),ue(),j,i),M=r(`section`,`pr-detail-host`),M.setAttribute(`aria-label`,`Issue detail`),t.append(n,M),k.append(t),window.setInterval(Q,3e4),te(me),d(X),X()}function fe(){L&&$(),Q()}function $(){if(a(k))L=!0;else if(L=!1,le(),O.hasSession)Z();else for(let e of j?.querySelectorAll(`[data-issue-key]`)??[]){let t=y().issueByKey.get(e.dataset.issueKey??``),n=e.querySelector(`.issues-state`);t&&n&&B(n,t,!1)}}var pe={status:X,detail:J,"session-state":$};function me(e){pe[e]()}var he={mount:de,refresh:fe};export{he as view};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./dom-helpers-CcEFPh-F.js";function t(e){return[...document.querySelectorAll(`.dialog-overlay`)].at(-1)===e}function n({dialogClass:e=`dialog`,closeOnBackdrop:n=!0,onEscape:r}={}){let i=document.activeElement,a=document.createElement(`div`);a.className=`dialog-overlay`;let o=document.createElement(`div`);o.className=e,a.appendChild(o),document.body.appendChild(a);function s(e){e.key===`Escape`&&(r?t(a)&&r():c())}document.addEventListener(`keydown`,s);function c(){a.remove(),document.removeEventListener(`keydown`,s),i instanceof HTMLElement&&i.focus()}return n&&a.addEventListener(`click`,e=>{e.target===a&&c()}),{overlay:a,dialog:o,close:c}}function r(e,t){e.setAttribute(`role`,`dialog`),e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-labelledby`,t),o(e)}function i({title:t,dialogClass:i=`dialog`,cancelLabel:a=`Cancel`}){let{overlay:o,dialog:s,close:c}=n({dialogClass:i}),l=`dialog-title-${Math.random().toString(36).slice(2)}`,u=e(`h3`,`dialog-title`,t);u.id=l;let d=e(`div`,`dialog-actions`),f=e(`button`,`btn-dialog btn-dialog-cancel`,a);return d.append(f),s.append(u),r(s,l),{overlay:o,dialog:s,close:c,titleEl:u,actions:d,btnCancel:f}}function a({title:t,message:n,confirmLabel:r=`Confirm`,danger:a=!1,onConfirm:o}){let{dialog:s,close:c,actions:l,btnCancel:u}=i({title:t}),d=e(`p`,`dialog-message`,n),f=e(`button`,a?`btn-dialog btn-dialog-confirm btn-dialog-danger`:`btn-dialog btn-dialog-confirm`,r);l.append(f),s.append(d,l),u.addEventListener(`click`,c),f.addEventListener(`click`,()=>{c(),o?.()}),requestAnimationFrame(()=>u.focus())}function o(e){e.addEventListener(`keydown`,t=>{if(t.key!==`Tab`)return;let n=[...e.querySelectorAll(`button, input, select, textarea, [tabindex]:not([tabindex="-1"])`)];if(n.length===0)return;let r=n[0],i=n[n.length-1];t.shiftKey&&document.activeElement===r?(t.preventDefault(),i.focus()):!t.shiftKey&&document.activeElement===i&&(t.preventDefault(),r.focus())})}export{a as i,i as n,n as r,r as t};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Et as e,Tt as t,rn as n}from"./dom-helpers-CcEFPh-F.js";var r=new Map;function i(e){return e.card?.dataset.session||e.nameEl?.textContent||``}function a(e){return typeof e==`string`?e:String(e)}function o(e){return typeof e==`string`?r.get(e):void 0}var s=document.getElementById(`sessions-container`),c=320,l=8e3,u=new Set;function d(e){u.add(e)}var f=(e,t)=>{for(let n of u)n(e,t)},p=window.matchMedia?.(`(prefers-reduced-motion: reduce)`);function m(e){p?.matches||document.hidden||e?.animate&&e.animate([{transform:`scale(1)`,opacity:.65},{transform:`scale(1.35)`,opacity:1,offset:.3},{transform:`scale(1)`,opacity:.9}],{duration:300,easing:`cubic-bezier(0.22, 1, 0.36, 1)`})}function h(e){if(!e||e.currentState!==n.RUNNING)return;let t=performance.now();e._lastOutputAt=t,!(t-(e._activityGate||0)<c)&&(e._activityGate=t,e._activity===`quiet`&&(e._activity=`active`,f(e,`flag`)),f(e,`beat`))}function g(e){if(!e||e.currentState!==n.RUNNING)return;let t=performance.now()-(e._lastOutputAt||0)>=l?`quiet`:`active`;e._activity!==t&&(e._activity=t,f(e,`flag`))}function _(e,t){e&&(t&&(e._lastOutputAt=performance.now(),e._activityGate=0,e._activity=`active`),t||(e._activity=void 0),f(e,`flag`))}var v=new Set([n.RUNNING,n.WAITING,n.STARTING,n.INITIALIZING]),y=e=>v.has(e);function b(e){return y(e.currentState)?t(Date.now()-(e.stateSince||Date.now()),{rounding:`floor`,showsHours:!0}):``}var x=new Set;function S(e){return x.add(e),()=>x.delete(e)}function C(){for(let[,e]of r)g(e);for(let e of x)try{e()}catch{}}setInterval(()=>{document.hidden||C()},1e3),document.addEventListener(`visibilitychange`,()=>{document.hidden||C()});function w(t){return e(Number(t)||0,{rounding:`round`,wording:`compact`,suffix:``,justNowBelowSeconds:0})}function T(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?`never`:`${w(Date.now()-e)} ago`}var E=e=>`polled ${T(e)}`;function D(e){let t=[],n=[],r=null,i=e=>{let t=e.format(e.ts);e.el.textContent!==t&&(e.el.textContent=t)},a=()=>{let r=e();if(r&&!r.closest(`[hidden]`)){for(let e of t)i(e);for(let e of n)e()}};return{track(e,n,r=E){let a={el:e,ts:n,format:r};i(a),t.push(a)},onTick(e){n.push(e)},reset(){t=[],n=[]},ensure(){r||=S(a)}}}export{b as a,m as c,o as d,a as f,S as i,_ as l,r as m,T as n,d as o,i as p,w as r,h as s,D as t,s as u};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,a as i,c as a,i as o,o as s,p as c,rn as l,u}from"./dom-helpers-CcEFPh-F.js";import{m as d,n as f,p}from"./poll-ago-Dj148faJ.js";import{G as m,S as h,W as g,l as _}from"./ui-prefs-CavQQH-s.js";import{a as v,s as y,t as b,v as x,y as S}from"./action-status-DXcC95xv.js";import{i as C}from"./modal-CvDX5-_2.js";import{$o as ee,Cr as te,Qo as w,Qt as T,Sr as E,Xt as D,Zt as O,_r as k,ar as ne,br as re,cr as ie,dr as ae,es as A,fr as oe,gr as se,hr as ce,lr as le,or as ue,pr as de,sr as fe,ts as pe,ur as me,vr as j,wr as he,xr as ge,yr as M}from"./index-C8u3ZjM3.js";var N=null,P=null,F=O().status,I=null,L=new Map,R=new Map,z=null,B={label:`Keep mergeable`,pendingKeys:new Set,errorsByKey:new Map,controlState:(e,t,n,r)=>ie(e,t,n,r,f(e.keepMergeableAttempt?.at)),isFeatureEnabled:ue,save:async(e,t)=>{let r=await n(`my-pr-keep-mergeable`,{repo:e.repo,number:e.number,keepMergeable:t},{timeoutMs:b});if(r.type!==`my-pr-keep-mergeable-result`||r.key!==e.key)throw Error(`Unexpected keep mergeable reply.`);return r.ok?null:r.error??`Could not save Keep mergeable.`}},_e={label:`Merge when ready`,pendingKeys:new Set,errorsByKey:new Map,controlState:oe,isFeatureEnabled:fe,save:async(e,t)=>{let r=await n(`my-pr-merge-when-ready`,{repo:e.repo,number:e.number,mergeWhenReady:t},{timeoutMs:b});if(r.type!==`my-pr-merge-when-ready-result`||r.key!==e.key)throw Error(`Unexpected merge when ready reply.`);return r.ok?null:r.error??`Could not save Merge when ready.`}},V=6e4,H=6e4,ve=`The server did not answer within ${V/1e3} s. Check GitHub before trying again.`,ye=`${e} Check GitHub before trying again.`;function be(e,t){let r=typeof e==`string`?[e]:e,i=s(`div`,`reviews-refresh-control`),a=s(`button`,`pr-action pr-action-ghost reviews-refresh-button`,`Refresh`);a.type=`button`;let o=s(`span`,`reviews-refresh-status`);o.setAttribute(`role`,`status`);let c=s(`p`,`my-pr-error reviews-retry-notice`);i.append(a,o);let l=null,d=!1,f=``,p=null;function m(){let e=Date.now(),n=E(l,e),r=ge(l,e);c.textContent=n?[n,r].filter(Boolean).join(` `):``,c.hidden!==!l?.error&&(c.hidden=!l?.error),o.textContent=te(l,d,f)||(l?.error?``:r)||``,o.hidden!==!o.textContent&&(o.hidden=!o.textContent);let i=c.isConnected&&!u(t)&&!document.hidden&&c.getClientRects().length>0&&he(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,a.disabled=d||!!e?.isRefreshing||!e?.configured,m()}a.addEventListener(`click`,async()=>{if(!d){d=!0,f=``,h(l);try{let e=await Promise.all(r.map(e=>n(`github-polling-refresh`,{lane:e},{timeoutMs:H}))),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=y(e,H)}finally{d=!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:i,notice:c,update:h}}function U(e,t,n,r){L.set(e,{head:t,phase:n,text:r}),J()}function xe(n){if(R.has(n.key))return;let i=t(`my-pr-merge`);if(!r({type:`my-pr-merge`,requestId:i,repo:n.repo,number:n.number,headRefOid:n.headRefOid})){U(n.key,n.headRefOid,`failed`,e);return}let a=window.setTimeout(()=>{R.delete(n.key),U(n.key,n.headRefOid,`failed`,ve)},V);R.set(n.key,{requestId:i,head:n.headRefOid,timer:a}),L.set(n.key,{head:n.headRefOid,phase:`pending`,text:``}),J()}function Se(e){let t=ae(e,L.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`),v(i,t.tone,t.statusText),r.addEventListener(`click`,()=>{C({title:`Merge pull request`,message:me(e),confirmLabel:`Merge`,onConfirm:()=>xe(e)})}),n.append(r,i),n}function Ce(e,t){let n=t.controlState(e,t.pendingKeys.has(e.key),t.errorsByKey.get(e.key),t.isFeatureEnabled(F));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 v(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),J();try{let r=await t.save(e,!n.isPressed);r&&t.errorsByKey.set(e.key,r)}catch(n){t.errorsByKey.set(e.key,y(n,b))}finally{t.pendingKeys.delete(e.key),J()}}}),r.append(i,a),r}function W(e,{hasGlyph:t}){let n=s(`span`,`my-pr-stage`);return n.dataset.tone=M(e.stage),t&&n.append(A(k(e.stage),M(e.stage))),n.append(j(e.stage)),n}function we(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=o({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 Te(e){let t=s(`div`,`pr-detail-heading`),n=s(`div`,`pr-detail-title`);n.append(a(`pr-link`,e.key,e.url),s(`h2`,null,e.title));let r=s(`p`,`pr-detail-meta`),i=e.state===`MERGED`?`Merged ${f(Date.parse(e.mergedAt??``))}`:`Updated ${f(Date.parse(e.updatedAt))}`;return r.append(s(`span`,`pr-queue-owner`,`Yours`),W(e,{hasGlyph:!0}),s(`span`,null,`Opened ${f(Date.parse(e.createdAt))}`),s(`span`,null,i)),t.append(n,r),t}function Ee(e){let t=ce(e,F?.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(we(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(A(n.icon,n.tone),s(`span`,`pr-readiness-label`,n.label),i),r.append(t)}return n.append(r),n}function G(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(a(`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(A(e.waiting.icon,e.waiting.tone),e.waiting.text),n.append(t)}let i=s(`p`,`my-pr-thread-excerpt`);i.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}, ${f(o)}`:e.replySummary);t.append(n,i,c),r.append(t)}return n.append(r),n}function De(e){let t=se(e);if(t.length===0)return null;let n=s(`section`,`pr-readiness-section`);n.append(s(`h3`,`pr-section-heading`,`Reviews`));let r=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} ${f(n)}`:e.text,o=s(`span`,`my-pr-reviewer`);o.append(i([{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(A(e.icon,e.tone),o,s(`span`,`pr-readiness-value`,a)),r.append(t)}return n.append(r),n}function Oe(e){let t=[B,_e].map(t=>Ce(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 K(e){if(!N)return;if(!e){N.replaceChildren(s(`p`,`pr-empty`,ne(F)));return}let t=re(e,F?.viewer??null),n=s(`article`,`pr-detail`),r=[Ee(e),G(`Threads waiting on you`,t.filter(e=>e.isWaitingOnYou)),G(`Other open threads`,t.filter(e=>!e.isWaitingOnYou)),De(e),Oe(e),Se(e)];n.append(Te(e),...r.filter(e=>e!==null)),N.replaceChildren(n)}function q(e){let t=e.dataset.sessionId??``,n=d.get(t),r=c(e,`.session-row-name`);n&&(r.textContent=p(n)||t);let i={glyph:c(e,`.session-row-glyph`),label:c(e,`.session-row-label`)},a=ee(e,i,n?.currentState||l.DORMANT,n?.awaitingBackgroundTasks,n?.pendingPromptKind),o=`Focus session ${r.textContent}, ${a}`;e.title=o,e.setAttribute(`aria-label`,o)}function ke(e){let{row:t,refs:n}=w(`button`,`my-pr-session-pill`);return t.type=`button`,t.dataset.sessionId=e.id,n.name.textContent=e.title,q(t),t.addEventListener(`click`,()=>z?.(e.id)),t}function Ae(e){if(!e||e.length===0)return null;let t=s(`div`,`my-pr-session-focus`);return t.append(...e.map(ke)),t}function je(){for(let e of document.querySelectorAll(`.my-pr-session-pill`))q(e)}function Me(e,t,n){let r=s(`button`,`pr-queue-row`);r.type=`button`,r.dataset.prKey=e.key,r.title=`${e.key}: ${j(e.stage)}`;let i=s(`span`,`pr-queue-glyph`);i.append(A(k(e.stage),M(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`),W(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 ${f(Date.parse(c))}`:`opened ${f(Date.parse(e.createdAt))}`;o.append(s(`span`,`pr-queue-elapsed`,l));let u=le(e,B.isFeatureEnabled(F),f(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 p=Ae(n);return p&&d.append(p),{group:d,row:r}}function Ne(e){I=e,K(O().prs.find(e=>e.key===I))}function J(){let{prs:e,status:t}=O();F=t,I&&K(e.find(e=>e.key===I)),P?.onChange()}function Pe(e,t){return z=t?.openTerminal??null,P=e,N||(N=s(`div`,`pr-detail-mine`),T(Y),J(),N)}function Y(e){switch(e.kind){case`prs`:J();return;case`session-state`:je();return;case`merge-result`:Ie(e.message);return;case`connection`:Fe(e.isConnected)}}function Fe(e){if(!e){for(let[e,t]of R)window.clearTimeout(t.timer),L.set(e,{head:t.head,phase:`failed`,text:ye});R.size!==0&&(R.clear(),J())}}function Ie(e){let t=de(e);if(!t)return;let n=R.get(t.key);if(!n||n.requestId!==t.requestId)return;if(window.clearTimeout(n.timer),R.delete(t.key),!t.ok){U(t.key,n.head,`failed`,t.error||`The merge failed.`);return}if(U(t.key,n.head,t.kind??`unconfirmed`,``),t.kind!==`merged`)return;let r=O().prs.find(e=>e.key===t.key);r&&D([r])}var Le={minPx:220,maxPx:720},Re=16,X=new Set,ze=0;function Z(e){let t=h();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 Be(){for(let e of X)e.isConnected?Z(e):X.delete(e)}function Q(e,t){let n=s(`div`,`pr-queue-head`);return e&&n.append(e),t&&n.append(t),n}function $(e){let t=s(`div`,`pr-queue-foot`);return e&&t.append(e),t}function Ve({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-${++ze}`,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=x(16,16);c.append(S(`rect`,{x:`1.5`,y:`2`,width:`13`,height:`12`,rx:`2`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`})),c.append(S(`path`,{d:`M5.5 2V14`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`}));let l=S(`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`,()=>{g(!h()),Be()});let u=$(null);i.append(Q(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),Z(r),X.add(r),pe({resizer:d,column:i,widthHost:r,widthProperty:`--pr-queue-width`,bounds:Le,keyStepPx:Re,getStoredWidth:_,setStoredWidth:m}),{columns:r,queue:a,foot:u,detail:f}}export{Me as a,be as i,$ as n,Pe as o,Q as r,Ne as s,Ve as t};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,D as t,K as n,Q as r,X as i,Z as a,at as o,bt as s,c,ct as l,dt as u,et as d,f,ft as p,gt as m,ht as ee,it as te,lt as h,mt as ne,n as g,nt as _,o as v,pt as y,q as b,r as x,rt as re,st as S,tt as ie,u as C}from"./dom-helpers-CcEFPh-F.js";import{n as w,r as T,t as E}from"./poll-ago-Dj148faJ.js";import{a as D,s as O,t as k}from"./action-status-DXcC95xv.js";import{i as ae}from"./modal-CvDX5-_2.js";import{bs as A,ct as j,ds as oe,lt as se,ns as ce,rs as le,st as ue,ut as de,ys as fe}from"./index-C8u3ZjM3.js";var pe=4e3;function me({render:e,holdMs:t=pe,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 M=null,N=`http://www.w3.org/2000/svg`,P=me({render:Q}),F=null,I=new Map,L=new WeakMap,he=`this issue`,R=E(()=>M),ge={spiking:`spiking`,regressed:`regressed`,worsened:`worsened`,new:`new`,quiet:`quiet`},z=[{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}],_e=z.map(e=>e.track).join(` `),ve=z.filter(e=>!e.isMagnitude).map(e=>e.phoneTrack).join(` `),ye=z.findIndex(e=>e.startsActionCluster)+1,B=3e4;function V(e){let t=v(`div`,e);return t.style.setProperty(`--radar-issue-grid`,_e),t.style.setProperty(`--radar-issue-grid-phone`,ve),t.style.setProperty(`--radar-issue-actions-start`,String(ye)),t}function H(e,t){let n=v(`span`,`radar-issue-magnitudes`),r=!1;for(let i of z){let a=t(i);i.isMagnitude?(r||=(e.append(n),!0),n.append(a)):e.append(a)}}function U(e){return Number.isFinite(e)?String(e):`0`}function be(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?``:`elapsed ${T(Date.now()-e)}`}function W(e){return typeof e?.issueId==`string`?e.issueId:``}function G(e,t){return[String(e??``),String(t??``)].join(`::`)}function xe(e,t,n){let r=I.get(G(e,t));if(!r||!r.copy.isConnected)return!1;let i=_(n);return i?(r.summary||(r.summary=v(`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 K(e,t,n){let i=W(e);if(!i)return;F?.dialog.close();let a=fe({issueTitle:String(e.title||i),projectLabel:n,onOpenReport:()=>J(e)});F={projectId:String(t??``),issueId:i,dialog:a},a.update(r(e))}function q(){if(!F)return;if(!F.dialog.isOpen()){F=null;return}let e=n(j().latest,F.projectId,F.issueId);e&&F.dialog.update(r(e))}function J(e){let n=W(e);n&&t(`get-radar-report`,{issueId:n},{timeoutMs:k}).then(t=>{t.ok?t.found?A({issueId:n,issueTitle:String(e.title??``),format:String(t.format??``),content:String(t.content||``)}):A({issueId:n,issueTitle:String(e.title??``),message:String(t.message||`Report not found`)}):A({issueId:n,issueTitle:String(e.title??``),error:String(t.error||`Could not read report`)})}).catch(t=>{A({issueId:n,issueTitle:String(e.title??``),error:O(t,k)})})}function Y(){let e=v(`div`,`radar-issue-actions`),n=v(`span`,`radar-issue-action-status`);n.setAttribute(`role`,`status`),e.append(n);let r=[],i=null,a=()=>{i?.remove(),i=null},o=t=>{a(),i=t,e.append(t)},s=e=>{for(let t of r)t.disabled=e};return{addButton:(t,i,a)=>{let o=v(`button`,`radar-issue-action`,t);return o.type=`button`,o.title=i,o.addEventListener(`click`,e=>{e.stopPropagation(),a()}),r.push(o),e.insertBefore(o,n),o},request:(e,r,i,o,c,l=null)=>{P.begin(e),s(!0),a(),D(n,`busy`,o);let u=(t,r)=>{s(!1),a(),D(n,t,r),P.settle(e)};t(r,i,{timeoutMs:B}).then(e=>{e.ok?(u(`ok`,c(e)),l&&l(e)):u(`error`,String(e.error||`Request failed`))}).catch(e=>u(`error`,O(e,B)))},showFollowUp:o,wrap:e}}function Se(e){let t=v(`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(),Ve(e)}),t}function Ce(e,t,n){let{addButton:r,request:i,showFollowUp:a,wrap:o}=Y(),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`,()=>K(e,t,n)),!e.inFlight&&e.verdict&&W(e)&&r(`Open report`,`Open the investigation report for this issue`,()=>J(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(Se(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`,()=>{ae({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 X(e){return ce()?he:e}function we(e){let t=L.get(e);t&&(e.title=t())}function Te(){if(M)for(let e of M.querySelectorAll(`.radar-issue-reportable`))we(e)}le(Te);function Ee(e,t,n){e.classList.add(`radar-issue-reportable`),L.set(e,t),we(e),e.addEventListener(`click`,e=>{e.target instanceof Element&&(e.target.closest(`a, button`)||n())})}function De(e,t,n){let r=v(`div`,`radar-issue`);r.dataset.severity=u(e.change);let i=v(`span`,`radar-stripe`);i.setAttribute(`aria-hidden`,`true`);let a=v(`span`,`radar-change`,ge[e.change??``]||String(e.change||`unknown`)),o=c(`radar-issue-title`,String(e.title||`Untitled issue`),e.url,String(e.title||``)),l=v(`span`,`radar-metric`);l.append(v(`span`,`radar-metric-value`,U(e.occurrences)),v(`span`,`radar-metric-label`,`occ`));let f=v(`span`,`radar-metric`);f.append(v(`span`,`radar-metric-value`,U(e.users)),v(`span`,`radar-metric-label`,`users`));let p=te(e.history),m=ne(p,64,16),h=m?document.createElementNS(N,`svg`):null;if(h){h.classList.add(`radar-sparkline`),h.setAttribute(`viewBox`,`0 0 64 16`),h.setAttribute(`width`,`64`),h.setAttribute(`height`,`16`),h.setAttribute(`role`,`img`),h.setAttribute(`focusable`,`false`);let e=document.createElementNS(N,`title`);e.textContent=ee(p);let t=document.createElementNS(N,`polyline`);t.setAttribute(`points`,m),h.append(e,t)}let g=_(e),y=v(`span`,`radar-issue-copy`);y.append(o);let b=null;g&&(b=v(`span`,`radar-issue-summary`),b.textContent=g,y.append(b)),I.set(G(t,e.issueId),{copy:y,summary:b});let x=v(`span`,`radar-issue-meta`),S=d(e);if(S!==null){let e=v(`span`,`radar-issue-seen`);e.title=new Date(S).toLocaleString(),R.track(e,S,w),x.append(e)}let C=ie(e);C&&x.append(v(`span`,`radar-issue-status`,C));let T=String(e.title||e.issueId);if(e.inFlight){let i=v(`span`,`radar-verdict`,`investigating`);i.dataset.verdict=`INVESTIGATING`,x.append(i);let a=typeof e.startedAt==`number`?e.startedAt:null;if(a!==null&&Number.isFinite(a)&&a>0){let e=v(`span`,`radar-issue-elapsed`);R.track(e,a,be),x.append(e)}W(e)&&Ee(r,()=>`Watch the investigation of ${X(T)}`,()=>K(e,t,n))}if(!e.inFlight&&e.verdict){let t=v(`span`,`radar-verdict`,s(e.verdict));t.dataset.verdict=e.verdict,x.append(t),W(e)&&Ee(r,()=>`View investigation report for ${X(T)}`,()=>J(e))}x.childElementCount>0&&y.append(x);let E=v(`span`,`radar-issue-trend`);h&&E.append(h);let D=re(p);if(D){let e=D.direction===`up`?`+`:D.direction===`down`?`-`:`=`,t=v(`span`,`radar-delta`,`${e}${D.percent}%`);t.dataset.direction=D.direction,E.append(t)}let O={stripe:i,change:a,copy:y,occurrences:l,users:f,trend:E};return H(r,e=>O[e.columnId]),W(e)&&r.append(Ce(e,t,n)),r}var Z=(e,t,n)=>x(`radar`,e,t,n);function Oe(e){return e.error?`poll failed: ${e.error}`:e.staleMs>0?`stale ${T(e.staleMs)}`:``}function ke(e,t,{showHost:n,nameTag:r,nameClass:i,hostClass:a}){let o=v(r,i,S(t));o.title=String(t.name||``),e.append(o);let s=n?p(t.host):``;s&&e.append(v(`span`,a,s))}function Ae(){let e=V(`radar-column-heads`);for(let t of z){if(!t.headText){e.append(v(`span`));continue}let n=v(`span`,`radar-column-head`,t.headText);n.dataset.column=t.columnId,e.append(n)}return e}function je(e,t){let n=e.project,r=v(`div`,`radar-project`),i=y(n.issues),a=m(i),o=v(`div`,`radar-project-head`);ke(o,n,{showHost:t,nameTag:`h3`,nameClass:`radar-project-name`,hostClass:`radar-project-host`}),r.append(o);let s=v(`div`,`radar-project-summary`);s.append(Z(a.active===1?`active issue`:`active issues`,U(a.active))),s.append(Z(`spiking`,U(a.spiking),a.spiking>0?`crit`:null)),s.append(Z(`needs you`,U(a.needsHuman),a.needsHuman>0?`warn`:null));let c=Oe(e);if(c){let t=v(`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(Ae());let l=V(`radar-issues`);for(let e of i)l.append(De(e,n.projectId,S(n)));return r.append(l),r}function Me(e,t){let n=e.project,r=v(`div`,`radar-quiet-row`),i=v(`span`,`radar-quiet-dot`);return i.setAttribute(`aria-hidden`,`true`),r.append(i),ke(r,n,{showHost:t,nameTag:`span`,nameClass:`radar-quiet-name`,hostClass:`radar-quiet-host`}),r.append(v(`span`,`radar-quiet-count`,`0 issues`)),r}var Ne=(e,t)=>g(`radar`,e,t);function Pe(){let e=v(`div`,`radar-issue`);return e.dataset.skeleton=``,H(e,e=>v(`span`,e.cellClass)),e}function Fe(){let e=V(`radar-issues`);e.setAttribute(`aria-busy`,`true`),e.setAttribute(`aria-label`,`Loading issues`);for(let t=0;t<5;t+=1)e.append(Pe());return e}function Ie(e){return e?.configured===!1?typeof e.reason==`string`&&e.reason.trim()!==``?`Fix it in`:`Switch it on in`:``}function Le(e,t=`ready`){let n=Ne(`Errors`);if(t===`pending`)return n.append(Fe()),n;if(t===`placeholder`||e.length===0){let e=v(`p`,`radar-unconfigured`,h(j().latest)),t=oe(`lanes-posthog`,`posthog-enabled`,`PostHog settings`),r=Ie(j().latest);return e.append(document.createTextNode(r?` ${r} `:` `),t),n.append(e),n}let r=v(`div`,`radar-global-tick`),a=Number(j().latest?.intervalMinutes);R.track(r,j().latest?.ts,e=>{let t=`polled ${w(e)}`;return!Number.isFinite(a)||a<=0?t:`${t}, every ${a}m`}),n.append(r);let s=a>0?a*6e4:0,{loud:c,quiet:l}=o(e,Date.now(),{intervalMs:s}),u=i(e);for(let e of c)n.append(je(e,u));if(l.length===0)return n;let d=v(`div`,`radar-quiet`);for(let e of l)d.append(Me(e,u));return n.append(d),n}function Re(e){let{addButton:t,request:n,wrap:r}=Y();return e.issueId&&t(`Open report`,`Open the investigation report for this issue`,()=>{J({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`,()=>ue(e.id))}),r}function ze(e){let t=v(`div`,`radar-investigation`),n=v(`span`,`radar-verdict`,s(e.verdict));n.dataset.verdict=e.verdict;let r=c(`radar-issue-title`,e.title,e.url),i=v(`span`,`radar-issue-copy`);if(i.append(r),e.summaryLine){let t=v(`span`,`radar-issue-summary`);t.textContent=e.summaryLine,i.append(t)}if(e.prUrl){let t=v(`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=v(`span`,`radar-verdict`,`fix`);e.dataset.mode=`fix`,t.append(e)}if(t.append(i),e.projectLabel){let n=v(`span`,`radar-investigation-project`);n.textContent=e.projectLabel,t.append(n)}if(e.at>0){let n=v(`span`,`radar-investigation-time`,w(e.at));n.title=new Date(e.at).toLocaleString(),t.append(n)}return t.append(Re(e)),t}function Be(e){let t=Ne(`Investigations`,`completed, not yet archived`),n=v(`div`,`radar-investigations`);for(let t of e)n.append(ze(t));return t.append(n),t}function Ve(e){j().traceOpener?.(e)}function Q(){if(!M)return;M.textContent=``,I.clear(),R.reset();let{latest:e,archivedLocally:t}=j(),n=f(e),r=a(e,t),i=l(e,n.length);M.append(Le(n,i)),r.length>0&&M.append(Be(r))}function $(){P.request()}function He(t){F?.dialog.isOpen()&&e(F,t)&&F.dialog.update(b(t))}function Ue(e){if(e.kind===`status`)$(),q();else if(e.kind===`investigation-activity`){q();let t=n(j().latest,e.projectId,e.issueId);if(e.wasInFlight&&xe(e.projectId,e.issueId,t))return;$()}else e.isPatched?(q(),$()):He(e.frame)}function We(e){if(M)return;let t=v(`div`,`radar-content`);e.appendChild(t),M=t,se(()=>!C(M)),de(Ue),R.ensure(),Q()}var Ge={mount:We};export{Ge as view};
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,E as n,Y as r,a as i,c as a,i as o,o as s,u as c}from"./dom-helpers-CcEFPh-F.js";import{n as l,t as u}from"./poll-ago-Dj148faJ.js";import{a as d,v as f,y as p}from"./action-status-DXcC95xv.js";import{$n as m,$t as h,An as g,At as ee,Bn as te,Bt as ne,Cn as _,Dn as v,Dt as re,En as ie,Et as ae,Fn as oe,Ft as se,Gn as ce,Gt as le,Hn as ue,Ht as de,In as fe,It as pe,Ji as me,Jn as he,Jt as ge,Kn as _e,Kt as y,Ln as ve,Lt as ye,Mn as be,Mt as xe,Nn as Se,Nt as Ce,On as we,Ot as Te,Pn as Ee,Pt as De,Qn as Oe,Rn as ke,Rt as Ae,Sn as je,Tn as Me,Tr as Ne,Tt as Pe,Un as Fe,Ut as Ie,Vn as b,Vt as Le,Wn as Re,Wt as ze,Xn as Be,Yi as Ve,Yn as He,Yt as Ue,Zn as We,Zt as Ge,_n as Ke,an as qe,ar as Je,bn as Ye,cn as Xe,cs as Ze,dn as Qe,ds as $e,en as x,er as et,es as tt,fn as nt,gn as rt,hn as it,in as at,ir as ot,jn as st,jt as ct,kn as lt,kt as ut,ln as dt,mn as ft,mr as pt,nn as mt,nr as ht,ns as gt,on as _t,pn as vt,qn as yt,qt as bt,rn as xt,rr as St,rs as Ct,sn as S,tn as wt,tr as Tt,un as Et,vn as Dt,wn as Ot,xn as kt,yn as At,zn as jt,zt as Mt}from"./index-C8u3ZjM3.js";import{a as Nt,i as Pt,o as Ft,s as It,t as Lt}from"./pr-queue-columns-Jleg5z3W.js";function Rt({label:e,scopes:t,selected:n,onSelect:r}){let i=document.createElement(`div`);i.className=`pr-scope-tabs`,i.setAttribute(`role`,`tablist`),i.setAttribute(`aria-label`,e);let a=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}),o=e=>{for(let[n,r]of a.entries()){let i=t[n].id===e;r.setAttribute(`aria-selected`,String(i)),r.tabIndex=i?0:-1}},s=(e,n)=>{let i=t[(e+t.length)%t.length];o(i.id),r(i.id),n&&a[(e+t.length)%t.length].focus()};for(let[e,t]of a.entries())t.addEventListener(`click`,()=>s(e,!1)),t.addEventListener(`keydown`,t=>{t.key===`ArrowLeft`?(t.preventDefault(),s(e-1,!0)):t.key===`ArrowRight`&&(t.preventDefault(),s(e+1,!0))});return i.append(...a),o(n),{element:i,select:o}}var zt=12e4,Bt=`The server did not answer within ${zt/1e3} s. Check GitHub before trying again.`,Vt=`${e} Check GitHub before trying again.`,Ht=`M4.5 0.5L8.5 5.5L4.5 10.5L0.5 5.5Z`,Ut=`GitHub review`,C=x(),w=null,Wt=null,T=null,E=null,Gt=null,D=null,O=null,k=null,A=null,Kt=null,j=new Map,qt=u(()=>w),Jt=u(()=>w),M=u(()=>w),Yt=new WeakMap,N=new Map,P=new Map,F=new Map;function Xt(e){let t=Be(e),n=s(`span`,`pr-severity-meter`);if(n.setAttribute(`role`,`img`),n.setAttribute(`aria-label`,`${e.toLowerCase()} severity`),n.style.color=`var(${t.colorToken})`,e===`CRITICAL`){let e=f(14,17);e.classList.add(`pr-severity-halo`),e.setAttribute(`viewBox`,`0 0 9 11`),e.append(p(`path`,{d:Ht,fill:`currentColor`})),n.append(e)}for(let e=0;e<3;e+=1){let r=f(9,11),i=e<t.filledCount;r.append(p(`path`,{d:Ht,fill:i?`currentColor`:`none`,stroke:i?`currentColor`:`var(--border-hover)`,"stroke-width":`1`})),n.append(r)}return n}function Zt({verdict:e}){let t=s(`span`,`pr-verdict-seal`);t.dataset.tone=Tt(e);let n=f(20,20),r=et(e);return n.append(p(`circle`,{cx:`10`,cy:`10`,r:`8.5`,fill:r===`cross`?`currentColor`:`none`,stroke:`currentColor`,"stroke-width":`1.5`})),r===`check`&&n.append(p(`path`,{d:`M6 10.5L8.7 13L14 7.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.8`,"stroke-linecap":`round`,"stroke-linejoin":`round`})),r===`dot`&&n.append(p(`circle`,{cx:`10`,cy:`10`,r:`2.4`,fill:`currentColor`})),r===`bar`&&n.append(p(`path`,{d:`M6 10H14`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`})),r===`cross`&&n.append(p(`path`,{d:`M7 7L13 13M13 7L7 13`,stroke:`var(--bg)`,"stroke-width":`1.8`,"stroke-linecap":`round`})),t.append(n,s(`span`,null,m(e))),t}function Qt(){let e=f(16,16);return e.append(p(`rect`,{x:`1`,y:`1`,width:`14`,height:`14`,rx:`2`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`})),e.append(p(`path`,{d:`M6 6.2C6 4.9 7 4.2 8 4.2C9.1 4.2 10 5 10 6C10 7.4 8 7.4 8 9.2`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.3`,"stroke-linecap":`round`})),e.append(p(`circle`,{cx:`8`,cy:`11.6`,r:`0.9`,fill:`currentColor`})),e}function $t(e){return a(`pr-link`,b(e.repo,e.number),e.url)}function en(e){let t=typeof e==`string`?Date.parse(e):e;return typeof t!=`number`||!Number.isFinite(t)||t<=0?null:t}function I(e,t){let n=en(t);if(n===null)return null;let r=s(`span`,null,`${e}${e?` `:``}${l(n)}`);return r.dataset.ageAt=String(n),r.dataset.ageLabel=e,r}function L(e){let t=Yt.get(e);t&&(e.title=`${t()}${e.dataset.unseen?`
|
|
2
|
+
New ready review`:``}`,e.setAttribute(`aria-label`,e.title))}function tn(){M.reset(),nn(w)}Ct(tn);function nn(e){if(e){for(let t of e.querySelectorAll(`.pr-queue-row`))Yt.has(t)&&(L(t),M.onTick(()=>L(t)));for(let t of e.querySelectorAll(`.pr-rereview-notice`)){let e=C?.drafts.find(e=>e.key===t.dataset.reviewKey),n=e?ht(e):null;if(!n)continue;let r=()=>{t.textContent=St(n,R(n.submittedAt))};r(),M.onTick(r)}for(let t of e.querySelectorAll(`[data-review-title]`)){let e=t.dataset.reviewTitle??``,n=t.dataset.ageAt===void 0?null:Number(t.dataset.ageAt),r=()=>{let r=n===null?null:l(n),i=gt()?Ot(Ut,r):Ot(e,r);t.title=i,t.setAttribute(`aria-label`,i)};r(),M.onTick(r)}for(let t of e.querySelectorAll(`[data-age-at]`)){if(t.dataset.reviewTitle!==void 0)continue;let e=Number(t.dataset.ageAt),n=t.dataset.ageLabel??``;M.track(t,e,()=>`${n}${n?` `:``}${l(e)}`)}}}function rn(e,t,n,r=!0){let a=_(e,{isViewerShown:r});if(a.length===0)return null;let o=s(`span`,t),c=a.map(e=>({login:e.login,tone:e.tone,title:Ot(gt()?Ut:e.text,R(e.submittedAt))})),l=i(c,n);for(let[e,t]of a.entries()){let n=l.children[e];if(!(n instanceof HTMLElement))continue;n.dataset.reviewTitle=t.text;let r=en(t.submittedAt);r!==null&&(n.dataset.ageAt=String(r))}return o.append(l),o}function R(e){let t=en(e);return t===null?null:l(t)}function z(e,t,n){let r=s(`span`,n);return r.append(o({login:e,cssPx:t}),s(`span`,`pr-author-login`,e)),r}function an(e,t){return`${b(e.repo,e.number)}\n${ue(e,t).meaning}`}function on(e,t,n){let r=s(`button`,`pr-queue-row pr-queue-row-quiet`);r.type=`button`,r.dataset.reviewKey=e.key;let i=`reviewedHead`in e?ht(e):null;Yt.set(r,()=>gt()?an(e,t):Re(e,t,{opened:R(e.prCreatedAt),reviewed:`reviewedHead`in e?R(e.reviewedAt):null,posted:`reviewedHead`in e?R(e.postedAt):null,viewerApproval:R(i?.submittedAt),githubReviews:`reviewedHead`in e?_(e,{isViewerShown:t!==`posted`}).map(e=>R(e.submittedAt)):[]})),L(r);let a=cn(e,n);if(t===`inReview`){let t=e,n=s(`span`,`pr-queue-elapsed`);qt.track(n,t.startedAt,()=>lt(t,Date.now())),a.append(n)}if(t===`queued`){let t=I(``,e.prCreatedAt);t&&(t.classList.add(`pr-queue-elapsed`),a.append(t))}if(t!==`inReview`&&t!==`queued`){let t=e,n=I(``,t.reviewedAt)??I(``,t.prCreatedAt);n&&(n.classList.add(`pr-queue-elapsed`),a.append(n))}if(t===`discarded`)return r.classList.add(`pr-queue-row-compact`),r.append(a),r;r.classList.remove(`pr-queue-row-quiet`);let o=ue(e,t),c=s(`span`,`pr-queue-glyph`);c.append(tt(o.icon,o.tone));let l=s(`span`,`pr-queue-bottom`);if(l.append(sn(o),z(e.author,16,`pr-queue-author`)),e.requestSource===`direct`){let e=s(`span`,`pr-queue-direct`,`@`);e.title=`Requested from you directly`,l.append(e)}t===`inReview`&&l.append(s(`span`,`pr-phase-label`,ve(e.phase))),r.append(c,a,l);let u=t===`inReview`||t===`queued`?null:rn(e,`pr-queue-reviewers`,16,t!==`posted`);return u&&l.append(u),r}function sn(e){let t=s(`span`,`my-pr-stage pr-queue-state`,e.meaning);return t.dataset.tone=e.tone,t}function cn(e,t){let n=s(`span`,`pr-queue-top`);return n.append(s(`strong`,`pr-queue-ref`,Fe(e.repo,e.number,t)),s(`strong`,`pr-queue-ref-compact`,Fe(e.repo,e.number,!1)),s(`span`,`pr-queue-title`,e.title)),n}function ln({title:e,detail:t}){let n=s(`section`,`pr-caught-up`);n.setAttribute(`role`,`status`);let r=s(`strong`,`pr-caught-up-title`);return r.append(tt(`ready`,`ok`),s(`span`,null,e)),n.append(r,s(`p`,`pr-caught-up-detail`,t)),n}function B(e){Gt=e,D&&(D.hidden=e===null,d(D,e?.tone??null,e?.text??``))}var un=`Open in session`,dn=`Preparing the branch and session.`;function fn(e,t,n){for(let r of document.querySelectorAll(`.pr-session-open-status`)){if(r.dataset.reviewKey!==e)continue;d(r,n,t);let i=r.parentElement?.querySelector(`.pr-session-open-button`);i&&(i.disabled=!1)}}function pn(e,t){let n=j.get(e);n&&window.clearTimeout(n.timer),j.set(e,{requestId:null,timer:0,text:t,tone:`error`}),fn(e,t,`error`)}function mn(r,i,a){if(j.get(r)?.requestId)return;let o=t(`open-team-review-session`);if(!n({type:`open-team-review-session`,requestId:o,key:r})){d(a,`error`,e);return}let s=window.setTimeout(()=>pn(r,`The server did not answer within ${zt/1e3} s.`),zt);j.set(r,{requestId:o,timer:s,text:dn,tone:`busy`}),i.disabled=!0,d(a,`busy`,dn)}function hn(e){let t=s(`div`,`pr-session-open`),n=s(`button`,`pr-action pr-session-open-button`,un);n.type=`button`;let r=j.get(e.key);n.disabled=!!r?.requestId;let i=s(`span`,`pr-action-status pr-session-open-status`,r?.text??``);return i.dataset.reviewKey=e.key,r&&d(i,r.tone,r.text),i.setAttribute(`role`,`status`),i.setAttribute(`aria-live`,`polite`),n.addEventListener(`click`,()=>mn(e.key,n,i)),t.append(n,i),t}function gn(e){let t=s(`div`,`pr-detail-heading`);t.dataset.signature=Dt(e);let n=s(`div`,`pr-detail-title`);n.append($t(e),s(`h2`,null,e.title));let r=s(`div`,`pr-detail-meta`);r.append(z(e.author,20,`pr-detail-author`));let i=s(`span`,null,At(e));i.title=He(e),r.append(i);let a=I(`Opened`,e.prCreatedAt);if(a&&r.append(a),`reviewedHead`in e){let t=I(`Reviewed`,e.reviewedAt);t&&r.append(t);let n=I(`Posted`,e.postedAt);n&&r.append(n)}let o=`reviewedHead`in e?rn(e,`pr-detail-github`,20):null;if(o&&r.append(o),t.append(n,r,hn(e)),`reviewedHead`in e){let n=ot(e.viewerThreads);if(n){let r=s(`p`,`pr-viewer-threads`,n);ie(e)&&(r.dataset.state=`all-resolved`),t.append(r)}}let c=`reviewedHead`in e?ht(e):null;if(c){let n=s(`p`,`pr-rereview-notice`,St(c,R(c.submittedAt)));n.dataset.reviewKey=e.key,t.append(n)}return t}function _n(e,t){let n=e.querySelector(`:scope > .pr-detail-heading`);return!n||n.dataset.signature===Dt(t)||n.replaceWith(gn(t)),e}function vn(e){return`${JSON.stringify(e.threads)}:${e.liveHead}:${e.status}:${e.reviewedHead}:${e.error??``}:${e.postedEvent??``}:${e.earlierReview?.head??``}`}function yn(e,t){for(let n of t){if(n.kind===`text`){e.append(document.createTextNode(n.text));continue}if(n.kind===`code`){e.append(s(`code`,null,n.text));continue}let t=s(`span`,`pr-citation`,n.text);t.title=n.text,e.append(t)}return e}function V(e,t){return yn(e,oe(t))}function bn(e){let t=s(`ul`,`pr-assessment-list`);for(let n of e)t.append(V(s(`li`,null),n));return t}function xn(e){let t=e.assessment?.handChecks??[];if(t.length===0)return[];let n=s(`section`,`pr-hand-checks`);n.setAttribute(`aria-label`,`Check by hand`),n.append(s(`h3`,`pr-assessment-title`,`Check by hand`));let r=t.map(e=>e.paths.length===0?e.text:`${e.text}: ${e.paths.map(e=>`\`${e}\``).join(`, `)}`);return n.append(bn(r)),[n]}function Sn(e){let t=at(e.assessment);if(t.length===0)return[];let n=s(`section`,`pr-about-box`);n.setAttribute(`aria-label`,`About this PR`),n.append(s(`h3`,`pr-assessment-title`,`About this PR`));for(let e of t){let t=e.kind===`goal`?`pr-verdict-summary pr-about-goal`:`pr-verdict-summary`;n.append(V(s(`p`,t),e.text))}return[n]}function Cn(e){let t=s(`section`,`pr-verdict-box`);t.setAttribute(`aria-label`,`Verdict`);let n=s(`div`,`pr-verdict-line`);n.append(Zt(e)),t.append(n);let{assessment:r}=e;if(!r)return t.append(s(`p`,`pr-verdict-legacy`,wt)),e.summary.trim()&&t.append(V(s(`p`,`pr-verdict-summary pr-verdict-reason`),e.summary)),t;if(t.append(V(s(`p`,`pr-verdict-summary pr-verdict-reason`),e.summary)),r.gaps.length>0){let e=bn(r.gaps);e.classList.add(`pr-verdict-gaps`),e.setAttribute(`aria-label`,`Not covered`),t.append(e)}if(r.checked.length===0)return t;let i=s(`details`,`pr-verdict-checked`);return i.append(s(`summary`,null,`What it checked (${r.checked.length})`),bn(r.checked)),t.append(i),t}function wn(e){if(e.kind===`code`){let t=s(`pre`,`pr-comment-code`),n=s(`code`,null);return n.textContent=e.code,t.append(n),t}let t=s(`p`,`pr-comment-paragraph`);if(e.lead){let n=s(`strong`,`pr-comment-lead pr-comment-lead-${e.leadKind}`);e.leadKind===`question`&&n.append(Qt()),n.append(e.lead),t.append(n,` `)}return yn(t,e.segments)}function Tn(e){return{body:e.body,severity:rt(e),location:We(e),locationTitle:it(e)}}function En(e){let t=e.location??`Not on a changed line, posts in the review body`;return{body:e.body,severity:e.severity,location:e.location?.split(`/`).at(-1)??`general`,locationTitle:t}}function Dn({body:e,severity:t,location:n,locationTitle:r}){let i=s(`details`,`pr-comment-content`),a=s(`summary`,`pr-comment-header`),o=fe(e);t&&a.append(Xt(t));let c=s(`span`,`pr-comment-location`,n);c.title=r,a.append(c),a.append(s(`span`,`pr-comment-preview`,yt(o.paragraphs))),i.append(a);let l=s(`div`,`pr-comment-paragraphs`);for(let e of o.paragraphs)l.append(wn(e));return i.append(l),i.open=t===`HIGH`||t===`CRITICAL`,i}function On(e,t){let n=s(`details`,`pr-disclosure pr-earlier-review`),r=s(`summary`,`pr-disclosure-summary`);r.append(s(`span`,`pr-disclosure-label`,`Earlier review`),s(`span`,`pr-disclosure-preview`,kt(e)));let i=s(`div`,`pr-earlier-review-body`),a=s(`div`,`pr-verdict-line`);a.append(Zt(e)),i.append(a),e.summary.trim()&&i.append(V(s(`p`,`pr-verdict-summary`),e.summary));for(let t of e.comments){let e=s(`article`,`pr-comment-card pr-comment-card-readonly`);e.append(Dn(Tn(t))),i.append(e)}return n.append(r,i),n.open=t,n}function kn(e){let t=vt(e);if(!t)return[];let n=s(`p`,`pr-changed-since`,t);return n.append(` `,a(`pr-changed-since-link`,`Compare changes`,ft(e),`Open the commits since this review on GitHub`)),[n]}function An(e){let t=C?.drafts.find(t=>t.key===e.key)?.earlierReview??null;if(!t)return k=null,[];if(k?.key===e.key&&k.head===t.head)return[k.element];let n=On(t,!1);return k={key:e.key,head:t.head,element:n},[n]}function jn(e,t,n,r){let i=s(`article`,`pr-comment-card`),a=s(`input`,`pr-comment-checkbox`);return a.type=`checkbox`,a.checked=t.has(n),a.setAttribute(`aria-label`,`Post finding on ${e.locationTitle}`),a.addEventListener(`change`,()=>{a.checked&&t.add(n),a.checked||t.delete(n),i.dataset.included=String(a.checked),r()}),i.dataset.included=String(a.checked),i.append(a,Dn(e)),i}var Mn=`Your comments are on GitHub. Approve adds an approval without posting them again.`;function Nn(e,r,i,a,o=_t(i.action)){let s=A?.captureTurnOrder()??[];B(null);let c=t(`team-review-action`);if(!n({type:`team-review-action`,requestId:c,...i}))return!1;let l=window.setTimeout(()=>{F.delete(r.key),a(!1,Bt)},zt);return F.set(r.key,{requestId:c,action:i.action,outcomeText:o,origin:e,capturedOrder:s,pullRequest:b(r.repo,r.number),timer:l,settle:a}),!0}function Pn(t){let n=s(`footer`,`pr-footer`),r=Fn(`discard`,()=>{F.has(t.key)||(r.disabled=!0,d(a,`busy`,S(`discard`)),!Nn(`other`,t,Qe(t.key),o)&&o(!1,e))}),i=F.has(t.key);r.disabled=i;let a=s(`span`,`pr-action-status`);i&&d(a,`busy`,S(`discard`)),a.setAttribute(`role`,`status`),a.setAttribute(`aria-live`,`polite`);let o=(e,n)=>{r.disabled=e,d(a,e?`ok`:`error`,n),e||B({text:`${b(t.repo,t.number)}: ${n}`,tone:`error`})};return n.append(r,a),n}function Fn(e,t,n=!1){let r=s(`button`,n?`pr-action pr-action-ghost`:`pr-action`,qe(e));return r.type=`button`,r.dataset.action=e,r.addEventListener(`click`,()=>t(e)),r}function In(e,t,n=``){let r=Ke(e),i=s(`footer`,`pr-footer pr-decision-bar`),a=s(`span`,`pr-action-status`,n);a.setAttribute(`role`,`status`),a.setAttribute(`aria-live`,`polite`);let o=r.primary.map(e=>Fn(e,t)),c=r.secondary.map(e=>Fn(e,t,!0));return i.append(...o,s(`span`,`pr-decision-spacer`),...c,a),{footer:i,status:a,buttons:[...o,...c]}}var Ln=0;function Rn(e){let t=s(`section`,`pr-note`);Ln+=1;let n=s(`textarea`,`pr-body-input pr-note-input`);n.id=`pr-note-${Ln}`,n.rows=2,n.spellcheck=!0,n.placeholder=`Optional. Posts at the top of the review, above the automated-review label.`,n.addEventListener(`input`,e);let r=s(`label`,`pr-section-heading`,`Your note`);return r.htmlFor=n.id,t.append(r,n),{section:t,input:n}}function zn(t){let n=s(`article`,`pr-detail`),r=s(`div`);r.dataset.reviewThreads=``,n.append(gn(t),...Sn(t)),t.earlierReview&&n.append(On(t.earlierReview,!1)),n.append(r,Cn(t),...xn(t)),Un(n,t);let i=Ne(t.body),a=new Set(t.comments.flatMap((e,t)=>st(e)?[t]:[])),o=new Set(i.flatMap((e,t)=>Se(e.severity)?[t]:[])),c=t.comments.length+i.length,l=s(`section`,`pr-posts`);l.setAttribute(`aria-label`,`Findings`);let u=s(`div`,`pr-posts-heading`),f=s(`span`,null);u.append(s(`h3`,null,`Findings`),f),l.append(u);let p=Rn(()=>_()),m=()=>({note:p.input.value,comments:t.comments.filter((e,t)=>a.has(t)),generalFindings:i.filter((e,t)=>o.has(t))}),h=!1,g=In(t,n=>{if(F.has(t.key))return;let r=m(),i=n===`approve`||n===`comment`?nt(t,n,r):Et(t,n,``,[]);ne(!0),d(g.status,`busy`,S(i.action)),!Nn(`ready`,t,i,v,jt(i.action,r))&&v(!1,e)});function ee(){let e=we(m());for(let t of g.buttons)t.disabled=h||t.dataset.action===`comment`&&!e;n.dataset.busy=String(h)}function ne(e){h=e,ee()}function _(){let e=m();f.textContent=`${e.comments.length+e.generalFindings.length} of ${c} will post. Low severity starts unticked.`,ee(),!(F.has(t.key)||g.status.dataset.tone===`ok`)&&d(g.status,null,te(t,e))}let v=(e,t)=>{ne(e),d(g.status,e?`ok`:`error`,t)};for(let[e,n]of t.comments.entries())l.append(jn(Tn(n),a,e,_));for(let[e,t]of i.entries())l.append(jn(En(t),o,e,_));return c>0&&n.append(l),n.append(p.section,g.footer),_(),{signature:_e(t),element:n,settle:v}}function Bn(e){let t=N.get(e.key);if(t&&(F.has(e.key)||t.signature===_e(e)))return Un(t.element,e),_n(t.element,e);let n=zn(e);return N.set(e.key,n),n.element}function Vn(e,t){let n=s(`article`,`pr-detail`),r=s(`div`,`pr-detail-heading`),i=s(`div`,`pr-detail-title`);i.append($t(e),s(`h2`,null,e.title));let a=s(`div`,`pr-detail-meta`);a.append(z(e.author,20,`pr-detail-author`));let o=I(`Opened`,e.prCreatedAt);return o&&a.append(o),r.append(i,a,hn(e)),n.append(r,s(`p`,`pr-attention-detail`,ce(t)),Pn(e)),n}function Hn(e){let t=s(`article`,`pr-detail`);t.append(gn(e));let n=s(`section`,`pr-progress`);n.setAttribute(`aria-label`,`Review progress`);let i=s(`ol`,`pr-progress-tracker`);for(let t of he(e.phase)){let e=s(`li`,`pr-progress-stage`);e.dataset.state=t.state,e.append(s(`span`,`pr-progress-bar`),s(`span`,null,t.label)),i.append(e)}let a=s(`div`,`pr-progress-text`);Jt.track(a,e.startedAt,()=>g(e,Date.now())),n.append(i,a),t.append(n);let o=s(`section`,`pr-steps`);o.append(s(`h3`,null,`Latest agent steps`));let c=s(`ol`,`pr-step-list`);for(let t of e.recentSteps){let n=s(`li`,`pr-step`),i=s(`span`,`pr-step-detail`,t.detail);i.title=t.detail,n.append(s(`span`,`pr-step-at`,r(e.startedAt,t.at)),s(`span`,`pr-step-tool`,t.tool),i),c.append(n)}return o.append(c),t.append(o,...An(e),Pn(e)),t}function Un(e,t){if(F.has(t.key))return;let n=e.querySelector(`:scope > [data-review-threads]`),r=JSON.stringify([t.liveHead,t.threads]);n&&n.dataset.reviewThreads!==r&&(n.replaceChildren(...Gn(t)),n.dataset.reviewThreads=r)}function Wn(e,t,n,r){let i=s(`div`,t?`pr-thread-message pr-thread-message-muted`:`pr-thread-message`);if(i.append(s(`p`,`pr-thread-body pr-thread-preview`,e)),!n&&!Oe(e,t?3:8))return i;let o=s(`details`,`pr-thread-disclosure`);return o.append(s(`summary`,`pr-thread-expand`,t?`Expand comment`:`Expand reply`),s(`p`,`pr-thread-body`,e)),n&&o.append(a(`pr-link pr-thread-continues`,t?`Comment continues on GitHub`:`Reply continues on GitHub`,r)),i.append(o),i}function Gn(t){let n=Ye(t);if(n.length===0)return[];let r=s(`section`,`my-pr-threads-section`);r.append(s(`h3`,`pr-section-heading`,`Answered threads`));let i=s(`div`,`my-pr-threads`);for(let r of n){let n=s(`div`,`my-pr-thread pr-thread-card`),o=s(`div`,`my-pr-thread-heading pr-thread-heading`),c=s(`span`,`pr-thread-chip`,r.judgementLabel);c.dataset.tone=r.judgementTone,o.append(a(`pr-link my-pr-thread-location`,r.location,r.thread.url),c),n.append(o),r.judgementReason&&n.append(s(`p`,`my-pr-thread-meta`,r.judgementReason)),r.thread.viewerComment&&n.append(s(`div`,`my-pr-thread-meta`,`Your comment`),Wn(r.thread.viewerComment,!0,r.thread.viewerCommentTruncated===!0,r.thread.url));let l=s(`div`,`pr-detail-meta pr-thread-reply-meta`);l.append(s(`span`,`pr-author-login`,r.thread.lastReplyAuthor),` replied`);let u=I(``,r.thread.lastReplyAt);u&&l.append(u);let f=s(`span`,`pr-action-status`);f.setAttribute(`role`,`status`);let p=s(`button`,`pr-action`,`Resolve`);p.type=`button`,p.disabled=!r.canResolve||F.has(t.key);let m=(e,t)=>{p.disabled=e||!r.canResolve,d(f,e?`ok`:`error`,t)};p.addEventListener(`click`,()=>{F.has(t.key)||(p.disabled=!0,d(f,`busy`,S(`resolve-thread`)),!Nn(`other`,t,Et(t,`resolve-thread`,``,[],r.thread.id),m)&&m(!1,e))}),n.append(l),r.thread.lastReplyBody&&n.append(Wn(r.thread.lastReplyBody,!1,r.thread.lastReplyTruncated===!0,r.thread.url));let h=s(`footer`,`pr-thread-footer`);h.append(f,p),n.append(h),r.thread.resolveError&&n.append(s(`p`,`pr-attention-detail`,r.thread.resolveError)),i.append(n)}return r.append(i),[r]}function Kn(t){let n=s(`article`,`pr-detail`);if(n.append(gn(t),...Sn(t)),t.earlierReview&&n.append(On(t.earlierReview,t.status===`stale`)),n.append(...Gn(t)),t.status===`posted`&&n.append(Cn(t)),t.status!==`posted`&&n.append(s(`p`,`pr-attention-detail`,dt(t))),t.status===`stale`&&n.append(...kn(t)),!v(t.status))return P.set(t.key,{signature:vn(t),element:n,settle:()=>{}}),n;let r=In(t,n=>{if(!F.has(t.key)){for(let e of r.buttons)e.disabled=!0;d(r.status,`busy`,S(n)),!Nn(`other`,t,Et(t,n,``,[]),i)&&i(!1,e)}},Ke(t).primary.includes(`approve-only`)?Mn:``),i=(e,t)=>{for(let t of r.buttons)t.disabled=e;d(r.status,e?`ok`:`error`,t)};return n.append(r.footer),P.set(t.key,{signature:vn(t),element:n,settle:i}),n}function qn(e){if(!v(e.status)&&Ye(e).length===0)return Kn(e);let t=P.get(e.key);return t&&(F.has(e.key)||t.signature===vn(e))?_n(t.element,e):Kn(e)}function Jn(e){let t=s(`article`,`pr-detail`),n=s(`div`,`pr-detail-heading`),r=s(`div`,`pr-detail-title`);r.append($t(e),s(`h2`,null,e.title));let i=s(`div`,`pr-detail-meta`);i.append(z(e.author,20,`pr-detail-author`));let o=I(`Opened`,e.prCreatedAt);o&&i.append(o),n.append(r,i);let c=s(`footer`,`pr-footer`);return c.append(a(`pr-action`,`Review on GitHub`,e.url)),t.append(n,s(`p`,`pr-attention-detail`,Yn),c),t}var Yn=`From a fork, so the agent cannot check out its branch. Review it on GitHub.`;function Xn(e){if(!T||!E)return;let t=e.ready.find(e=>e.key===E&&(Xe(e).length>0||be(e)));if(t&&t.status!==`ready`){let e=`threads:${vn(t)}`,n=qn(t);if(O===e&&T.firstElementChild===n)return;T.replaceChildren(n),O=e;return}let n=[...e.ready,...e.noReviewNeeded].find(e=>e.key===E&&e.status===`ready`);if(n){let e=`ready:${_e(n)}`,t=Bn(n);if(O===e)return;T.replaceChildren(t),O=e;return}let r=e.inReview.find(e=>e.key===E);if(r){Jt.reset(),T.replaceChildren(Hn(r)),O=`inReview:${r.key}`;return}let i=e.queued.find(e=>e.key===E);if(i){let t=`queued:${i.key}:${e.inReview.length}`;if(O===t)return;T.replaceChildren(Vn(i,e.inReview.length)),O=t;return}let a=e.handReview.find(e=>e.key===E);if(a){let e=`handReview:${a.key}`;if(O===e)return;T.replaceChildren(Jn(a)),O=e;return}let o=[...e.noReviewNeeded,...e.attention,...e.posted,...e.discarded].find(e=>e.key===E);o&&(T.replaceChildren(qn(o)),O=`${o.status}:${o.key}`)}function Zn(){let e=s(`p`,`pr-empty`,je(C));return C&&!C.configured&&e.append(` `,$e(mt,xt,`Open Team review settings`)),e}function Qn(){let e=Ee(C);return e?[s(`p`,`my-pr-note`,e)]:[]}function $n(e){for(let t of[...N.keys()])e.has(t)||F.has(t)||N.delete(t);let t=new Set(C?.drafts.filter(e=>v(e.status)).map(e=>e.key)??[]);for(let e of P.keys())t.has(e)||F.has(e)||P.delete(e)}function er(){qt.reset()}function tr(){M.reset(),nn(w)}function nr(e){e===`clear`&&B(null),E=null}function rr(){return D||(D=s(`p`,`pr-action-status pr-action-notice`),D.setAttribute(`role`,`status`),D.setAttribute(`aria-live`,`polite`),B(Gt),D)}function ir(e,t){t===`clear`&&B(null),E=e,Xn(Me(C)),tr()}function ar(e){$n(new Set([...e.ready,...e.noReviewNeeded].map(e=>e.key)))}function or(){let e=Me(C);ar(e),Xn(e),A?.onChange(),tr()}function sr(e){switch(e.kind){case`status`:C=x(),or();return;case`action-result`:dr(e.message);return;case`open-session-result`:lr(e.message);return;case`connection`:ur(e.isConnected)}}function cr(e,t,n){return Kt=n?.openTerminal??Kt,A=t,w=e,Wt||(Wt=s(`div`,`pr-detail-team`),T=s(`div`,`pr-detail-body`),Wt.append(T),qt.ensure(),Jt.ensure(),M.ensure(),C=x(),h(sr),Wt)}function lr(e){let t=e.key;if(!t)return;let n=j.get(t);n&&n.requestId===e.requestId&&(!e.ok||!e.sessionId?pn(t,e.error||`Could not open a session.`):(window.clearTimeout(n.timer),j.delete(t),fn(t,``,null),Kt?.(e.sessionId)))}function ur(t){if(t)return;for(let[t,n]of j)n.requestId&&pn(t,e);let n=[...F.values()];F.clear();for(let e of n)window.clearTimeout(e.timer),e.settle?.(!1,Vt)}function dr(e){if(!e||typeof e!=`object`)return;let t=e;if(typeof t.key!=`string`)return;let n=F.get(t.key);if(!n||n.requestId!==t.requestId)return;if(window.clearTimeout(n.timer),F.delete(t.key),n.action===`resolve-thread`){n.settle?.(t.ok===!0,typeof t.error==`string`?t.error:_t(n.action)),P.delete(t.key),O=null,t.ok===!0&&or();return}let r=(n.origin===`ready`?N:P).get(t.key);if(t.ok===!0){n.origin===`other`&&P.delete(t.key);let e=ke({action:n.action,outcomeText:n.outcomeText,pullRequest:n.pullRequest,warning:typeof t.warning==`string`?t.warning:``,isActedSelected:E===t.key});if((r?.settle??n.settle)?.(!0,e.statusText),(e.notice||e.shouldAdvance)&&B(e.notice),!e.shouldAdvance)return;ar(Me(C)),A?.onAdvance(t.key,n.capturedOrder)}else(r?.settle??n.settle)?.(!1,typeof t.error==`string`&&t.error?t.error:`The action failed.`)}var H=null,fr=null,U=null,W=null,pr=null,G=null,mr=null,hr=null,gr=null,K=null,q=[],J=`all`,Y=null,_r,X=!1,Z=!1,vr=null,yr=!1,Q=new Map;function br(e,t){Te(le(e))&&(t.querySelector(`.pr-queue-unseen`)?.remove(),delete t.dataset.unseen,e.source===`team`&&L(t))}function xr(e){H&&(H.dataset.detailOpen=String(e)),Ce(e)}function Sr(){xr(!1),Y&&Q.get(Y)?.focus({preventScroll:!0})}function Cr(){pr&&(pr.textContent=Ue(q,Y))}function wr(e){!U||U.childElementCount===1&&U.firstElementChild===e||U.replaceChildren(e)}function Tr(){return ge(q).length>0?ln({title:`New pull requests need you`,detail:`Pick one from the queue.`}):ln({title:`All caught up`,detail:ne(q)})}function Er(e){let t=y(q,Y);_r=t?.key??null,t?t.source===`team`&&mr?(ir(t.review.key,e),wr(mr)):t.source===`mine`&&hr&&(nr(e),It(t.pr.key),wr(hr)):(nr(e),U&&U.replaceChildren(X?Tr():s(`p`,`pr-empty`,`Pick a pull request from the queue.`)))}function Dr(e,{isFromQueue:t}){Y=e,X=!1;for(let[t,n]of Q)n.setAttribute(`aria-current`,String(t===e));let n=y(q,e),r=Q.get(e);n&&r&&br(n,r),Er(`clear`),Or(),xr(!0),t&&document.documentElement.dataset.layout===`phone`&&U?.parentElement?.scrollIntoView({block:`start`})}function Or(){if(Cr(),!W)return;let e=Mt(q,Y);Ve(W,ye(Ae(q)),e)}function kr(e){let t=y(q,e);if(!t)return;y(Ie(q,J),e)||(J=`all`,gr?.select(J)),q.find(e=>e.items.includes(t))?.id===`aside`&&(Z=!0),Y=e,$(),Dr(e,{isFromQueue:!1});let n=Q.get(e);n?.focus({preventScroll:!0}),n?.scrollIntoView({block:`nearest`})}function Ar(e,t){let n=ze({capturedOrder:t,actedKey:`team:${e}`,groups:q});if(Y=n,X=n===null,vr=null,$(),n)for(let[e,t]of Q)t.setAttribute(`aria-current`,String(e===n));Er(`keep`)}function jr(e,t,n){if(e.source===`team`){let n=on(e.review,e.kind,t);return{container:n,row:n}}let r=Nt(e.pr,e.stackedOn,n.get(e.prKey));return{container:r.group,row:r.row}}function Mr(e,t,n,r){let{container:i,row:a}=jr(e,n,r);a.dataset.queueKey=e.key,a.setAttribute(`aria-current`,String(e.key===Y));let o=le(e);if(t&&ae(o)){let t=s(`span`,`tab-activity active pr-queue-unseen`);t.setAttribute(`aria-hidden`,`true`),a.dataset.unseen=o,a.append(t),e.source===`team`&&L(a)}return a.addEventListener(`click`,()=>Dr(e.key,{isFromQueue:!0})),Q.set(e.key,a),i}function Nr(e){let t=s(`h3`,`pr-section-heading review-group-heading`),n=s(`span`,`review-group-count`,String(e.items.length));if(e.id!==`aside`)return t.append(s(`span`,null,e.title),n),t;let r=s(`button`,`review-group-toggle`),i=s(`span`,`review-group-chevron`,`▸`);return i.setAttribute(`aria-hidden`,`true`),r.append(i,e.title),r.type=`button`,r.setAttribute(`aria-expanded`,String(Z)),r.addEventListener(`click`,()=>{Z=!Z,vr=null,$()}),t.append(r,n),t}function Pr(e,t,n){let r=s(`section`,`pr-queue-section`);if(r.dataset.group=e.id,r.append(Nr(e)),e.id===`aside`&&!Z)return r;for(let i of e.items)r.append(Mr(i,e.id===`turn`,t,n));return r}function Fr(){let e=pt(Ge().status,Date.now()).filter(e=>e.tone!==`error`).map(e=>s(`p`,`my-pr-note`,e.text));return[...K?[K.notice]:[],...Qn(),...e]}function Ir(){return q.some(e=>e.items.length>0)?[s(`p`,`pr-empty`,`No pull requests match this filter.`)]:[Zn(),s(`p`,`pr-empty`,Je(Ge().status))]}function Lr(){if(!G)return;let e=x()?.team;if(!e){G.replaceChildren();return}let t=s(`span`,`pr-team-chip`);t.append(o({login:e.slug,url:e.avatarUrl,cssPx:16}),s(`span`,null,e.name)),G.replaceChildren(t)}function Rr(e,t){return JSON.stringify([e,[...t],Y,J,Z,xe(),Fr().map(e=>e.textContent)],(e,t)=>e===`recentSteps`?void 0:t)}function $(){if(!fr)return;let{sessionsByPrKey:e,status:t}=Ge();q=ut(),Lr(),K?.update(de([x(),t]));let n=Ie(q,J);X||(Y=Le(n,Y)),Or();let r=Rr(n,e);if(r!==vr){vr=r;let t=document.activeElement instanceof HTMLElement&&fr.contains(document.activeElement)?document.activeElement.dataset.queueKey:void 0;er(),Q.clear();let i=bt(q),a=n.filter(e=>e.items.length>0).map(t=>Pr(t,i,e));fr.replaceChildren(...Fr(),...a.length>0?a:Ir()),t&&Q.get(t)?.focus({preventScroll:!0}),tr()}(Y!==_r||X)&&Er(`keep`)}function zr(){yr||(yr=!0,queueMicrotask(()=>{yr=!1,$()}))}function Br(){let e=se();e&&kr(e)}function Vr(e){e.kind===`reveal`?Br():Sr()}function Hr(e){if(H)return;let t=ct()??void 0;H=s(`div`,`pr-content review-queue`),e.append(H),gr=Rt({label:`Show reviews`,scopes:pe,selected:J,onSelect:e=>{J=e,$()}});let n=Lt({queueLabel:`Review queue`,scopeTabs:gr.element,resizerLabel:`Resize review queue`});fr=n.queue,U=s(`div`,`review-queue-detail`);let r=s(`div`,`review-queue-phone-bar`),i=s(`button`,`pr-action pr-action-ghost review-queue-back`,`Back to queue`);i.type=`button`,i.addEventListener(`click`,ee),pr=s(`span`,`review-queue-position`),r.append(i,pr),n.detail.append(r,rr(),U),W=me({onJump:()=>{re()},rowFor:e=>Q.get(e)},Ze()),W.classList.add(`review-queue-banner`),n.queue.before(W),K=Pt([`team-review`,`my-prs`],H),G=s(`span`,`review-team-chip-slot`),n.foot.append(G,K.control),H.append(n.columns),H.dataset.detailOpen=`false`,mr=cr(H,{onChange:zr,captureTurnOrder:()=>ge(q).map(e=>e.key),onAdvance:Ar},t),hr=Ft({onChange:zr},t),Pe({isLooking:()=>!c(H),selectedKey:()=>Y}),De(Vr),$(),Br()}var Ur={mount:Hr};export{Ur as view};
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{D as e,I as t,L as n,M as r,N as i,P as a,V as o,j as s,o as c,qt as l,v as u,z as d}from"./dom-helpers-CcEFPh-F.js";import{n as ee}from"./poll-ago-Dj148faJ.js";import{$ as te,A as ne,B as re,D as ie,Dt as ae,F as oe,H as se,I as ce,L as le,M as ue,N as de,P as fe,T as pe,Tt as me,V as he,X as ge,b as _e,h as ve,i as ye,j as be,lt as xe,m as Se,r as Ce,s as we,st as Te,tt as Ee,ut as De,w as Oe,x as ke,y as f}from"./ui-prefs-CavQQH-s.js";import{c as Ae,i as je,s as Me,t as Ne}from"./action-status-DXcC95xv.js";import{i as p}from"./modal-CvDX5-_2.js";import{$ as Pe,A as Fe,B as Ie,C as Le,Cs as Re,Ct as ze,D as Be,E as Ve,F as He,G as Ue,Go as We,H as Ge,Ho as Ke,I as qe,J as Je,Jo as Ye,K as Xe,Ko as Ze,L as Qe,M as $e,N as et,O as m,P as tt,Q as nt,R as rt,S as it,Ss as at,T as ot,U as st,Uo as ct,V as lt,Vo as ut,W as dt,Wo as ft,X as pt,Xo as mt,Y as ht,Z as gt,Zo as _t,_ as vt,_s as yt,as as bt,at as xt,b as St,ds as Ct,et as wt,f as Tt,fs as Et,gs as Dt,h as Ot,hs as kt,i as At,is as jt,it as Mt,j as Nt,k as Pt,ls as Ft,m as It,ms as Lt,n as Rt,ns as zt,nt as Bt,os as Vt,ot as Ht,p as h,ps as Ut,q as Wt,qo as Gt,r as Kt,rs as qt,rt as Jt,ss as Yt,t as Xt,tt as Zt,us as Qt,v as $t,vs as en,w as tn,ws as nn,wt as rn,x as an,xs as on,y as sn,z as cn}from"./index-C8u3ZjM3.js";function ln(){let e=c(`div`),t=c(`p`,`flying-animals-status`);t.id=`flying-animals-gallery-status`,t.setAttribute(`role`,`status`);let n=c(`div`,`flying-animals-gallery`);n.setAttribute(`aria-label`,`Animal gallery`);let r=[],i=()=>{let e=It(),n=me(ye().flyingAnimalsExcludedSprites);t.textContent=[e,n?``:`No animals are included, so automatic flights are paused.`].filter(Boolean).join(` `);for(let t of r)t.disabled=e!==null},a=ye();for(let e of ae){let o=c(`article`,`flying-animal-tile`),s=nn(e),l=c(`label`,`flying-animal-include`),u=c(`input`,`settings-view-checkbox`);u.type=`checkbox`,u.checked=!a.flyingAnimalsExcludedSprites.includes(e.sprite),u.setAttribute(`aria-label`,`Include ${e.name}`),u.addEventListener(`change`,()=>{let t=new Set(ye().flyingAnimalsExcludedSprites);u.checked&&t.delete(e.sprite),u.checked||t.add(e.sprite),be([...t]),h(f()),i()}),l.append(u,document.createTextNode(`Include`));let d=c(`button`,`btn-dialog btn-dialog-cancel`,`Fly now`);d.type=`button`,d.setAttribute(`aria-describedby`,t.id),d.addEventListener(`click`,()=>Ot(e.sprite)),r.push(d),o.append(s,c(`h2`,`flying-animal-name`,e.name),l,d),n.append(o)}return i(),e.append(t,n),e}var un=`johncwaters/glimmervoid`,dn=2200,fn=1600,pn=15e3,mn=`https://glimmervoid.dev`,hn=`browser-appearance`,gn=`browser-shortcuts`,_n=`flying-animals`,vn=Object.freeze({ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1}),g=$t(),_=!1,v=null,yn=null,y=null,b=null,x=null,S=null,C=null,w=null,T=g[0],E=Be(),D={},bn=new Map,xn=new Map,O=new Map,k=new WeakMap,Sn=Promise.resolve(),A=new Map,j=``,Cn=!1,M=new Set,N=new Map;function wn(){return{themeId:ve(),flyingAnimalsEnabled:f(),...Ce(),soundEnabled:pe(),soundId:Ze(Se()),notificationsEnabled:_e(),sessionUsageChips:Oe(),phoneArrowPad:ke(),nextAttentionKeyCode:we()}}function Tn(e){D=cn(g,{...e,prefs:wn()})}function P(e){return O.has(e.id)?O.get(e.id):D[e.path]}function En(e){return[e,...et(g,e.id)]}function Dn(e){return En(e).flatMap(e=>e.settings)}function On(e){return g.find(t=>t.settings.some(t=>t.id===e.id))??T}function F(e,t=null){history.replaceState(history.state,``,Et(e,t))}function kn(e){requestAnimationFrame(()=>{let t=document.getElementById(e),n=t?.closest(`.settings-view-advanced-panel`);n&&(_=!0,n.hidden=!1,w?.querySelector(`.settings-view-advanced-toggle`)?.setAttribute(`aria-expanded`,`true`));let r=t?.closest(`.settings-view-setting`);r&&(r.scrollIntoView({block:`center`}),r.classList.remove(`settings-view-setting-flash`),requestAnimationFrame(()=>r.classList.add(`settings-view-setting-flash`)))})}function An(e){e.replaceChildren();for(let t of De(bt,Qt())){let n=c(`div`,`shortcut-group`);n.appendChild(c(`div`,`shortcut-group-title`,t.title));let r=c(`dl`,`shortcut-rows`);for(let e of t.items){let t=c(`dt`,`shortcut-keys`);e.combos.forEach((e,n)=>{n>0&&t.appendChild(c(`span`,`shortcut-sep`,`/`)),Vt(t,e)}),r.append(t,c(`dd`,`shortcut-label`,e.label))}n.appendChild(r),e.appendChild(n)}}function jn(e){return Ve().find(t=>t.gate!==void 0&&`fromSettings`in t.gate&&t.gate.fromSettings===e)?.label}function Mn(e){let t=c(`ul`,`settings-view-stack settings-features`);for(let e of At){let n=g.find(t=>t.id===e.sectionId),r=Fn(e.settingId),i=jn(Kt[e.rule]);if(!n||!r||!i)continue;let a=P(r)===!0,o=c(`li`,`settings-feature`),s=c(`div`,`settings-feature-head`);s.append(c(`span`,`settings-feature-name`,i),Lr(`feature`,a?`On`:`Off`)),o.append(s,c(`p`,`settings-view-section-description`,n.description),Ct(e.sectionId,e.settingId,r.title)),t.appendChild(o)}e.appendChild(t)}function Nn(e){let t=new URL(e,mn),{telemetryInstallId:n}=E;return typeof n==`string`&&n&&t.searchParams.set(`gv`,n),t.href}function I(e,t){let n=c(`a`,`settings-about-link`,e);return n.href=t,n.target=`_blank`,n.rel=`noopener`,n}function Pn(e){let t=c(`div`,`settings-about`),n=c(`span`,`settings-about-version`,`GLIMMERVOID `);n.appendChild(c(`span`,`settings-about-v`,`v0.44.2`));let r=c(`span`,`settings-about-links`);r.append(I(`GitHub`,`https://github.com/${un}`),I(`Changelog`,`https://github.com/${un}/blob/main/CHANGELOG.md`),I(`Website`,Nn(`/`))),t.append(n,r),e.appendChild(t)}function Fn(e){return g.flatMap(e=>e.settings).find(t=>t.id===e)??null}function In(e){if(D[`pref:soundEnabled`]===e)return;D[`pref:soundEnabled`]=e;let t=Fn(`alert-sounds-enabled`);t&&K(t)}var Ln={"pref:flyingAnimalsMinGapSeconds":e=>oe(Number(e)),"pref:flyingAnimalsMaxGapSeconds":e=>de(Number(e)),"pref:flyingAnimalsMinDurationSeconds":e=>fe(Number(e)),"pref:flyingAnimalsMaxDurationSeconds":e=>ue(Number(e)),"pref:flyingAnimalsScale":e=>le(Number(e)),"pref:flyingAnimalsOnPhone":e=>ce(e===!0)};function Rn(e,t){if(e.path===`pref:sessionUsageChips`){ge(t===!0),Ke(t===!0);return}if(e.path===`pref:phoneArrowPad`){se(t===!0),ut(t===!0);return}if(e.path===`pref:nextAttentionKeyCode`){re(String(t)),Yt(we());let e=w?.querySelector(`.settings-view-shortcuts`);e&&An(e);return}if(e.path===`pref:themeId`){Ee(String(t)),ct(String(t));return}if(e.path===`pref:flyingAnimalsEnabled`){ne(t===!0),h(t===!0);return}let n=Ln[e.path];n?(n(t),h(f())):e.path===`pref:soundEnabled`?ze(t===!0):e.path===`pref:soundId`?(te(String(t)),We(String(t))):e.path===`pref:notificationsEnabled`&&(he(t===!0),t===!0&&kt().then(()=>K(e,{force:!0})))}function L(e,t){let n=xn.get(e.id);n!==void 0&&clearTimeout(n),xn.delete(e.id),t&&bn.set(e.id,t),t||bn.delete(e.id),Yr(e)}function zn(e){L(e,{tone:`saved`,text:`Saved`}),xn.set(e.id,window.setTimeout(()=>L(e,null),dn))}function R(e,t){A.delete(e.id),e.path.startsWith(`pref:`)?(D[e.path]=t,Rn(e,t),K(e),zn(e)):O.has(e.id)&&JSON.stringify(O.get(e.id))===JSON.stringify(t)||(O.set(e.id,t),L(e,{tone:`saving`,text:`Saving`}),Sn=Sn.then(()=>Bn(e,t)))}async function Bn(t,n){let r=gt(g,D,t,n);if(Object.keys(r).length===0)O.delete(t.id),L(t,null),K(t);else{L(t,{tone:`saving`,text:`Saving`});try{let i=await e(`update-settings`,{settings:r});if(O.get(t.id)===n&&O.delete(t.id),i.type===`settings-error`){L(t,{tone:`error`,text:String(i.message)}),K(t,{force:!0});return}if(i.type!==`settings-updated`){L(t,{tone:`error`,text:`The server did not confirm the save.`}),K(t,{force:!0});return}vt(i.settings),zn(t)}catch(e){O.get(t.id)===n&&O.delete(t.id),L(t,{tone:`error`,text:e?.message||`Failed to save the setting.`}),K(t,{force:!0})}}}function z(e,t){t&&A.set(e.id,t),t||A.delete(e.id),Yr(e)}function Vn(e,t){if(!t.exclusiveMin)return t.min;if(e.integer!==!1)return t.min+1}function B(e){return e?`On`:`Off`}function Hn(e){let t=c(`div`,`settings-view-toggle-wrap`),n=c(`label`,`settings-view-toggle`),r=c(`input`,`settings-view-checkbox`);r.type=`checkbox`,r.checked=P(e)===!0,e.id===`desktop-notifications`&&!Dt()&&(r.checked=!1,r.disabled=!0),r.setAttribute(`aria-labelledby`,e.id);let i=c(`span`,`settings-view-toggle-state`,B(r.checked));return r.addEventListener(`change`,()=>{let t=r.checked;Ge(e,t)?(r.checked=!1,i.textContent=B(!1),p({title:e.title,message:e.warning??``,confirmLabel:`Turn on`,danger:!0,onConfirm:()=>R(e,!0)})):(i.textContent=B(t),R(e,t))}),n.append(r,i),t.appendChild(n),t}function Un(e){let t=c(`div`,`settings-view-shortcut-key`),n=Ft(xe(`next-attention`,bt,String(P(e)))),r=c(`button`,`btn-dialog btn-dialog-cancel`,`Record`);r.type=`button`;let i=c(`span`,`settings-view-shortcut-key-prompt`);return i.setAttribute(`role`,`status`),r.addEventListener(`click`,()=>Wn(e,t,r,i)),t.append(n,r,i),t}function Wn(e,t,n,r){let i=()=>{window.removeEventListener(`keydown`,o,!0),window.removeEventListener(`pointerdown`,a,!0),window.removeEventListener(`focusin`,a,!0),n.disabled=!1,r.textContent=``},a=e=>{e.target instanceof Node&&t.contains(e.target)||i()},o=t=>{if(!n.isConnected||!n.checkVisibility()){i();return}t.preventDefault(),t.stopImmediatePropagation();let r=Te(t,bt);r.kind!==`ignored`&&(r.kind===`refused`?z(e,r.reason):(i(),z(e,null),n.focus(),r.kind===`recorded`&&R(e,r.keyCode)))};z(e,null),n.disabled=!0,r.textContent=`Press the new shortcut, or Esc to cancel.`,window.addEventListener(`keydown`,o,!0),window.addEventListener(`pointerdown`,a,!0),window.addEventListener(`focusin`,a,!0)}function Gn(e,t,n){e.addEventListener(`blur`,t),e.addEventListener(`keydown`,e=>{e.key===`Enter`?(e.preventDefault(),t()):e.key===`Escape`&&(e.preventDefault(),n())})}function Kn(e){return e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&[`text`,`number`,`password`].includes(e.type)}function qn(e,t){k.set(t,{base:P(e),isDirty:!1}),t.addEventListener(`input`,()=>{let e=k.get(t);e&&(e.isDirty=!0)})}function V(e,t,n){t.value!==n&&(t.value=n),k.set(t,{base:P(e),isDirty:!1}),z(e,null)}function H(e,t,n,r=!1){let i=k.get(t);if(!i)return;let a=qe(g,e,i,t.value,D,r);a.kind===`invalid`?z(e,a.error):a.kind===`unchanged`?V(e,t,n):Ge(e,a.value)?(V(e,t,n),p({title:e.title,message:e.warning??``,confirmLabel:`Save`,danger:!0,onConfirm:()=>R(e,a.value)})):(k.set(t,{base:a.value,isDirty:!1}),R(e,a.value))}function Jn(e){let t=c(`input`,`settings-view-input`);t.type=e.control===`password`?`password`:`text`;let n=()=>String(P(e)??``);t.value=n(),e.control===`password`&&(t.value=``,t.placeholder=n()?`Configured`:`Not configured`);let r=pt(e,E);return r&&(t.disabled=!0,t.setAttribute(`aria-description`,`Supplied by ${r}`)),t.autocomplete=`off`,t.spellcheck=!1,t.setAttribute(`aria-labelledby`,e.id),qn(e,t),Gn(t,()=>{if(e.control===`password`){let n=t.value;if(n===``)return;V(e,t,``),R(e,n)}else H(e,t,n())},()=>V(e,t,e.control===`password`?``:n())),t}function Yn(e){let t=c(`input`,`settings-view-input`),n=He(e);t.type=`number`;let r=()=>st(P(e));t.value=r(),t.step=e.integer===!1?String(e.step??`any`):`1`;let i=n?Vn(e,n):void 0;i!=null&&(t.min=String(i)),n?.max!=null&&(t.max=String(n.max)),t.autocomplete=`off`,t.setAttribute(`aria-labelledby`,e.id),qn(e,t),Gn(t,()=>H(e,t,r(),t.validity.badInput),()=>V(e,t,r()));let a=e.unit?.label;if(!a)return t;let o=c(`div`,`settings-view-number`),s=c(`span`,`settings-view-unit`,a);return s.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-description`,a),o.append(t,s),o}function Xn(e,t){let n=[...e.querySelectorAll(`[role="radio"]`)],r=n.some(e=>e.dataset.value===t);for(let[e,i]of n.entries()){let n=i.dataset.value===t;i.setAttribute(`aria-checked`,String(n)),i.tabIndex=n||!r&&e===0?0:-1}}function Zn(e,t,n){n!==String(P(e))&&(Xn(t,n),R(e,n),Xn(t,String(P(e))))}function Qn(e){let t=c(`div`,`settings-view-segmented`);t.setAttribute(`role`,`radiogroup`),t.setAttribute(`aria-labelledby`,e.id);let n=e.options??[];for(let r of n){let n=c(`button`,`settings-view-segment`,r.label);n.type=`button`,n.dataset.value=r.value,n.setAttribute(`role`,`radio`),n.addEventListener(`click`,()=>Zn(e,t,r.value)),t.appendChild(n)}return t.addEventListener(`keydown`,r=>{let i=vn[r.key];if(!i||n.length===0)return;r.preventDefault();let a=Math.max(0,n.findIndex(t=>t.value===String(P(e)))),o=n[(a+i+n.length)%n.length];Zn(e,t,o.value),t.querySelector(`[data-value="${CSS.escape(o.value)}"]`)?.focus()}),Xn(t,String(P(e))),t}function $n(e){let t=c(`select`,`settings-view-input`);t.setAttribute(`aria-labelledby`,e.id);for(let n of e.options??[]){let e=c(`option`,null,n.label);e.value=n.value,t.appendChild(e)}return t.value=String(P(e)),t.addEventListener(`change`,()=>R(e,t.value)),t}function er(e,t){let n=e.valueKind===`posthog-projects`?`One project id per line, or none for no project. Shift+Enter adds a line.`:`One entry per line. Shift+Enter adds a line.`;return t.length>0||!e.listEmptyText?n:`${e.listEmptyText} ${n}`}function tr(e){let t=c(`textarea`,`settings-view-input settings-view-list-input`),n=()=>lt(P(e)),r=()=>n().join(`
|
|
2
|
+
`);t.rows=3,t.value=r(),t.autocomplete=`off`,t.spellcheck=!1,t.placeholder=e.listPlaceholder??``,t.setAttribute(`aria-labelledby`,e.id),qn(e,t),t.addEventListener(`blur`,()=>H(e,t,r())),t.addEventListener(`keydown`,n=>{n.key===`Escape`?(n.preventDefault(),V(e,t,r())):n.key!==`Enter`||n.shiftKey||(n.preventDefault(),H(e,t,r()))});let i=c(`div`,`settings-view-list`);return i.append(t,c(`span`,`settings-view-list-hint`,er(e,n()))),i}var nr=null;function rr(e){let t=Rt(Ve().map(e=>e.view),lt(P(e))),n=c(`ol`,`settings-view-tab-order`);n.setAttribute(`aria-labelledby`,e.id);for(let[r,i]of t.entries()){let a=Ve().find(e=>e.view===i)?.label??i,o=c(`li`,`settings-view-tab-order-item`);o.append(c(`span`,`settings-view-tab-order-label`,a),ir(e,t,i,r-1,`Move up`,`Move ${a} up`),ir(e,t,i,r+1,`Move down`,`Move ${a} down`)),n.append(o)}return n}function ir(e,t,n,r,i,a){let o=`${n}:${i}`,s=c(`button`,`btn-dialog btn-dialog-cancel`,i);return s.type=`button`,s.setAttribute(`aria-label`,a),s.disabled=r<0||r>=t.length,o===nr&&(s.dataset.restoresFocus=`true`),s.addEventListener(`click`,()=>{nr=o,R(e,Xt(t,n,r))}),s}function ar(e){let t=c(`div`,`settings-view-projects`),n=P(e),r=new Set(Array.isArray(n)?n:[]),i=Array.isArray(E.projectChoices)?E.projectChoices:[];i.length===0&&t.appendChild(c(`div`,`settings-empty`,`No configured projects are available.`));for(let n of Mt(i,[...r])){let i=c(`label`,`settings-view-project-choice`),a=c(`input`,`settings-view-checkbox`);a.type=`checkbox`,a.checked=r.has(n.id),a.addEventListener(`change`,()=>{let t=P(e),r=new Set(Array.isArray(t)?t:[]);a.checked&&r.add(n.id),a.checked||r.delete(n.id),R(e,[...r])}),i.append(a,document.createTextNode(n.name)),t.appendChild(i)}return t}function or(e,t,{isPrimary:n=!1,isEnabled:r=!0}={}){let i=c(`button`,`btn-dialog ${n?`btn-dialog-confirm`:`btn-dialog-cancel`} settings-update-button`,e);return i.type=`button`,i.disabled=!r,i.addEventListener(`click`,t),i}function sr(e){let t=c(`span`,`settings-update-action-status`,e??``);return t.setAttribute(`role`,`status`),t}function cr(){let{isCheckInFlight:e,checkSendFailure:t}=m();return e?`Checking for updates.`:t}function lr(){let{status:e,lastAutoCheckAt:n}=m();e?(Cn=!1,t({status:e,checkForUpdates:E.checkForUpdates,now:Date.now(),lastAutoCheckAt:n})&&it()):Cn=!0}function ur(e){return e===`update`?or(`Update`,an,{isPrimary:!0}):e===`restart`?or(`Restart`,Le,{isPrimary:!0}):or(`Check for updates`,it,{isEnabled:!m().isCheckInFlight})}function dr(){let{status:e,journal:t,request:n}=m(),r=d({status:e,journal:t,request:n}),i=c(`div`,`settings-update-actions`);if(r.actions.length>0){let e=c(`div`,`settings-update-buttons`);e.append(...r.actions.map(ur)),i.appendChild(e)}let a=cr();return a&&i.appendChild(sr(a)),r.note&&i.appendChild(sr(r.note)),r.command&&i.appendChild(c(`code`,`settings-update-command`,r.command)),i}function fr(e,...t){let n=c(`div`,`settings-update-fact`);return n.append(c(`span`,`settings-update-fact-label`,e),...t),n}function pr(){let e=a(m().journal);if(!e)return null;let t=c(`div`,`settings-update-progress`);t.dataset.state=e.state,t.setAttribute(`role`,`status`),e.terminalLine&&t.appendChild(c(`div`,`settings-update-terminal`,e.terminalLine));let n=c(`ol`,`settings-update-steps`);for(let t of e.steps){let e=c(`li`,`settings-update-step`);e.dataset.status=t.status,e.append(c(`span`,`settings-update-step-state`,t.status),c(`span`,`settings-update-step-label`,t.label)),n.appendChild(e)}if(t.appendChild(n),e.outputTail.length===0)return t;let r=c(`pre`,`settings-update-output`,e.outputTail.join(`
|
|
3
|
+
`));if(e.outputStepId&&(r.dataset.step=e.outputStepId),!e.outputStepLabel)return t.appendChild(r),t;let i=`Output from ${e.outputStepLabel}`;return r.setAttribute(`aria-label`,i),t.append(c(`div`,`settings-update-output-label`,i),r),t}function mr(){let e=i(m().status),t=[e.label];if(e.behind&&t.push(c(`span`,`settings-update-behind`,e.behind)),e.releaseUrl){let n=c(`a`,`settings-link`,`View release`);n.href=e.releaseUrl,n.target=`_blank`,n.rel=`noopener noreferrer`,t.push(n)}return fr(`Latest`,...t)}function hr(){let e=c(`div`,`settings-view-status-block settings-update-status`),{status:t,journal:i}=m(),a=o(t,i),l=c(`div`,`settings-update-summary`,a.headline);l.dataset.tone=a.tone,e.appendChild(l),e.appendChild(fr(`Running`,s(t))),n(t)&&e.appendChild(mr());let u=typeof t?.lastCheckAt==`number`?t.lastCheckAt:null,d=fr(`Last checked`,r({status:t,checkForUpdates:E.checkForUpdates,relativeTime:ee(u)}));u&&(d.title=new Date(u).toLocaleString()),e.appendChild(d),e.appendChild(dr());let te=pr();return te&&e.appendChild(te),e}function gr(e){return e===null?`not probed yet`:e?`resolved`:`not found on PATH`}function _r(){let e=Array.isArray(E.customAgents)?E.customAgents:[];return e.length===0?[`None declared. Add customAgents to config.json.`]:e.map(e=>{let t=e.args.length>0?`${e.command} ${e.args.join(` `)}`:e.command;return`${e.id} ${e.label} ${t} ${gr(e.resolvable)}`})}function vr(){let e=c(`div`,`settings-view-status-block`);e.appendChild(c(`div`,`settings-section-title`,`Declared agents`));for(let t of _r())e.appendChild(c(`div`,`settings-readonly`,t));return e}function yr(e){N.set(e,{tone:`ok`,text:`Saved`}),window.setTimeout(()=>{N.get(e)?.tone===`ok`&&(N.delete(e),$())},dn)}async function br(t,n){M.add(t.id),N.delete(t.id),$();try{let r=await e(`update-settings`,{settings:{workflows:{rules:[{id:t.id,enabled:n}]}}},{timeoutMs:Ne});if(M.delete(t.id),r.type===`settings-error`&&N.set(t.id,{tone:`error`,text:String(r.message)}),r.type===`settings-updated`){yr(t.id),vt(r.settings);return}}catch(e){N.set(t.id,{tone:`error`,text:Me(e,Ne)})}M.delete(t.id),$()}function xr(e){let t=je(`settings-workflow-rule-status`);if(M.has(e.id))return t.show(`busy`,`Saving`),t.element;let n=N.get(e.id);return n&&t.show(n.tone,n.text),t.element}function Sr(e){let t=c(`div`,`settings-view-toggle-wrap`),n=c(`label`,`settings-view-toggle`),r=c(`input`,`settings-view-checkbox`);return r.type=`checkbox`,r.checked=e.isEnabled,r.disabled=M.has(e.id),r.setAttribute(`aria-label`,`Run rule ${e.name}`),r.addEventListener(`change`,()=>{br(e,r.checked)}),n.append(r,c(`span`,`settings-view-toggle-state`,B(e.isEnabled)),c(`span`,`settings-readonly`,`${e.name} ${e.summary}`)),t.append(n,xr(e)),t}function Cr(){let e=c(`div`,`settings-view-status-block`);e.appendChild(c(`div`,`settings-section-title`,`Rules`));let t=Jt(E.workflows);if(t.length>0){for(let n of t)e.appendChild(Sr(n));return e}for(let t of Bt(E.workflows))e.appendChild(c(`div`,`settings-readonly`,t));return e}function wr(){let e=c(`div`,`settings-view-status-block`);e.appendChild(c(`div`,`settings-section-title`,`Last report`));for(let t of Tt())e.appendChild(c(`div`,`settings-readonly`,t));return e}function Tr(){let e=c(`div`,`settings-view-status-block`);if((O.get(`remote-sessions`)??D.remoteSessions)!==!0)return e.appendChild(c(`div`,`settings-readonly`,`Turn on Remote Coder sessions (experimental) to connect agent logins for them.`)),e;for(let t of[`claude-code`,`codex`]){let n=c(`div`,`settings-telegram-test`),r=c(`button`,`btn-dialog btn-dialog-cancel`,`Connect`);r.type=`button`,r.addEventListener(`click`,()=>at(t)),n.append(c(`div`,`settings-readonly`,en(yt(t),t)),r),e.appendChild(n)}return e}function Er(){let e=c(`div`,`settings-view-status-block`),t=c(`button`,`btn-dialog btn-dialog-cancel`,`Set up remote host`);return t.type=`button`,t.addEventListener(`click`,Re),e.appendChild(t),e}function Dr(e){return e.status===`agent-logins`?Tr():e.status===`remote-setup`?Er():e.status===`update-actions`?hr():e.status===`custom-agents`?vr():e.status===`workflows`?Cr():c(`div`,`settings-readonly`,`Not available`)}function Or(e){return e.control===`readonly`?Dr(e):e.control===`toggle`?Hn(e):e.control===`number`?Yn(e):e.control===`select`?tt(e)===`segmented`?Qn(e):$n(e):e.control===`list`?tr(e):e.control===`projects`?ar(e):e.control===`shortcut-key`?Un(e):e.control===`tab-order`?rr(e):Jn(e)}function kr(e){let t=pt(e,E);return t?`Supplied by ${t}. Change the server environment and restart to replace this credential.`:e.status!==`rtk-install`||P(e)!==!0||E.rtkAvailable?``:ht(E)}function Ar(e){if(e.control===`readonly`)return null;if(e.status===`usage-last-report`){let e=wr();return e.classList.add(`settings-view-status-slot`),e}if(e.id===`desktop-notifications`)return Ir(e);if(e.id===`telemetry-enabled`)return Fr();if(e.status===`telegram-delivery`)return Nr();let t=kr(e);return t?c(`div`,`settings-view-warning settings-view-status-slot`,t):null}function jr(){let e=l.safeParse(E.telegramDelivery);if(!e.success)return[];let{setupWarning:t,lastFailure:n}=e.data,r=t?[t]:[];return n&&r.push(`The last Telegram send failed at ${new Date(n.failedAt).toLocaleString()}: ${n.message}`),r}function Mr(e){e.replaceChildren(...jr().map(e=>c(`p`,`settings-view-warning`,e)))}function Nr(){let e=c(`div`,`settings-view-status-slot settings-telegram-delivery`),t=c(`div`,`settings-telegram-delivery-lines`);Mr(t);let n=c(`button`,`btn-dialog btn-dialog-cancel`,`Send test message`);n.type=`button`;let r=je(`settings-telegram-test-status`);n.addEventListener(`click`,async()=>{n.disabled=!0;let e=await Ae(`telegram-test`,{},r,{busyText:`Sending a test message to Telegram.`});n.disabled=!1,e?.type===`telegram-test-result`&&(E=sn({telegramDelivery:e.telegramDelivery}),Mr(t),e.ok?r.show(`ok`,`Sent. Check the Telegram chat for the test message.`):r.show(`error`,`Not sent: ${e.error??`Telegram refused the message.`}`))});let i=c(`div`,`settings-telegram-test`);return i.append(n,r.element),e.append(t,i),e}async function Pr(){U.disabled=!0;let e=await Ae(`request-telemetry-deletion`,{},W,{busyText:`Sending the deletion request.`,timeoutMs:pn});U.disabled=!1,e?.type===`telemetry-deletion-result`&&(e.ok?W.show(`ok`,`Deletion requested. New usage starts under a new id.`):W.show(`error`,`Not sent: PostHog did not take the request. Try again later.`))}var U=c(`button`,`btn-dialog btn-dialog-cancel`,`Delete my data`);U.type=`button`,U.addEventListener(`click`,()=>{p({title:`Delete your usage data?`,message:`We delete everything collected under this install. New usage starts under a new id.`,confirmLabel:`Delete my data`,danger:!0,onConfirm:()=>{Pr()}})});var W=je(`settings-telemetry-deletion-status`);function Fr(){let e=c(`div`,`settings-view-status-slot settings-telemetry-data`);return e.append(I(`Privacy details`,Nn(`/privacy`)),U,W.element),e}function Ir(e){let t=Lt(()=>K(e,{force:!0}));return t.element.hidden?null:(t.element.classList.add(`settings-view-status-slot`),t.element)}function Lr(e,t){let n=c(`span`,`settings-view-chip`,t);return n.dataset.chip=e,n}function Rr(e,t){let n=u(e);return n?n.then(()=>t,()=>`Copy failed`):Promise.resolve(`Copy failed`)}function zr(e,t,{copiedText:n,textToCopy:r}){let i=c(`span`,`settings-view-copy-status`);i.setAttribute(`role`,`status`),t.type=`button`,t.addEventListener(`click`,async()=>{i.textContent=await Rr(r(),n),setTimeout(()=>{i.textContent=``},fn)}),e.append(t,i)}function Br(e){let t=c(`div`,`settings-view-setting-heading`),n=On(e),r=c(`h2`,`settings-view-setting-title`,e.title);r.id=e.id,r.addEventListener(`click`,()=>F(n.id,e.id));let i=c(`button`,`settings-view-copy-link`,`#`);return i.setAttribute(`aria-label`,`Copy link`),t.appendChild(r),zr(t,i,{copiedText:`Link copied`,textToCopy:()=>new URL(Et(n.id,e.id),location.href).href}),t}function Vr(e){let t=c(`div`,`settings-view-chips`);return t.append(Lr(`scope`,$e[e.scope]),Lr(`effect`,Nt[e.takesEffect])),t}function Hr(e){return e.control===`readonly`||pt(e,E)?!1:!Ie(e,P(e))}function Ur(e){let t=c(`div`,`settings-view-control-foot`),n=c(`span`,`settings-view-save-status`);n.setAttribute(`role`,`status`);let r=c(`button`,`settings-view-reset`,`Reset`);return r.type=`button`,r.title=`Reset to the default value`,r.addEventListener(`click`,()=>{let t=Je(e),n=Wt(e);n===null?R(e,t):p({title:e.title,message:n,confirmLabel:`Reset`,danger:!0,onConfirm:()=>R(e,t)})}),t.append(n,r),t}function Wr(e,t){let n=e.querySelector(`.settings-view-save-status`),r=bn.get(t.id);n&&(n.textContent=r?.text??``,r&&(n.dataset.tone=r.tone),r||delete n.dataset.tone);let i=e.querySelector(`.settings-view-reset`);i&&(i.disabled=!Hr(t));let a=e.querySelector(`.settings-view-field-error`),o=A.get(t.id);a&&!o&&a.remove(),a&&o&&(a.textContent=o),!a&&o&&e.querySelector(`.settings-view-setting-control`)?.appendChild(c(`div`,`settings-view-field-error`,o))}function Gr(e){let t=c(`article`,`settings-view-setting`);t.dataset.settingId=e.id,e.control===`readonly`&&(t.dataset.readout=`true`);let n=c(`div`,`settings-view-setting-text`);n.append(Br(e),c(`p`,`settings-view-setting-description`,e.description),Vr(e));let r=c(`div`,`settings-view-setting-control`);r.appendChild(Or(e)),e.control!==`readonly`&&r.appendChild(Ur(e)),t.append(n,r),wt(e,P(e))&&t.appendChild(c(`div`,`settings-view-warning settings-warning`,e.warning));let i=Ar(e);return i&&t.appendChild(i),Wr(t,e),t}function G(e){return w?.querySelector(`[data-setting-id="${e.id}"]`)??null}function Kr(e){let t=e.querySelector(`.settings-view-setting-control`);t&&(t.querySelector(`[data-restores-focus="true"]:not([disabled])`)??t.querySelector(`[role="radio"][aria-checked="true"]`)??t.querySelector(`input:not([disabled]), textarea:not([disabled]), select:not([disabled]), button:not([disabled])`))?.focus()}function qr(e,t){if(!Kn(e)||!Kn(t))return;e.disabled=t.disabled,e.placeholder=t.placeholder;let n=k.get(t);n&&!rt(k.get(e))&&(k.set(e,{base:n.base,isDirty:!1}),e.value!==t.value&&(e.value=t.value))}function Jr(e,t,n){if(e===n){qr(e,t);return}let r=[...e.children],i=[...t.children];for(let[t,a]of i.entries()){let i=r[t];i?i.contains(n)?Jr(i,a,n):i.replaceWith(a):e.appendChild(a)}for(let e of r.slice(i.length))e.remove()}function K(e,{force:t=!1}={}){let n=G(e);if(!n)return;let r=document.activeElement,i=n.contains(r),a=i&&!t&&Kn(r)?r:null;(!a||!rt(k.get(a)))&&A.delete(e.id);let o=Gr(e);a?Jr(n,o,a):(n.replaceWith(o),i&&Kr(o))}function Yr(e){let t=G(e);t&&Wr(t,e)}function Xr(e){G(e)?.querySelector(`.settings-view-setting-control`)?.replaceChildren(Dr(e))}function Zr(){for(let e of Dn(T))e.control===`readonly`?Xr(e):K(e)}function Qr(){let e=c(`button`,`btn-dialog btn-dialog-cancel`,`Reset all to defaults`);return e.type=`button`,e.addEventListener(`click`,()=>{ie(),Tn(E),h(f()),q()}),e}function $r(e){let t=c(`div`,`settings-view-advanced`),n=c(`button`,`dialog-advanced-toggle settings-view-advanced-toggle`,`Advanced`);n.type=`button`,n.setAttribute(`aria-expanded`,String(_)),n.setAttribute(`aria-controls`,`settings-view-advanced-panel`);let r=c(`div`,`dialog-advanced-panel settings-view-advanced-panel`);r.id=`settings-view-advanced-panel`,r.hidden=!_,n.addEventListener(`click`,()=>{_=!_,r.hidden=!_,n.setAttribute(`aria-expanded`,String(_))});for(let t of e)r.append(Gr(t));return T.id===hn&&r.append(Qr()),t.append(n,r),t}function ei(e){let t=c(`div`,`settings-view-streamer-placeholder`),n=c(`button`,`btn-dialog btn-dialog-confirm`,`Turn off streamer mode`);n.type=`button`;let r=c(`span`,`settings-view-copy-status`,``);r.setAttribute(`role`,`status`),n.addEventListener(`click`,async()=>{n.disabled=!0,r.textContent=``;let e=await jt(!1);n.disabled=!1,r.textContent=e}),t.append(c(`p`,`settings-view-section-description`,`Settings are hidden in streamer mode.`),n,r),e.appendChild(t)}qt(()=>q());function ti(e){let t=c(`header`,`settings-view-subsection`),n=c(`h2`,`settings-view-subsection-title`,e.title);return n.addEventListener(`click`,()=>F(e.id)),t.append(n,c(`p`,`settings-view-section-description`,e.description)),t}function ni(e,t){for(let n of t.settings.filter(e=>e.access!==`advanced`))e.appendChild(Gr(n)),n.id===_n&&e.appendChild(ln());let n=t.settings.filter(e=>e.access===`advanced`);n.length>0&&e.append($r(n))}function q(){if(ci(),j){Z();return}if(!w)return;if(w.textContent=``,zt()){ei(w);return}let e=c(`header`,`settings-view-section-header`),t=c(`h1`,`settings-view-section-title`,T.title);if(t.tabIndex=-1,t.addEventListener(`click`,()=>F(T.id)),e.append(t,c(`p`,`settings-view-section-description`,T.description)),w.appendChild(e),T.id===gn){let e=c(`div`,`settings-view-stack`);ni(e,T),w.appendChild(e);let t=c(`div`,`shortcut-groups settings-view-shortcuts`);An(t),w.appendChild(t),w.appendChild(_t()),w.appendChild(mt()),Pn(w);return}if(T.id===`lanes-features`){Mn(w);return}let n=c(`div`,`settings-view-stack`);for(let e of En(T))e.id!==T.id&&n.appendChild(ti(e)),ni(n,e);w.appendChild(n)}function J(e,{focusContent:t=!1,settingId:n=null,updateHash:r=!0,openPhoneSection:i=!0}={}){r&&j&&(j=``,x&&(x.value=``));let a=dt(g,e)??T;T.id!==a.id&&(_=!1),T=a;let o=g.find(t=>t.id===e)??a;ri(b),i&&Gt()&&(S=o.id),q(),mi(T)&&pi(),T.id===`machine-updates`&&lr(),r&&F(o.id,n),n&&kn(n),t&&w?.querySelector(`h1`)?.focus()}function ri(e){for(let t of e?.querySelectorAll(`[data-settings-section]`)||[]){let e=t.dataset.settingsSection===T.id;t.setAttribute(`aria-current`,e?`page`:`false`)}}function Y(e){return e.section!==null}function ii(e){x&&(x.value=``,j=``,ui(),J(e.section.id,{settingId:e.setting.id}))}function ai(e){return xt(Ht.sections,e,Ht.fileOnly)}function X(e,t,n,r,i){let a=c(e,t),o=r.matches.find(e=>e.field===i),s=o?n.indexOf(o.text):-1;if(!o||s<0)return a.textContent=n,a;let l=0;for(let e of o.spans)a.append(n.slice(l,s+e.start),c(`mark`,`settings-view-search-highlight`,n.slice(s+e.start,s+e.end))),l=s+e.end;return a.append(n.slice(l)),a}function oi(e,t){let{currentText:n,defaultText:r,jsonFragment:i}=Qe(t.setting,E);if(n!==null&&e.appendChild(c(`span`,`settings-view-search-current`,n)),e.append(c(`span`,`settings-view-search-default`,r),Vr(t.setting),c(`p`,`settings-view-list-hint`,`Edit in config.json or with glimmervoid settings set.`)),i===null)return;let a=c(`div`,`settings-view-control-foot`);zr(a,c(`button`,`settings-view-copy-json`,`Copy as JSON`),{copiedText:`JSON copied`,textToCopy:()=>i}),e.appendChild(a)}function Z(){if(!w)return;if(w.textContent=``,zt()){ei(w);return}let e=ai(j),t=c(`div`,`settings-view-section-header`);if(t.append(c(`h1`,`settings-view-section-title`,`Settings search`),c(`p`,`settings-view-section-description`,`${e.length} ${e.length===1?`result`:`results`} for "${j}"`)),w.appendChild(t),e.length===0){w.appendChild(c(`p`,`settings-empty settings-view-search-empty`,`No settings found.`));return}let n=c(`ol`,`settings-view-search-results`);n.setAttribute(`aria-label`,`Settings search results`);for(let t of e){let e=c(`li`,`settings-view-search-result`);e.tabIndex=-1;let r=Pe(g,t.section,t.setting);e.appendChild(X(`p`,`settings-view-search-breadcrumb`,r,t,`section`));let i=X(`span`,`settings-view-setting-title`,t.setting.title,t,`title`);if(Y(t)){let n=c(`button`,`settings-view-search-open`);n.type=`button`,n.appendChild(i),n.addEventListener(`click`,()=>ii(t)),e.appendChild(n)}Y(t)||(e.classList.add(`settings-view-search-file-only`),e.appendChild(i)),e.append(X(`p`,`settings-view-setting-description`,t.setting.description,t,`description`),X(`code`,`settings-view-key-path`,t.setting.path,t,`path`));let a=new Set([`title`,`description`,`path`,`section`]);if(!t.matches.some(e=>a.has(e.field))){let n=t.matches.find(e=>e.field===`options`)??t.matches.find(e=>e.field===`keywords`);n&&e.appendChild(X(`p`,`settings-view-list-hint`,n.text,t,n.field))}Y(t)||oi(e,t),n.appendChild(e)}w.appendChild(n)}function si(){return Xe(g,S,j,zt())}function ci(){if(!y)return;let e=si(),t=y.dataset.settingsScreen!==e;y.dataset.settingsScreen=e,C&&(C.hidden=e!==`section`),t&&St()}function li(){let e=T.id;Q(``),b?.querySelector(`[data-settings-section="${e}"]`)?.focus()}function ui(){if(b&&y){b.textContent=``;for(let e of nt(Zt(g))){let t=c(`div`,`settings-view-nav-group`);e.heading&&t.appendChild(c(`div`,`settings-view-nav-heading`,e.heading));for(let n of e.sections){let e=c(`button`,`settings-view-nav-item`,n.title);e.type=`button`,e.dataset.settingsSection=n.id,e.addEventListener(`click`,()=>J(n.id,{focusContent:Gt()})),t.appendChild(e)}b.appendChild(t)}j?(ci(),Z()):J(T.id,{updateHash:!1,openPhoneSection:!1})}}function Q(e,{updateHash:t=!0}={}){j=e.trim(),x&&(x.value=e),S=null,t&&history.replaceState(history.state,``,Ut(j)),ui()}function di(e){if(j&&e.key===`Enter`&&e.target===x){let t=ai(j).find(Y);if(!t)return;e.preventDefault(),ii(t);return}if(e.key===`Escape`&&j){if(!x)return;e.preventDefault(),Q(``),x.focus();return}if(e.key!==`ArrowUp`&&e.key!==`ArrowDown`||!b)return;let t=[...b.querySelectorAll(`[data-settings-section]`)].filter(e=>e instanceof HTMLElement),n=document.activeElement;if(!(n instanceof HTMLElement))return;let r=t.indexOf(n);r<0||(e.preventDefault(),t[(r+(e.key===`ArrowDown`?1:-1)+t.length)%t.length].focus())}function fi(e){rn(In),v=e,v.textContent=``,y=c(`div`,`settings-view-shell`);let t=c(`div`,`settings-view-sidebar`);x=c(`input`,`settings-view-search`),x.type=`search`,x.placeholder=`Search settings`,x.setAttribute(`aria-label`,`Search settings`),b=c(`nav`,`settings-view-nav`),b.setAttribute(`role`,`navigation`),b.setAttribute(`aria-label`,`Settings sections`),C=c(`button`,`settings-view-back`,`Back`),C.type=`button`,C.hidden=!0,C.setAttribute(`aria-label`,`Back to settings sections`),C.addEventListener(`click`,tn),w=c(`div`,`settings-view-content`),w.setAttribute(`aria-live`,`polite`),x.addEventListener(`input`,()=>{let e=x;e&&Q(e.value)}),x.addEventListener(`keydown`,di),b.addEventListener(`keydown`,di),t.append(x,C,b),y.append(t,w),v.appendChild(y),E=Be(),Tn(E),ot(si),Pt(xi),ui(),pi(),yn?.disconnect(),yn=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&pi()}),yn.observe(v),_i()}function pi(){ft().then(hi)}function mi(e){return Dn(e).some(e=>e.path===`pref:soundId`)}function hi(){if(g=$t(),T=dt(g,T.id)??g[0],D[`pref:soundId`]=Ze(Se()),j){Z();return}let e=Fn(`alert-sound`);e&&mi(T)&&K(e)}function gi(e,t,n){let r=Ue(e??n);r?Q(r.query):(Q(``,{updateHash:!1}),Gt()&&!e?history.replaceState(history.state,``,Ut(``)):J(e||T.id,{settingId:t}))}function _i(){let e=Fe();e&&gi(e.sectionId,e.settingId,e.hashAtRequest)}function vi(){E=Be(),Tn(E),j?Z():Zr()}function yi(e,t){let n=t.querySelector(`.settings-view-status-slot`),r=Ar(e);n&&r&&n.replaceWith(r),n&&!r&&n.remove(),!n&&r&&t.appendChild(r)}function $(){for(let e of Dn(T)){if(!e.status)continue;let t=G(e);t&&(e.control===`readonly`?Xr(e):yi(e,t))}}function bi(){if(T.id!==`machine-updates`)return;let e=Fn(`update-actions`);e&&Xr(e)}function xi(e){switch(e.kind){case`broadcast`:vi();return;case`status`:$();return;case`update`:bi(),e.frame===`status`&&Cn&&T.id===`machine-updates`&&lr();return;case`activate`:_i();return;case`return-to-list`:li()}}function Si(){T.id===hn&&q()}window.matchMedia(`(prefers-reduced-motion: reduce)`).addEventListener(`change`,Si),Ye(()=>{S=null,ci(),Si()}),on($);var Ci={mount:fi};export{Ci as view};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e,n as t,o as n,p as r,u as i,v as a}from"./dom-helpers-CcEFPh-F.js";import{g as o,nt as s}from"./ui-prefs-CavQQH-s.js";import{i as c}from"./action-status-DXcC95xv.js";import{Ao as l,Bo as u,Do as d,Eo as f,Fo as p,Io as m,Lo as h,Mo as g,No as _,Oo as ee,Po as v,Ro as y,To as b,jo as x,ko as S,zo as C}from"./index-C8u3ZjM3.js";var w=null,T=null,E=null,D=null,O=[],k=!1,A=o(),j=!1,M=null;function N(){return!!w&&!i(w)}function P(){let{sessionOptions:e,selectedSessionId:t}=x();return e.find(e=>e.id===t)??null}function F(){let e=n(`label`,`trace-session-field`),t=n(`span`,`trace-session-label`,`Session`),r=n(`select`,`trace-session-select`),{sessionOptions:i,selectedSessionId:a}=x();r.disabled=i.length===0;for(let e of i){let t=n(`option`,null,e.label);t.value=e.id,t.selected=e.id===a,r.append(t)}return r.addEventListener(`change`,()=>d(r.value)),e.append(t,r),e}function I(e){e.toggleAttribute(`data-hidden`,p(A,e.dataset.kind??``))}function L(){if(E)for(let e of E.querySelectorAll(`.trace-row`))I(e)}function te(e){if(E)for(let t of E.querySelectorAll(`details`))t.open=e}function R(){let e=n(`div`,`trace-filters`);for(let t of g){let r=n(`button`,`trace-filter`,t.label);r.type=`button`;let i=()=>{r.setAttribute(`aria-pressed`,String(!p(A,t.kind)))};i(),r.addEventListener(`click`,()=>{A=h(A,t.kind),s(A),i(),L()}),e.append(r)}for(let[t,r]of[[`Expand all`,!0],[`Collapse all`,!1]]){let i=n(`button`,`trace-expand-control`,t);i.type=`button`,i.addEventListener(`click`,()=>{te(r)}),e.append(i)}return e}function z(){let e=t(`trace`,`Session trace`,`Bodies load from the local trace file only when requested.`),r=n(`div`,`trace-controls`),{selectedTrace:i,traceFailureText:a}=x();r.append(F());let o=i?.filePath??``,s=n(`code`,`trace-path`,o);s.title=o,r.append(s);let l=i?u(i.firstOffset,i.hasDroppedEarliestRows,i.grouping.turns[0]):null;if(l!==null&&r.append(n(`span`,`trace-session-start`,`Started ${new Date(l).toLocaleString()}`)),e.append(r,R()),!a)return e;let d=c(`trace-status`);return d.show(`error`,a),e.append(d.element),e}function B(e){let t=n(`div`,`trace-copy-wrap`),r=n(`button`,`trace-copy`,`Copy`);r.type=`button`;let i=n(`span`,`trace-copy-status`);return i.setAttribute(`role`,`status`),r.addEventListener(`click`,()=>{let t=a(e);t?(t.then(()=>{i.textContent=`Copied`}).catch(()=>{i.textContent=`Copy failed`}),setTimeout(()=>{i.textContent=``},1600)):i.textContent=`Copy failed`}),t.append(r,i),t}function V(){let e=n(`div`,`trace-earlier-wrap`),t=n(`button`,`trace-load-earlier`,`Load earlier`);return t.type=`button`,t.addEventListener(`click`,()=>{f()}),e.append(t),e}function H(t,r,i=``){let a=n(`details`,`trace-row${i?` ${i}`:``}`);a.dataset.kind=t.kind,a.dataset.tone=t.tone,I(a);let o=n(`summary`,`trace-row-summary`);o.append(n(`span`,`trace-offset`,e(r,t.record.ts)),n(`span`,`trace-kind`,t.tag),n(`span`,`trace-row-label`,t.text));for(let e of t.badges){let t=n(`span`,`trace-badge`,e);t.dataset.badge=e,o.append(t)}let s=n(`div`,`trace-row-body`);a.append(o,s);let c=!1;return a.addEventListener(`toggle`,()=>{if(!a.open||c)return;c=!0;let e=C(t.record);s.append(B(e),n(`pre`,`trace-row-pre`,e))}),a}function U(e){return n(`span`,`trace-turn-metrics`,_(e))}function W(e,t){e&&t&&(t.textContent=_(e))}function G(t,n){let r=t.children,i=Math.min(n.rows.length,r.length);for(let t=0;t<i;t+=1){let i=r[t]?.querySelector(`.trace-offset`);i&&(i.textContent=e(n.startedAt,n.rows[t].record.ts))}}function K(e,t,n){let i=H(t,e.startedAt,`trace-turn-head`);return r(i,`.trace-row-summary`).append(n),i}function q(e){let t=n(`section`,`trace-turn`),r=U(e);if(e.head&&t.append(K(e,e.head,r)),!e.head){let e=n(`h2`,`trace-leading-title`);e.append(n(`span`,`trace-leading-label`,`Before first prompt`),r),t.append(e)}let i=n(`div`,`trace-rows`);for(let t of e.rows)i.append(H(t,e.startedAt));return e.hasTrimmedRows&&t.append(n(`p`,`trace-trimmed`,`Earlier rows trimmed`)),t.append(i),{section:t,rowsElement:i,metricsElement:r}}function J(e){if(!e)return y(null);let{pendingSessionId:t,selectedTrace:n}=x();return t===e.id&&!n?.hasLoadedOnce?`Loading trace.`:y(e)}function Y(){if(!w)return;let e=n(`div`,`trace-content`);T=z(),e.append(T),E=null,D=null,O=[];let t=P(),r=x().selectedTrace?.grouping.turns??[];if(!t||r.length===0){e.append(n(`p`,`trace-empty`,J(t))),w.replaceChildren(e),k=!1;return}v(l())&&(D=V(),e.append(D));let i=n(`div`,`trace-turns`);for(let e of r){let t=q(e);O.push(t),i.append(t.section)}E=i,L(),e.append(i),w.replaceChildren(e),k=!1}function X(){w&&(N()?Y():k=!0)}function Z(){if(!T||!N())return;let e=z();T.replaceWith(e),T=e}function ne(e){if(!E)return;let t=x().selectedTrace?.grouping.turns[e.turnIndex];if(!t)return;if(e.isNewTurn){let e=q(t);O.push(e),E.append(e.section);return}let n=O[e.turnIndex];if(n){for(let r of e.rows)n.rowsElement.append(H(r,t.startedAt));W(t,n.metricsElement)}}function re(e){let t=e.parentElement;t&&!t.querySelector(`.trace-trimmed`)&&t.insertBefore(n(`p`,`trace-trimmed`,`Earlier rows trimmed`),e)}function Q(){v(l())?!D&&E?.parentElement&&(D=V(),E.parentElement.insertBefore(D,E)):(D?.remove(),D=null)}function ie(e){if(!(e.droppedTurnCount>0||e.droppedRowCount>0)){Q();return}if(O=O.slice(e.droppedTurnCount),E)for(let t=0;t<e.droppedTurnCount;t+=1)E.firstElementChild?.remove();let t=O[0];if(t&&e.droppedRowCount>0){for(let n=0;n<e.droppedRowCount;n+=1)t.rowsElement.firstElementChild?.remove();re(t.rowsElement),W(x().selectedTrace?.grouping.turns[0],t.metricsElement)}e.hasJustDroppedEarliestRows&&Z(),Q()}function ae(e){if(N()&&!k&&E)for(let t of e)ne(t);else E=null,j=!0}function oe(e){if(!E)return;let t=O[0]??null,n=t?.rowsElement.parentElement??null,r=x().selectedTrace?.grouping.turns[e.newTurns.length]??null;if((e.mergedHead||e.mergedRows.length>0)&&t&&n&&r){let i=t.rowsElement;if(e.mergedHead){n.querySelector(`.trace-leading-title`)?.remove();let a=U(r),o=K(r,e.mergedHead,a);n.insertBefore(o,i),t.metricsElement=a}e.mergedHead||W(r,t.metricsElement);let a=document.createDocumentFragment();for(let t of e.mergedRows)a.append(H(t,r.startedAt));i.prepend(a),G(i,r)}let i=document.createDocumentFragment(),a=[];for(let t of e.newTurns){let e=q(t);a.push(e),i.append(e.section)}E.prepend(i),O.unshift(...a)}function se(e){let t=N()&&!k&&!!E&&!e.needsRerender,n=w?.parentElement??null;M={canPrependInPlace:t,scrollElement:n,previousScrollHeight:n?.scrollHeight??0,previousScrollTop:n?.scrollTop??0},t&&oe(e)}function ce(e){ie(e),j&&(j=!1,X());let t=M;M=null,t&&(t.canPrependInPlace||X(),t.canPrependInPlace&&Z(),t.scrollElement&&(t.scrollElement.scrollTop=t.previousScrollTop+t.scrollElement.scrollHeight-t.previousScrollHeight))}function le(e){switch(e.kind){case`selection-reset`:k=!0;return;case`rebuild`:X();return;case`header`:Z();return;case`sessions`:(e.hasSelectionChanged||!T)&&X(),!e.hasSelectionChanged&&T&&Z();return;case`records-appended`:ae(e.appends);return;case`records-prepended`:se(e.prepend);return;case`trimmed`:ce(e.trim);return}}function $(e){w||(w=n(`div`,`trace-panel`),e.append(w),ee(N),S(le),Y())}function ue(){if(!w)return;let e=b();m({hasSelectionChanged:e,isRenderedTraceStale:k,hasRenderedOnce:!!T})&&Y()}var de={mount:$,refresh:ue};export{de as view};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|