github-issue-tower-defence-management 2.177.0 → 2.177.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.
Files changed (41) hide show
  1. package/README.md +2 -1
  2. package/bin/adapter/entry-points/cli/index.js +1 -1
  3. package/bin/adapter/entry-points/cli/index.js.map +1 -1
  4. package/bin/adapter/entry-points/cli/projectConfig.js +15 -0
  5. package/bin/adapter/entry-points/cli/projectConfig.js.map +1 -1
  6. package/bin/adapter/entry-points/console/consoleAirplaneSnapshotApi.js +8 -1
  7. package/bin/adapter/entry-points/console/consoleAirplaneSnapshotApi.js.map +1 -1
  8. package/bin/adapter/entry-points/console/consoleGithubTokenResolver.js +14 -4
  9. package/bin/adapter/entry-points/console/consoleGithubTokenResolver.js.map +1 -1
  10. package/bin/adapter/entry-points/console/consoleReadApi.js.map +1 -1
  11. package/bin/adapter/entry-points/console/readOnlyTokenRotator.js +139 -18
  12. package/bin/adapter/entry-points/console/readOnlyTokenRotator.js.map +1 -1
  13. package/bin/adapter/entry-points/console/ui-dist/assets/{index-qne1gT7I.js → index-CmBdbC7r.js} +4 -4
  14. package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
  15. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +130 -33
  16. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
  17. package/bin/adapter/repositories/issue/RestIssueRepository.js +115 -28
  18. package/bin/adapter/repositories/issue/RestIssueRepository.js.map +1 -1
  19. package/bin/domain/usecases/DependedIssueURLRestoreUseCase.js +3 -1
  20. package/bin/domain/usecases/DependedIssueURLRestoreUseCase.js.map +1 -1
  21. package/package.json +1 -1
  22. package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
  23. package/types/adapter/entry-points/cli/projectConfig.d.ts +1 -0
  24. package/types/adapter/entry-points/cli/projectConfig.d.ts.map +1 -1
  25. package/types/adapter/entry-points/console/consoleAirplaneSnapshotApi.d.ts +1 -0
  26. package/types/adapter/entry-points/console/consoleAirplaneSnapshotApi.d.ts.map +1 -1
  27. package/types/adapter/entry-points/console/consoleGithubTokenResolver.d.ts +1 -0
  28. package/types/adapter/entry-points/console/consoleGithubTokenResolver.d.ts.map +1 -1
  29. package/types/adapter/entry-points/console/consoleReadApi.d.ts +1 -0
  30. package/types/adapter/entry-points/console/consoleReadApi.d.ts.map +1 -1
  31. package/types/adapter/entry-points/console/readOnlyTokenRotator.d.ts +10 -2
  32. package/types/adapter/entry-points/console/readOnlyTokenRotator.d.ts.map +1 -1
  33. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +9 -1
  34. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
  35. package/types/adapter/repositories/issue/RestIssueRepository.d.ts +38 -2
  36. package/types/adapter/repositories/issue/RestIssueRepository.d.ts.map +1 -1
  37. package/types/domain/entities/Issue.d.ts +1 -0
  38. package/types/domain/entities/Issue.d.ts.map +1 -1
  39. package/types/domain/usecases/DependedIssueURLRestoreUseCase.d.ts.map +1 -1
  40. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +4 -1
  41. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
@@ -11,13 +11,13 @@ Error generating stack: `+e.message+`
11
11
  `,i),c=s===-1?r.length:s,l=r.slice(o,c),u=i-o,d=ue.exec(l),f=d===null?de.exec(l):null,p=d===null&&f===null?fe.exec(l):null,m=d??f??p;if(m===null)return{handled:!1};let h=m[0].length;if(u<h)return{handled:!1};if(l.slice(h).trim()===``)return{handled:!0,value:r.slice(0,o)+r.slice(c),cursorPosition:o};let g=l.slice(0,u),_=l.slice(u),v=m[1],y=(()=>{if(d!==null)return`${d[2]} [ ] `;if(f!==null)return`${f[2]} `;let e=Number(p[2]),t=p[3];return`${e+1}${t} `})(),b=v+y+_;return{handled:!0,value:r.slice(0,o)+g+`
12
12
  `+b+r.slice(c),cursorPosition:o+g.length+1+v.length+y.length}},I=(e,t,n,r)=>{if(e.key!==`Enter`||e.isComposing||e.keyCode===229||e.which===229)return{shouldApply:!1};let i=pe(t,n,r);return i.handled?{shouldApply:!0,value:i.value,cursorPosition:i.cursorPosition}:{shouldApply:!1}},L={GRAY:{dot:`#848d97`,bg:`rgba(110,118,129,0.1)`,fg:`#8b949e`,border:`rgba(110,118,129,0.4)`},BLUE:{dot:`#4493f8`,bg:`rgba(56,139,253,0.1)`,fg:`#388bfd`,border:`rgba(56,139,253,0.4)`},GREEN:{dot:`#3fb950`,bg:`rgba(46,160,67,0.15)`,fg:`#3fb950`,border:`rgba(46,160,67,0.4)`},YELLOW:{dot:`#d29922`,bg:`rgba(187,128,9,0.15)`,fg:`#d29922`,border:`rgba(187,128,9,0.4)`},ORANGE:{dot:`#db6d28`,bg:`rgba(219,109,40,0.1)`,fg:`#db6d28`,border:`rgba(219,109,40,0.4)`},RED:{dot:`#f85149`,bg:`rgba(248,81,73,0.1)`,fg:`#f85149`,border:`rgba(248,81,73,0.4)`},PINK:{dot:`#db61a2`,bg:`rgba(219,97,162,0.1)`,fg:`#db61a2`,border:`rgba(219,97,162,0.4)`},PURPLE:{dot:`#a371f7`,bg:`rgba(163,113,247,0.1)`,fg:`#a371f7`,border:`rgba(163,113,247,0.4)`}},R=e=>{if(e===null)return L.GRAY;let t=e.toUpperCase();return t in L?L[t]:L.GRAY},me=e=>{let t=R(e);return{backgroundColor:t.bg,borderColor:t.border,color:t.fg,border:`1px solid`,borderRadius:`6px`,padding:`0 6px`}},he=({storyEntries:e,agentOptions:t,workflowStoryEntries:n,workflowAgentOptions:r,initialDestination:i,onSubmitProject:a,onSubmitWorkflow:o,onClose:s,initialDraft:c,initialSubmitError:l,onDraftChange:u,fleetTaskCreateUrl:d,newIssueUrl:f,containerClassName:p})=>{let[m,h]=(0,y.useState)(i),g=m===`workflow`?n??e:e,_=m===`workflow`?r??t:t,[v,b]=(0,y.useState)(()=>{if(c?.storyName){let e=g.find(e=>e.storyName===c.storyName);if(e)return e.storyOptionId}return g[0]?.storyOptionId??null}),[S,ee]=(0,y.useState)(c?.agentOptionId??null),[C,w]=(0,y.useState)(c?.title??``),[T,te]=(0,y.useState)(c?.body??``),[D,ne]=(0,y.useState)(c?.files??[]),[O,k]=(0,y.useState)(!1),[re,ie]=(0,y.useState)(l??null),A=(0,y.useRef)(null),j=(0,y.useRef)(null),ae=(0,y.useRef)(null);(0,y.useEffect)(()=>{A.current?.focus()},[]),(0,y.useLayoutEffect)(()=>{ae.current!==null&&j.current!==null&&(j.current.setSelectionRange(ae.current.start,ae.current.end),ae.current=null)});let oe=(0,y.useRef)(e);(0,y.useEffect)(()=>{let t=oe.current!==e;oe.current=e,t&&m===`project`&&(v===null||!e.some(e=>e.storyOptionId===v))&&b(e[0]?.storyOptionId??null)},[e,v,m]);let se=(0,y.useRef)(m);(0,y.useEffect)(()=>{let e=se.current!==m;se.current=m,e&&(v!==null&&!g.some(e=>e.storyOptionId===v)&&b(null),S!==null&&!_.some(e=>e.id===S)&&ee(null))},[m,g,_,v,S]);let[M,N]=(0,y.useState)(new Map);(0,y.useEffect)(()=>{let e=!1,t=D.filter(e=>e.type.startsWith(`image/`)).map(e=>new Promise(t=>{let n=new FileReader;n.onloadend=()=>{typeof n.result==`string`?t([e,n.result]):t([e,``])},n.readAsDataURL(e)}));return Promise.all(t).then(t=>{e||N(new Map(t.filter(([,e])=>e.length>0)))}),()=>{e=!0}},[D]);let P=()=>g.find(e=>e.storyOptionId===v)?.storyName??null,ce=async()=>{let e=C.trim();if(e.length===0){ie(`Title is required.`);return}let t=P();if(t===null&&g.length>0){ie(`Please select a story.`);return}let n=T.trim(),r=e.length>256?e.slice(0,256):e,i=e.length>256?e.slice(256):``,c=i.length>0?n.length>0?`${i}\n${n}`:i:n.length>0?n:null;k(!0),ie(null);try{let e={storyName:t,agentOptionId:S,title:r,body:c,files:D};if(m===`project`)await a(e);else{if(o===void 0)throw Error(`No workflow repository is configured.`);await o(e)}s()}catch(e){ie(e instanceof Error?e.message:String(e))}finally{k(!1)}},le=e=>{ne(t=>t.filter((t,n)=>n!==e))};return(0,E.createPortal)((0,x.jsxs)(`div`,{className:`console-task-create-dialog-container${p===void 0?``:` ${p}`}`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-overlay`,"aria-label":`Close dialog`,disabled:O,onClick:s}),(0,x.jsxs)(`div`,{className:`console-task-create-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Create new task`,children:[(0,x.jsxs)(`div`,{className:`console-task-create-dialog-bar`,children:[(0,x.jsx)(`span`,{className:`console-task-create-dialog-title`,children:`Create new task`}),(0,x.jsxs)(`div`,{className:`console-task-create-dialog-bar-actions`,children:[d!=null&&(0,x.jsx)(`a`,{href:d,target:`_blank`,rel:`noreferrer`,className:`console-task-create-dialog-fleet-link`,children:`Fleet`}),f!=null&&(0,x.jsx)(`a`,{href:f,target:`_blank`,rel:`noreferrer`,className:`console-task-create-dialog-new-issue-link`,children:`New tab`}),(0,x.jsxs)(`div`,{className:`console-task-create-dialog-destination-selector`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-option-button${m===`project`?` console-task-create-dialog-option-button--selected`:``}`,"aria-pressed":m===`project`,onClick:()=>h(`project`),disabled:O,children:`Project`}),o!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-option-button${m===`workflow`?` console-task-create-dialog-option-button--selected`:``}`,"aria-pressed":m===`workflow`,onClick:()=>h(`workflow`),disabled:O,children:`Workflow`})]}),(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-close`,"aria-label":`Close`,onClick:s,disabled:O,children:`✕`})]})]}),(0,x.jsxs)(`div`,{className:`console-task-create-dialog-body`,children:[(0,x.jsx)(`span`,{className:`console-task-create-dialog-section-label`,children:`Title`}),(0,x.jsx)(`textarea`,{ref:A,className:`console-task-create-dialog-textarea`,"aria-label":`Title`,value:C,onChange:e=>{w(e.target.value),u?.({title:e.target.value,body:T.trim().length>0?T:null,storyName:P(),agentOptionId:S})},disabled:O,rows:3}),(0,x.jsx)(`span`,{className:`console-task-create-dialog-section-label`,children:`Body`}),(0,x.jsx)(`textarea`,{ref:j,className:`console-task-create-dialog-textarea`,"aria-label":`Body`,value:T,onKeyDown:e=>{let t=e.currentTarget,n=I({key:e.key,isComposing:e.nativeEvent.isComposing,keyCode:e.keyCode,which:e.which},t.value,t.selectionStart,t.selectionEnd);n.shouldApply&&(e.preventDefault(),ae.current={start:n.cursorPosition,end:n.cursorPosition},te(n.value),u?.({title:C,body:n.value.trim().length>0?n.value:null,storyName:P(),agentOptionId:S}))},onChange:e=>{te(e.target.value),u?.({title:C,body:e.target.value.trim().length>0?e.target.value:null,storyName:P(),agentOptionId:S})},disabled:O,rows:3}),(0,x.jsx)(`span`,{className:`console-task-create-dialog-section-label`,children:`Attachments`}),(0,x.jsx)(`input`,{type:`file`,multiple:!0,className:`console-task-create-dialog-file-input`,disabled:O,onChange:e=>ne(Array.from(e.target.files??[]))}),D.length>0&&(0,x.jsx)(`ul`,{className:`console-task-create-dialog-file-list`,children:D.map((e,t)=>(0,x.jsxs)(`li`,{className:`console-task-create-dialog-file-item`,children:[M.has(e)&&(0,x.jsx)(`img`,{src:M.get(e),alt:e.name,className:`console-task-create-dialog-file-thumbnail`}),(0,x.jsx)(`span`,{className:`console-task-create-dialog-file-name`,children:e.name}),(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-file-remove`,"aria-label":`Remove ${e.name}`,onClick:()=>le(t),disabled:O,children:`✕`})]},`${e.name}-${e.size}-${e.lastModified}`))}),g.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`span`,{className:`console-task-create-dialog-section-label`,children:`Story`}),(0,x.jsx)(`div`,{className:`console-task-create-dialog-option-list`,children:g.map(e=>(0,x.jsxs)(`button`,{type:`button`,className:`console-task-create-dialog-option-button${v===e.storyOptionId?` console-task-create-dialog-option-button--selected`:``}`,"aria-pressed":v===e.storyOptionId,onClick:()=>{b(e.storyOptionId),u?.({title:C,body:T.trim().length>0?T:null,storyName:e.storyName,agentOptionId:S})},disabled:O,children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:R(e.color).dot}}),e.storyName]},e.storyOptionId))})]}),_.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`span`,{className:`console-task-create-dialog-section-label`,children:`Agent`}),(0,x.jsx)(`div`,{className:`console-task-create-dialog-option-list`,children:_.map(e=>(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-option-button${S===e.id?` console-task-create-dialog-option-button--selected`:``}`,"aria-pressed":S===e.id,onClick:()=>{let t=S===e.id?null:e.id;ee(t),u?.({title:C,body:T.trim().length>0?T:null,storyName:P(),agentOptionId:t})},disabled:O,children:e.name},e.id))})]}),re!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:re})]}),(0,x.jsx)(`div`,{className:`console-task-create-dialog-footer`,children:(0,x.jsxs)(`div`,{className:`console-task-create-dialog-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-cancel`,disabled:O,onClick:s,children:`Cancel`}),(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-dialog-submit`,disabled:O,onClick:()=>void ce(),children:O?`Creating…`:`Create`})]})})]})]}),document.body)},z=`(No story)`,ge=(e,t)=>{let n=e[t];return n===void 0?null:typeof n==`string`?n:n.color},_e=(e,t,n=null)=>{let r=t[e.projectItemId===``?e.itemId:e.projectItemId];if(r?.story?.name!==void 0&&r.story.name!==``){if(n!==null){let t=Date.parse(n);if(!Number.isNaN(t)&&r.ts<t)return e.story.trim()===``?z:e.story}return r.story.name}return e.story.trim()===``?z:e.story},ve=(e,t,n=null)=>{let r=t[e.projectItemId===``?e.itemId:e.projectItemId];if(r?.story?.name!==void 0&&r.story.name!==``){if(n!==null){let t=Date.parse(n);if(!Number.isNaN(t)&&r.ts<t)return e.storyOptionId??null}return r.story.id??null}return e.storyOptionId??null},ye=999999,be=(e,t)=>e===null?`story-label:${t}`:`story-option-id:${e}`,xe=(e,t,n,r=null)=>{let i=new Map(n.map((e,t)=>[e,t])),a=new Map,o=e.map((e,n)=>{let i=_e(e,t,r),o=ve(e,t,r),s=be(o,i),c=a.get(s)??n;return a.set(s,c),{item:e,story:i,storyOptionId:o,groupKey:s,groupFirstAppearanceIndex:c}}),s=n.length===0?o:[...o].sort((e,t)=>(i.get(e.story)??ye)-(i.get(t.story)??ye)||e.groupFirstAppearanceIndex-t.groupFirstAppearanceIndex),c=new Map;for(let{groupKey:e}of s)c.set(e,(c.get(e)??0)+1);let l=[],u=null;for(let{item:e,story:t,storyOptionId:n,groupKey:r}of s)r!==u&&(l.push({kind:`group-header`,groupKey:r,story:t,storyOptionId:n,count:c.get(r)??0}),u=r),l.push({kind:`item`,item:e});return l},Se=`totally wrong`,Ce=`This pull request is unnecessary.`,we=e=>`The pull request for this issue was unnecessary and has been closed: ${e}\n\nDo not create it again.`,Te=e=>e.map(e=>`${e.path}:${e.line} ${e.body}`).join(`
13
13
 
14
- `),Ee=`In Tmux by human`,De=`Awaiting Workspace`,Oe=[`In Tmux by human`,`Todo by human`,De],ke=e=>e===`todo-by-human`,Ae=({statusOptions:e,onOkAndAwaitingWorkspace:t})=>{let n=e.find(e=>e.name.toLowerCase()===De.toLowerCase());if(n===void 0)return null;let r=R(n.color);return(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,style:{color:r.fg,borderColor:r.border,backgroundColor:r.bg},onClick:()=>t(n),children:`ok & Awaiting Workspace`})})},je={issueOpen:{color:`#3fb950`,paths:[`M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z`,`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z`]},issueClosed:{color:`#a371f7`,paths:[`M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z`,`M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z`]},issueClosedNotPlanned:{color:`#848d97`,paths:[`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z`]},prOpen:{color:`#3fb950`,paths:[`M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z`]},prMerged:{color:`#a371f7`,paths:[`M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.75 0 1 0 0 .005V3.25Z`]},prClosed:{color:`#f85149`,paths:[`M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 5.5a.75.75 0 0 1 .75.75v3.378a2.251 2.251 0 1 1-1.5 0V7.25a.75.75 0 0 1 .75-.75Zm-2.03-5.273a.75.75 0 0 1 1.06 0l.97.97.97-.97a.748.748 0 0 1 1.265.332.75.75 0 0 1-.205.729l-.97.97.97.97a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-.97-.97-.97.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l.97-.97-.97-.97a.75.75 0 0 1 0-1.06ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z`]},prDraft:{color:`#8b949e`,paths:[`M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 14a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM14 7.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm0-4.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Z`]}},Me=({isPr:e,state:t,merged:n,isDraft:r,stateReason:i})=>e?r?`prDraft`:n?`prMerged`:t===`closed`?`prClosed`:`prOpen`:t===`closed`?i===`not_planned`?`issueClosedNotPlanned`:`issueClosed`:`issueOpen`,Ne=({size:e=12,...t})=>{let n=Me(t),r=je[n];return(0,x.jsx)(`svg`,{className:`console-item-icon`,viewBox:`0 0 16 16`,width:e,height:e,fill:r.color,role:`img`,"aria-label":n,children:r.paths.map(e=>(0,x.jsx)(`path`,{d:e},e))})},Pe=({item:e,isActive:t,now:n,statusOptions:r=[],onSelect:i})=>(0,x.jsx)(`button`,{type:`button`,className:`console-item-row`,"aria-current":t?`true`:void 0,"data-active":t?`true`:void 0,onClick:()=>i(e),children:(0,x.jsxs)(`span`,{className:`console-item-meta`,children:[(0,x.jsxs)(`span`,{className:`console-item-title`,children:[(0,x.jsx)(Ne,{isPr:e.isPr,state:`open`,merged:!1,isDraft:!1,stateReason:``}),e.title]}),(0,x.jsxs)(`span`,{className:`console-item-sub`,children:[(0,x.jsxs)(`span`,{className:`console-item-pill`,children:[`#`,e.number]}),e.repo!==``&&(0,x.jsx)(`span`,{className:`console-item-pill`,children:e.repo}),(0,x.jsx)(`span`,{className:`console-item-pill`,children:e.isPr?`PR`:`Issue`}),e.createdAt!==``&&(0,x.jsxs)(`span`,{className:`console-item-opened`,children:[` · opened `,(0,x.jsx)(`span`,{className:`console-item-createdat`,title:ie(e.createdAt),children:k(e.createdAt,n)})]}),e.status!==null&&e.status!==``&&(0,x.jsx)(`span`,{className:`console-item-status-badge`,style:me(r.find(t=>t.name===e.status)?.color??null),children:e.status})]}),(e.nextActionDate!==null||e.nextActionHour!==null||e.dependedIssueUrls.length>0)&&(0,x.jsxs)(`span`,{className:`console-item-fields`,children:[e.nextActionDate!==null&&(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Next Action Date`}),e.nextActionDate.slice(0,10)]}),e.nextActionHour!==null&&(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Next Action Hour`}),e.nextActionHour]}),e.dependedIssueUrls.length>0&&(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Depended Issue URL`}),e.dependedIssueUrls.join(`, `)]})]}),e.agent!==null&&e.agent!==``&&(0,x.jsx)(`span`,{className:`console-item-status-agent`,children:(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Agent`}),e.agent]})})]})}),Fe=({story:e,count:t,colorEnum:n})=>{let r=R(n);return(0,x.jsxs)(`div`,{className:`console-group-header`,children:[(0,x.jsxs)(`span`,{className:`console-storytag`,children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:r.dot}}),e]}),(0,x.jsx)(`span`,{className:`console-group-count`,children:t})]})},Ie=({rows:e,storyColors:t,statusOptions:n=[],activeItemId:r,now:i,isLoading:a,error:o,onSelectItem:s,executiveSummaries:c,onOkAndAwaitingWorkspace:l})=>o===null?a?(0,x.jsx)(`p`,{className:`console-list-message`,children:`Loading list...`}):e.length===0?(0,x.jsx)(`p`,{className:`console-list-empty`,children:`No items`}):(0,x.jsx)(`ul`,{className:`console-list`,children:e.map(e=>{if(e.kind===`group-header`)return(0,x.jsx)(`li`,{className:`console-list-group`,children:(0,x.jsx)(Fe,{story:e.story,count:e.count,colorEnum:ge(t,e.storyOptionId??e.story)})},`group:${e.groupKey}`);let a=c?.[e.item.projectItemId]??null;return(0,x.jsxs)(`li`,{className:`console-list-row`,children:[(0,x.jsx)(Pe,{item:e.item,isActive:e.item.itemId===r,now:i,statusOptions:n,onSelect:s}),a!==null&&a!==``&&(0,x.jsx)(`span`,{className:`console-item-executive-summary`,children:a}),l!==void 0&&(0,x.jsx)(Ae,{statusOptions:n,onOkAndAwaitingWorkspace:t=>l(e.item,t)})]},e.item.itemId)})}):(0,x.jsxs)(`p`,{role:`alert`,className:`console-list-message console-list-error`,children:[`Failed to load list: `,o]}),Le=({agentOptions:e,agentCounts:t,selectedAgent:n,onAgentChange:r})=>{let i=e.filter(e=>(t[e.name]??0)>0);return i.length===0?null:(0,x.jsx)(`div`,{className:`console-prs-agent-filter`,children:(0,x.jsxs)(`select`,{value:n??``,onChange:e=>r(e.target.value===``?null:e.target.value),"aria-label":`Filter by agent`,children:[(0,x.jsx)(`option`,{value:``,children:`All agents`}),i.map(e=>(0,x.jsxs)(`option`,{value:e.name,children:[e.name,` (`,t[e.name],`)`]},e.id))]})})},Re=e=>({...me(e),fontSize:`12px`,whiteSpace:`nowrap`,flexShrink:0}),ze=({item:e,isActive:t,statusOptions:n,agentOptions:r,onSelect:i})=>{let a=n.find(t=>t.name===e.status),o=r.find(t=>t.name===e.agent);return(0,x.jsxs)(`button`,{type:`button`,className:`console-item-row console-queued-item-row`,"aria-current":t?`true`:void 0,"data-active":t?`true`:void 0,onClick:()=>i(e),children:[(0,x.jsx)(Ne,{isPr:e.isPr,state:`open`,merged:!1,isDraft:!1,stateReason:``}),(0,x.jsx)(`span`,{className:`console-queued-item-title`,children:e.title}),(0,x.jsxs)(`span`,{className:`console-queued-item-badges`,children:[e.status!==null&&e.status!==``&&(0,x.jsx)(`span`,{className:`console-queued-item-badge`,style:Re(a?.color??null),children:e.status}),e.agent!==null&&e.agent!==``&&(0,x.jsx)(`span`,{className:`console-queued-item-badge`,style:Re(o?.color??null),children:e.agent})]}),(0,x.jsx)(`span`,{className:`console-queued-item-actions`})]})},Be=({rows:e,storyColors:t,statusOptions:n,agentOptions:r,activeItemId:i,isLoading:a,error:o,onSelectItem:s})=>o===null?a?(0,x.jsx)(`p`,{className:`console-list-message`,children:`Loading list...`}):e.length===0?(0,x.jsx)(`p`,{className:`console-list-empty`,children:`No items`}):(0,x.jsx)(`ul`,{className:`console-list`,children:e.map(e=>e.kind===`group-header`?(0,x.jsx)(`li`,{className:`console-list-group`,children:(0,x.jsx)(Fe,{story:e.story,count:e.count,colorEnum:ge(t,e.storyOptionId??e.story)})},`group:${e.groupKey}`):(0,x.jsx)(`li`,{className:`console-list-row`,children:(0,x.jsx)(ze,{item:e.item,isActive:e.item.itemId===i,statusOptions:n,agentOptions:r,onSelect:s})},e.item.itemId))}):(0,x.jsxs)(`p`,{role:`alert`,className:`console-list-message console-list-error`,children:[`Failed to load list: `,o]}),Ve=Object.keys(L),He=({storyName:e,storyOptionId:t,onSelectColor:n,onClose:r,disabled:i})=>{(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]);let a=e=>{n(t,e),r()};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Change color for ${e}`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:r}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsxs)(`h2`,{className:`console-modal-title`,children:[`Change color for `,e]}),(0,x.jsx)(`div`,{className:`console-story-color-palette`,children:Ve.map(e=>{let t=L[e];return(0,x.jsx)(`button`,{type:`button`,className:`console-story-color-swatch`,"aria-label":e===`GRAY`?`${e} (disable)`:e,style:{backgroundColor:t.dot},onClick:()=>a(e),disabled:i,children:e===`GRAY`&&(0,x.jsx)(`span`,{className:`console-story-color-swatch-label`,children:`disable`})},e)})}),(0,x.jsx)(`div`,{className:`console-modal-actions`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:r,children:`Cancel`})})]})]})},Ue=({onSubmit:e,onClose:t})=>{let[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=(0,y.useRef)(null);(0,y.useEffect)(()=>{c.current?.focus()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t]);let l=async()=>{let r=n.trim();if(r.length===0){s(`Story name is required`);return}a(!0),s(null);try{await e(r),t()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Add story`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:t}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Add story`}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),l()},children:[(0,x.jsx)(`input`,{ref:c,type:`text`,className:`console-modal-input`,placeholder:`Story name`,value:n,onChange:e=>r(e.target.value),disabled:i}),o!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:o}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:i,children:i?`Creating…`:`Create`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:t,disabled:i,children:`Cancel`})]})]})]})]})},We=({storyName:e,isDeleting:t,deleteError:n,onConfirm:r,onCancel:i})=>((0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[i]),(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Confirm story deletion`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:i}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Delete story`}),(0,x.jsxs)(`p`,{className:`console-story-delete-confirm-message`,children:[`Delete story option "`,e,`" from the GitHub custom field?`]}),n!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:n}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>r(!0),disabled:t,children:t?`Deleting…`:`Delete with child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>r(!1),disabled:t,children:t?`Deleting…`:`Keep child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:i,disabled:t,children:`Cancel`})]})]})]})),Ge=({currentDescription:e,onSubmit:t,onClose:n})=>{let[r,i]=(0,y.useState)(e),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{l.current?.focus(),l.current?.select()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n]);let u=async()=>{o(!0),c(null);try{await t(r.trim()),n()}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Edit story description`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:n}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Edit story description`}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),u()},children:[(0,x.jsx)(`textarea`,{ref:l,className:`console-modal-input`,placeholder:`Story description`,value:r,onChange:e=>i(e.target.value),disabled:a,rows:4}),s!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:s}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:a,children:a?`Saving…`:`Save`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:n,disabled:a,children:`Cancel`})]})]})]})]})},Ke=({currentName:e,onSubmit:t,onClose:n})=>{let[r,i]=(0,y.useState)(e),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{l.current?.focus(),l.current?.select()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n]);let u=async()=>{let e=r.trim();if(e.length===0){c(`Story name is required`);return}o(!0),c(null);try{await t(e),n()}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Rename story`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:n}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Rename story`}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),u()},children:[(0,x.jsx)(`input`,{ref:l,type:`text`,className:`console-modal-input`,placeholder:`Story name`,value:r,onChange:e=>i(e.target.value),disabled:a}),s!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:s}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:a,children:a?`Renaming…`:`Rename`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:n,disabled:a,children:`Cancel`})]})]})]})]})},qe=({storyName:e,onSubmit:t,onClose:n,onEdit:r})=>{let[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current?.focus()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n]);let p=async()=>{let r=i.trim();if(r.length===0){l(`Title is required`);return}s(!0),l(null);try{await t(e,r),n()}catch(e){l(e instanceof Error?e.message:String(e)),d(!0)}finally{s(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Add task to ${e}`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:n}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsxs)(`h2`,{className:`console-modal-title`,children:[`Add task to `,e]}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),p()},children:[(0,x.jsx)(`input`,{ref:f,type:`text`,className:`console-modal-input`,placeholder:`Issue title`,value:i,onChange:e=>a(e.target.value),disabled:o}),c!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:c}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:o,children:o?`Creating…`:`Create`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:n,disabled:o,children:`Cancel`}),u&&r!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>{r(e,i),n()},disabled:o,children:`Edit`})]})]})]})]})},Je=new Set([`Todo by human`,`Awaiting Owner`,`Failed Preparation`,`In Tmux by human`]),Ye=({label:e,checked:t,onChange:n})=>(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,x.jsx)(`span`,{style:{fontSize:`0.875rem`,color:`#c9d1d9`},children:e}),(0,x.jsx)(S,{checked:t,ariaLabel:e,onChange:()=>n()})]}),Xe=({items:e,onOpenItem:t})=>(0,x.jsx)(`ul`,{className:`console-story-task-list`,children:e.map(e=>(0,x.jsxs)(`li`,{className:`console-story-task-row`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-story-task-title`,onClick:()=>t(e),children:e.title}),(0,x.jsx)(`span`,{className:`console-story-task-status`,children:e.status??`—`}),(0,x.jsx)(`span`,{className:`console-story-task-agent`,children:e.agent??`—`}),(0,x.jsx)(`span`,{className:`console-story-task-depended-urls`,children:e.dependedIssueUrls.length>0?e.dependedIssueUrls.join(`, `):`—`}),(0,x.jsx)(`span`,{className:`console-story-task-next-action-date`,children:e.nextActionDate===null?`—`:e.nextActionDate.slice(0,10)}),(0,x.jsx)(`span`,{className:`console-story-task-next-action-hour`,children:e.nextActionHour===null?`—`:String(e.nextActionHour)})]},e.url))}),Ze=({stories:e,isLoading:t,error:n,showArchived:r,showDone:i,onCreateIssue:a,onAddStory:o,onSelectColor:s,onToggleArchived:c,onToggleDone:l,onReorderStory:u,onDeleteStory:d,onRenameStory:f,onUpdateDescription:p,onStoryTaskCreateEdit:m,optimisticColors:h,colorChangeInFlight:g,colorErrors:_,onOpenItem:v})=>{let[b,S]=(0,y.useState)(null),[ee,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,te]=(0,y.useState)(null),[D,ne]=(0,y.useState)(null),[O,k]=(0,y.useState)({}),[re,ie]=(0,y.useState)(null),[A,j]=(0,y.useState)(null),[ae,oe]=(0,y.useState)({}),[se,M]=(0,y.useState)(null);(0,y.useEffect)(()=>{if(se===null)return;let e=e=>{let t=e.target;!t.closest(`.console-story-overflow-menu`)&&!t.closest(`.console-story-overflow-btn`)&&M(null)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[se]);let N=e=>ae[e]??{inProgress:!1,error:null},P=async(e,t)=>{oe(t=>({...t,[e]:{inProgress:!0,error:null}}));try{await u(e,t),oe(t=>({...t,[e]:{inProgress:!1,error:null}}))}catch(t){oe(n=>({...n,[e]:{inProgress:!1,error:t instanceof Error?t.message:String(t)}}))}};if(n!==null)return(0,x.jsxs)(`p`,{role:`alert`,className:`console-list-message console-list-error`,children:[`Failed to load stories: `,n]});if(t)return(0,x.jsx)(`p`,{className:`console-list-message`,children:`Loading stories...`});let ce=async(e,t)=>{k(t=>({...t,[e]:{isDeleting:!0,error:null}}));try{await d(e,t),ne(null),k(t=>({...t,[e]:{isDeleting:!1,error:null}}))}catch(t){k(n=>({...n,[e]:{isDeleting:!1,error:t instanceof Error?t.message:String(t)}}))}},le=e.filter(e=>{if(!r&&e.color===`GRAY`)return!1;let t=e.items??[];return!(!i&&t.length>0&&t.every(e=>e.status!==null&&!Je.has(e.status)))}),F=b===null?null:e.find(e=>e.storyOptionId===b)??null,ue=w===null?null:e.find(e=>e.storyOptionId===w)??null,de=D===null?null:e.find(e=>e.storyOptionId===D)??null,fe=D===null?{isDeleting:!1,error:null}:O[D]??{isDeleting:!1,error:null},pe=re===null?null:e.find(e=>e.storyOptionId===re)??null,I=A===null?null:e.find(e=>e.storyOptionId===A)??null;return(0,x.jsxs)(`div`,{className:`console-story-list-container`,children:[(0,x.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,alignItems:`center`,gap:16},children:[(0,x.jsx)(Ye,{label:`Archived`,checked:r,onChange:c}),(0,x.jsx)(Ye,{label:`Done`,checked:i,onChange:l})]}),le.length===0?(0,x.jsx)(`p`,{className:`console-list-empty`,children:`No active stories`}):(0,x.jsx)(`ul`,{className:`console-story-list`,children:le.map((e,t)=>{let n=R(h[e.storyOptionId]??e.color),r=g===e.storyOptionId,i=_[e.storyOptionId]??null,{inProgress:a,error:o}=N(e.storyOptionId),s=t===0,c=t===le.length-1,l=E===e.storyOptionId,u=se===e.storyOptionId,d=e.description??``;return(0,x.jsxs)(`li`,{className:`console-story-list-row`,children:[(0,x.jsxs)(`div`,{className:`console-story-list-row-main`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-story-name-toggle`,style:{cursor:`pointer`},onClick:()=>te(l?null:e.storyOptionId),children:(0,x.jsxs)(`span`,{className:`console-storytag`,style:{color:n.fg,borderColor:n.border},children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:n.dot}}),e.storyName]})}),(0,x.jsx)(`span`,{className:`console-story-count`,children:e.openItemCount}),(0,x.jsx)(`button`,{type:`button`,className:`console-story-chevron`,"aria-label":l?`Hide tasks`:`Show tasks`,onClick:()=>te(l?null:e.storyOptionId),children:l?`▼`:`▶`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>S(b===e.storyOptionId?null:e.storyOptionId),children:`+ Add task`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,"aria-label":`Move up`,disabled:s||a,onClick:()=>void P(e.storyOptionId,`up`),children:`↑`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,"aria-label":`Move down`,disabled:c||a,onClick:()=>void P(e.storyOptionId,`down`),children:`↓`}),(0,x.jsxs)(`div`,{className:`console-story-overflow-container`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-story-overflow-btn`,"aria-label":`More options`,"aria-haspopup":`menu`,"aria-expanded":u,onClick:()=>M(u?null:e.storyOptionId),children:`⋯`}),u&&(0,x.jsxs)(`div`,{role:`menu`,className:`console-story-overflow-menu`,children:[(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option`,disabled:r,onClick:()=>{M(null),T(e.storyOptionId)},children:`Change color`}),(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option`,onClick:()=>{M(null),ie(e.storyOptionId)},children:`Rename`}),(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option`,onClick:()=>{M(null),j(e.storyOptionId)},children:`Edit description`}),(0,x.jsx)(`hr`,{className:`console-story-overflow-separator`}),(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option console-story-overflow-option--danger`,onClick:()=>{M(null),ne(e.storyOptionId)},children:`Delete story`})]})]})]}),d!==``&&(0,x.jsx)(`p`,{className:`console-story-description`,children:d}),l&&(0,x.jsx)(Xe,{items:e.items,onOpenItem:v}),o!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:o}),i!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:i})]},e.storyOptionId)})}),(0,x.jsx)(`div`,{className:`console-add-story-section`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>C(!ee),children:`Add story`})}),F!==null&&(0,x.jsx)(qe,{storyName:F.storyName,onSubmit:(e,t)=>a(e,t),onClose:()=>S(null),onEdit:m===void 0?void 0:(e,t)=>{S(null),m(e,t)}}),ee&&(0,x.jsx)(Ue,{onSubmit:e=>o(e),onClose:()=>C(!1)}),ue!==null&&(0,x.jsx)(He,{storyName:ue.storyName,storyOptionId:ue.storyOptionId,onSelectColor:(e,t)=>{T(null),s(e,t)},onClose:()=>T(null),disabled:g===ue.storyOptionId}),de!==null&&(0,x.jsx)(We,{storyName:de.storyName,isDeleting:fe.isDeleting,deleteError:fe.error,onConfirm:e=>void ce(de.storyOptionId,e),onCancel:()=>{ne(null),k({})}}),pe!==null&&(0,x.jsx)(Ke,{currentName:pe.storyName,onSubmit:e=>f(pe.storyOptionId,e),onClose:()=>ie(null)}),I!==null&&(0,x.jsx)(Ge,{currentDescription:I.description??``,onSubmit:e=>p(I.storyOptionId,e),onClose:()=>j(null)})]})},Qe=5e3,$e=(e,t,n)=>n?`PR ${e}#${t}`:`${e}#${t}`,et=e=>$e(e.nameWithOwner,e.number,e.isPr),tt=(e,t)=>{switch(e.type){case`review`:return e.action===`approve_and_merge`?`Approved & Merged`:e.action===`request_changes`?`Rejected`:e.action===`totally_wrong`?`Marked totally wrong`:`Marked unnecessary`;case`next_action_date`:return e.action===`snooze_1hour`?`Next Action Hour +1h`:e.action===`snooze_3hours`?`Next Action Hour +3h`:e.action===`snooze_6hours`?`Next Action Hour +6h`:e.action===`snooze_1day`?`Next Action Date +1d`:e.action===`snooze_2days`?`Next Action Date +2d`:e.action===`snooze_3days`?`Next Action Date +3d`:e.action===`snooze_5days`?`Next Action Date +5d`:e.action===`snooze_1month`?`Next Action Date +1mo`:ke(t)?`Next Action Date +1w skip`:`Next Action Date +1w`;case`set_story`:return`Story → ${e.optionName}`;case`set_agent`:return`Agent → ${e.optionName}`;case`set_status`:return`Status → ${e.optionName}`;case`set_in_tmux_by_human`:return`Added to In Tmux by human`;case`ok_and_awaiting_workspace`:return`ok → Awaiting Workspace`;case`ok_and_close`:return`ok → Closed`;case`close`:return e.action===`close`?`Closed`:`Closed as not planned`;case`delete_all_comments`:return`Deleted all comments`}},nt=e=>{switch(e.type){case`review`:return e.action===`approve_and_merge`?`green`:e.action===`request_changes`?`amber`:e.action===`totally_wrong`?`red`:`gray`;case`next_action_date`:return`amber`;case`set_story`:case`set_agent`:case`set_status`:case`set_in_tmux_by_human`:case`ok_and_awaiting_workspace`:return`blue`;case`ok_and_close`:case`close`:return`red`;case`delete_all_comments`:return`red`}},rt=(e,t)=>e.type===`next_action_date`?ke(t):e.type!==`delete_all_comments`,it=(e,t,n)=>`${tt(e,n)} — ${et(t)}`,at=(e,t)=>{let n=[...e].sort((e,t)=>e.createdAt-t.createdAt);if(n.length<=t)return{visibleEntries:n,collapsedEntries:[],collapsedCount:0};let r=n.length-t;return{visibleEntries:n.slice(r),collapsedEntries:n.slice(0,r),collapsedCount:r}},ot=({message:e,color:t,remainingSeconds:n,progress:r,onUndo:i,onDismiss:a})=>(0,x.jsxs)(`div`,{className:`console-undo-toast console-undo-toast-${t}`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(`span`,{className:`console-undo-toast-message`,children:e}),(0,x.jsx)(`button`,{type:`button`,className:`console-undo-toast-undo`,onClick:i,children:`Undo`}),(0,x.jsxs)(`span`,{className:`console-undo-toast-countdown`,"aria-hidden":`true`,children:[n,`s`]}),a!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-undo-toast-dismiss`,onClick:a,children:`✕`}),(0,x.jsx)(`span`,{className:`console-undo-toast-bar`,"aria-hidden":`true`,style:{width:`${Math.max(0,Math.min(100,r*100))}%`}})]}),st=({title:e,message:t,onDismiss:n,onRetry:r})=>(0,x.jsxs)(`div`,{className:`console-undo-toast-error console-error-toast`,role:`alert`,"aria-live":`assertive`,children:[e!==void 0&&(0,x.jsx)(`span`,{className:`console-error-toast-title`,children:e}),(0,x.jsx)(`span`,{className:`console-error-toast-message`,children:t}),(0,x.jsxs)(`div`,{className:`console-error-toast-actions`,children:[r!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-error-toast-retry`,onClick:r,children:`Retry`}),(0,x.jsx)(`button`,{type:`button`,className:`console-error-toast-dismiss`,onClick:n,children:`Dismiss`})]})]}),ct=e=>Math.max(0,Math.ceil((Qe-e)/1e3)),lt=e=>Math.max(0,1-e/Qe),ut=12,dt=8,ft=`console-action-toast-stack-toggle`,pt=({pendingEntries:e,errorEntries:t,displayLimit:n,onUndo:r,onDismiss:i,onDismissError:a})=>{let[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(()=>Date.now()),u=e.length>0;(0,y.useEffect)(()=>{if(!u)return;let e=setInterval(()=>l(Date.now()),100);return()=>clearInterval(e)},[u]);let d=[...e.map(e=>({kind:`pending`,id:e.id,createdAt:e.createdAt,entry:e})),...t.map(e=>({kind:`error`,id:e.id,createdAt:e.createdAt,entry:e}))],{visibleEntries:f,collapsedEntries:p,collapsedCount:m}=at(d,n),h=[...[...f].reverse().map(e=>e.id),...o?[...p].reverse().map(e=>e.id):[],...m>0?[ft]:[]],g=(0,y.useRef)(null),_=(0,y.useRef)(new Map);if((0,y.useLayoutEffect)(()=>{let e=ut;for(let t of h){let n=t===ft?g.current:_.current.get(t)?.firstElementChild??null;n instanceof HTMLElement&&(n.style.bottom=`${e}px`,e+=n.getBoundingClientRect().height+dt)}}),d.length===0)return null;let v=e=>e.kind===`pending`?(0,x.jsx)(ot,{message:e.entry.message,color:e.entry.color,remainingSeconds:ct(c-e.entry.createdAt),progress:lt(c-e.entry.createdAt),onUndo:()=>r(e.id),onDismiss:()=>i(e.id)},e.id):(0,x.jsx)(st,{title:e.entry.message,message:`Operation failed: ${e.entry.reason}`,onDismiss:()=>a(e.id),onRetry:e.entry.retry===void 0?void 0:()=>{a(e.id),e.entry.retry?.()}},e.id),b=e=>(0,x.jsx)(`div`,{className:`console-action-toast-stack-entry`,ref:t=>{t?_.current.set(e.id,t):_.current.delete(e.id)},children:v(e)},e.id);return(0,x.jsxs)(`div`,{className:`console-action-toast-stack`,children:[m>0&&(0,x.jsx)(`button`,{type:`button`,ref:g,className:`console-action-toast-stack-toggle`,onClick:()=>s(e=>!e),children:o?`Show less`:`+${m} more`}),o&&p.map(b),f.map(b)]})},mt=e=>$e(e.nameWithOwner,e.itemNumber,e.isPr),ht=e=>e===null?`loading…`:e,gt=e=>{let t=[];return t.push(`CI: ${e.isCiStateSuccess?`pass`:`fail`}`),t.push(`Merge: ${e.mergeableStatus.toLowerCase()}`),e.isBranchOutOfDate&&t.push(`branch out of date`),t.join(` · `)},_t=e=>e.fetchError?`${mt(e)} — failed to load current state`:e.currentTitle===null?`${mt(e)} — loading current state…`:`${mt(e)} — ${e.currentTitle} (${ht(e.currentState)})`,vt=({actions:e,isOnline:t,isConfirming:n,onConfirm:r,onDiscard:i})=>e.length===0?null:(0,x.jsxs)(`section`,{className:`console-offline-panel`,"aria-label":`Offline actions queue`,children:[(0,x.jsxs)(`div`,{className:`console-offline-panel-header`,children:[e.length,` action`,e.length===1?``:`s`,` held`,t?` — confirm each before sending`:` — awaiting connectivity`]}),e.map(e=>(0,x.jsxs)(`div`,{className:`console-offline-panel-item console-offline-panel-item-${e.color}`,children:[(0,x.jsx)(`div`,{className:`console-offline-panel-item-message`,children:e.message}),(0,x.jsx)(`div`,{className:`console-offline-panel-item-target`,children:_t(e)}),e.fetchError&&(0,x.jsx)(`div`,{className:`console-offline-panel-item-fetch-error`,children:`Failed to load current state — sending will act on the last known state`}),t&&e.isPr&&e.currentPrStatus!==null&&!e.fetchError&&(0,x.jsx)(`div`,{className:`console-offline-panel-item-pr-status`,children:gt(e.currentPrStatus)}),(0,x.jsxs)(`div`,{className:`console-offline-panel-item-controls`,children:[t&&(0,x.jsx)(`button`,{type:`button`,className:`console-offline-panel-confirm`,disabled:n||e.currentTitle===null&&!e.fetchError,onClick:()=>r(e.id),children:`Send`}),(0,x.jsx)(`button`,{type:`button`,className:`console-offline-panel-discard`,onClick:()=>i(e.id),children:`Discard`})]})]},e.id))]}),yt=(e,t)=>Object.keys(t.items).length===0&&t.failures.length>0?{status:`error`,failures:t.failures}:{status:`on`,snapshot:{capturedAt:t.capturedAt,tabs:e===null?t.tabs:{...e.tabs,...t.tabs},items:e===null?t.items:{...e.items,...t.items},failures:t.failures}},bt=`tdpm-airplane-v1`,xt=`/airplane-snapshot-data`,St=`tdpm_airplane_mode_on`,Ct=()=>typeof localStorage>`u`?!1:localStorage.getItem(St)===`1`,wt=e=>{typeof localStorage<`u`&&(e?localStorage.setItem(St,`1`):localStorage.removeItem(St))},Tt=async e=>{if(typeof caches>`u`)throw Error(`Cache API unavailable`);try{await(await caches.open(bt)).put(xt,new Response(JSON.stringify(e),{headers:{"Content-Type":`application/json`}}))}catch(e){throw e instanceof Error&&e.name===`QuotaExceededError`?Error(`Not enough browser storage to save the offline snapshot. Free up storage and retry.`):e}},Et=async()=>{if(typeof caches>`u`)return null;let e=await(await caches.open(bt)).match(xt);return e===void 0?null:e.json()},Dt=async()=>{typeof caches<`u`&&await caches.delete(bt)},Ot=e=>typeof e==`object`&&!!e&&!Array.isArray(e),kt=e=>typeof e==`string`?e:``,At=e=>typeof e==`number`?e:0,jt=e=>e===!0,Mt=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],Nt=e=>e===`MERGEABLE`?`MERGEABLE`:e===`CONFLICTING`?`CONFLICTING`:`UNKNOWN`,Pt=e=>Ot(e)?{number:At(e.number),title:kt(e.title),url:kt(e.url),repo:kt(e.repo),nameWithOwner:kt(e.nameWithOwner),projectItemId:kt(e.projectItemId),itemId:kt(e.itemId),isPr:jt(e.isPr),story:kt(e.story),storyOptionId:typeof e.storyOptionId==`string`?e.storyOptionId:null,status:typeof e.status==`string`?e.status:null,nextActionDate:typeof e.nextActionDate==`string`?e.nextActionDate:null,nextActionHour:typeof e.nextActionHour==`number`?e.nextActionHour:null,dependedIssueUrls:Mt(e.dependedIssueUrls),labels:Mt(e.labels),createdAt:kt(e.createdAt),relatedOpenPullRequestUrls:Mt(e.relatedOpenPullRequestUrls),agent:typeof e.agent==`string`?e.agent:null}:null,B=e=>{if(!Ot(e))return{items:[],generatedAt:``,statusOptions:[],agentOptions:[],storyOptions:[],storyColors:{},stories:[],defaultNameWithOwner:null,fromCache:!1,storyOrder:[],timerEndsAt:null,timerTotalSeconds:null};let t=Array.isArray(e.items)?e.items.map(Pt).filter(e=>e!==null):[],n=Array.isArray(e.statusOptions)?e.statusOptions.filter(Ot):[],r=Array.isArray(e.agentOptions)?e.agentOptions.filter(Ot):[],i=Array.isArray(e.storyOptions)?e.storyOptions.filter(Ot):[],a=Array.isArray(e.stories)?e.stories.filter(Ot):[],o=Array.isArray(e.storyOrder)?e.storyOrder.filter(e=>typeof e==`string`):[];return{items:t,generatedAt:typeof e.generatedAt==`string`?e.generatedAt:``,statusOptions:n,agentOptions:r,storyOptions:i,storyColors:Ot(e.storyColors)?e.storyColors:{},stories:a,defaultNameWithOwner:typeof e.defaultNameWithOwner==`string`?e.defaultNameWithOwner:null,fromCache:!1,storyOrder:o,timerEndsAt:null,timerTotalSeconds:null}},Ft=e=>Ot(e)?{id:At(e.id),author:kt(e.author),body:kt(e.body),createdAt:kt(e.createdAt)}:null,It=e=>Ot(e)?{path:kt(e.path),additions:At(e.additions),deletions:At(e.deletions),status:kt(e.status),patch:typeof e.patch==`string`?e.patch:null,rawUrl:typeof e.rawUrl==`string`?e.rawUrl:null}:null,Lt=e=>Ot(e)?{sha:kt(e.sha),message:kt(e.message),author:kt(e.author),authoredAt:kt(e.authoredAt)}:null,Rt=e=>Ot(e)?{found:jt(e.found),isConflicted:jt(e.isConflicted),mergeableStatus:Nt(e.mergeableStatus),isPassedAllCiJob:jt(e.isPassedAllCiJob),isCiStateSuccess:jt(e.isCiStateSuccess),isBranchOutOfDate:jt(e.isBranchOutOfDate),missingRequiredCheckNames:Mt(e.missingRequiredCheckNames)}:{found:!1,isConflicted:!1,mergeableStatus:`UNKNOWN`,isPassedAllCiJob:!1,isCiStateSuccess:!1,isBranchOutOfDate:!1,missingRequiredCheckNames:[]},zt=e=>{if(!Ot(e))return null;let t=Ot(e.summary)?{title:kt(e.summary.title),body:kt(e.summary.body),additions:At(e.summary.additions),deletions:At(e.summary.deletions),changedFiles:At(e.summary.changedFiles)}:null;return{url:kt(e.url),branchName:typeof e.branchName==`string`?e.branchName:null,createdAt:kt(e.createdAt),isDraft:jt(e.isDraft),isConflicted:jt(e.isConflicted),mergeableStatus:Nt(e.mergeableStatus),isPassedAllCiJob:jt(e.isPassedAllCiJob),isCiStateSuccess:jt(e.isCiStateSuccess),isResolvedAllReviewComments:jt(e.isResolvedAllReviewComments),isBranchOutOfDate:jt(e.isBranchOutOfDate),missingRequiredCheckNames:Mt(e.missingRequiredCheckNames),summary:t}},Bt=e=>{if(!Ot(e))return{body:``,comments:[],state:{state:`open`,merged:!1,isPullRequest:!1,title:``},files:null,commits:null,prStatus:null,relatedPrs:null};let t=Ot(e.state)?e.state:{},n={state:kt(t.state)||`open`,merged:jt(t.merged),isPullRequest:jt(t.isPullRequest),title:kt(t.title)},r=e.files===null?null:Array.isArray(e.files)?e.files.map(It).filter(e=>e!==null):null,i=e.commits===null?null:Array.isArray(e.commits)?e.commits.map(Lt).filter(e=>e!==null):null,a=e.prStatus===null?null:Rt(e.prStatus),o=e.relatedPrs===null?null:Array.isArray(e.relatedPrs)?e.relatedPrs.map(zt).filter(e=>e!==null):null;return{body:kt(e.body),comments:Array.isArray(e.comments)?e.comments.map(Ft).filter(e=>e!==null):[],state:n,files:r,commits:i,prStatus:a,relatedPrs:o}},Vt=e=>{if(!Ot(e))return null;let t=typeof e.capturedAt==`string`?e.capturedAt:``,n=Mt(e.failures),r={};if(Ot(e.tabs))for(let[t,n]of Object.entries(e.tabs)){if(!Ot(n))continue;let e={};for(let[t,r]of Object.entries(n))e[t]=B(r);r[t]=e}let i={};if(Ot(e.items))for(let[t,n]of Object.entries(e.items))i[t]=Bt(n);return{capturedAt:t,tabs:r,items:i,failures:n}},Ht=`/api/airplanesync`,Ut=e=>{try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)&&`type`in t&&typeof t.type==`string`?t:null}catch{return null}},Wt=()=>{let[e,t]=(0,y.useState)(`off`),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)([]),u=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!Ct())return;let e=!1;return Et().then(n=>{e||n===null||(a(n),t(`on`))}).catch(()=>{wt(!1)}),()=>{e=!0}},[]);let d=(0,y.useCallback)(async(e,n,i)=>{let o=e.getReader(),c=new TextDecoder,u=``;for(;;){let{done:e,value:d}=await o.read();if(e)break;u+=c.decode(d,{stream:!0});let f=u.split(`
14
+ `),Ee=`In Tmux by human`,De=`Awaiting Workspace`,Oe=[`In Tmux by human`,`Todo by human`,De],ke=e=>e===`todo-by-human`,Ae=({statusOptions:e,onOkAndAwaitingWorkspace:t})=>{let n=e.find(e=>e.name.toLowerCase()===De.toLowerCase());if(n===void 0)return null;let r=R(n.color);return(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,style:{color:r.fg,borderColor:r.border,backgroundColor:r.bg},onClick:()=>t(n),children:`ok & Awaiting Workspace`})})},je={issueOpen:{color:`#3fb950`,paths:[`M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z`,`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z`]},issueClosed:{color:`#a371f7`,paths:[`M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z`,`M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z`]},issueClosedNotPlanned:{color:`#848d97`,paths:[`M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z`]},prOpen:{color:`#3fb950`,paths:[`M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z`]},prMerged:{color:`#a371f7`,paths:[`M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.75 0 1 0 0 .005V3.25Z`]},prClosed:{color:`#f85149`,paths:[`M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 5.5a.75.75 0 0 1 .75.75v3.378a2.251 2.251 0 1 1-1.5 0V7.25a.75.75 0 0 1 .75-.75Zm-2.03-5.273a.75.75 0 0 1 1.06 0l.97.97.97-.97a.748.748 0 0 1 1.265.332.75.75 0 0 1-.205.729l-.97.97.97.97a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-.97-.97-.97.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l.97-.97-.97-.97a.75.75 0 0 1 0-1.06ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z`]},prDraft:{color:`#8b949e`,paths:[`M3.25 1A2.25 2.25 0 0 1 4 5.372v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.251 2.251 0 0 1 3.25 1Zm9.5 14a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM2.5 3.25a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0ZM3.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm9.5 0a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM14 7.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm0-4.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Z`]}},Me=({isPr:e,state:t,merged:n,isDraft:r,stateReason:i})=>e?r?`prDraft`:n?`prMerged`:t===`closed`?`prClosed`:`prOpen`:t===`closed`?i===`not_planned`?`issueClosedNotPlanned`:`issueClosed`:`issueOpen`,Ne=({size:e=12,...t})=>{let n=Me(t),r=je[n];return(0,x.jsx)(`svg`,{className:`console-item-icon`,viewBox:`0 0 16 16`,width:e,height:e,fill:r.color,role:`img`,"aria-label":n,children:r.paths.map(e=>(0,x.jsx)(`path`,{d:e},e))})},Pe=({item:e,isActive:t,now:n,statusOptions:r=[],onSelect:i})=>(0,x.jsx)(`button`,{type:`button`,className:`console-item-row`,"aria-current":t?`true`:void 0,"data-active":t?`true`:void 0,onClick:()=>i(e),children:(0,x.jsxs)(`span`,{className:`console-item-meta`,children:[(0,x.jsxs)(`span`,{className:`console-item-title`,children:[(0,x.jsx)(Ne,{isPr:e.isPr,state:`open`,merged:!1,isDraft:!1,stateReason:``}),e.title]}),(0,x.jsxs)(`span`,{className:`console-item-sub`,children:[(0,x.jsxs)(`span`,{className:`console-item-pill`,children:[`#`,e.number]}),e.repo!==``&&(0,x.jsx)(`span`,{className:`console-item-pill`,children:e.repo}),(0,x.jsx)(`span`,{className:`console-item-pill`,children:e.isPr?`PR`:`Issue`}),e.createdAt!==``&&(0,x.jsxs)(`span`,{className:`console-item-opened`,children:[` · opened `,(0,x.jsx)(`span`,{className:`console-item-createdat`,title:ie(e.createdAt),children:k(e.createdAt,n)})]}),e.status!==null&&e.status!==``&&(0,x.jsx)(`span`,{className:`console-item-status-badge`,style:me(r.find(t=>t.name===e.status)?.color??null),children:e.status})]}),(e.nextActionDate!==null||e.nextActionHour!==null||e.dependedIssueUrls.length>0)&&(0,x.jsxs)(`span`,{className:`console-item-fields`,children:[e.nextActionDate!==null&&(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Next Action Date`}),e.nextActionDate.slice(0,10)]}),e.nextActionHour!==null&&(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Next Action Hour`}),e.nextActionHour]}),e.dependedIssueUrls.length>0&&(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Depended Issue URL`}),e.dependedIssueUrls.join(`, `)]})]}),e.agent!==null&&e.agent!==``&&(0,x.jsx)(`span`,{className:`console-item-status-agent`,children:(0,x.jsxs)(`span`,{className:`console-item-field`,children:[(0,x.jsx)(`span`,{className:`console-item-field-label`,children:`Agent`}),e.agent]})})]})}),Fe=({story:e,count:t,colorEnum:n})=>{let r=R(n);return(0,x.jsxs)(`div`,{className:`console-group-header`,children:[(0,x.jsxs)(`span`,{className:`console-storytag`,children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:r.dot}}),e]}),(0,x.jsx)(`span`,{className:`console-group-count`,children:t})]})},Ie=({rows:e,storyColors:t,statusOptions:n=[],activeItemId:r,now:i,isLoading:a,error:o,onSelectItem:s,executiveSummaries:c,onOkAndAwaitingWorkspace:l})=>o===null?a?(0,x.jsx)(`p`,{className:`console-list-message`,children:`Loading list...`}):e.length===0?(0,x.jsx)(`p`,{className:`console-list-empty`,children:`No items`}):(0,x.jsx)(`ul`,{className:`console-list`,children:e.map(e=>{if(e.kind===`group-header`)return(0,x.jsx)(`li`,{className:`console-list-group`,children:(0,x.jsx)(Fe,{story:e.story,count:e.count,colorEnum:ge(t,e.storyOptionId??e.story)})},`group:${e.groupKey}`);let a=c?.[e.item.projectItemId]??null;return(0,x.jsxs)(`li`,{className:`console-list-row`,children:[(0,x.jsx)(Pe,{item:e.item,isActive:e.item.itemId===r,now:i,statusOptions:n,onSelect:s}),a!==null&&a!==``&&(0,x.jsx)(`span`,{className:`console-item-executive-summary`,children:a}),l!==void 0&&(0,x.jsx)(Ae,{statusOptions:n,onOkAndAwaitingWorkspace:t=>l(e.item,t)})]},e.item.itemId)})}):(0,x.jsxs)(`p`,{role:`alert`,className:`console-list-message console-list-error`,children:[`Failed to load list: `,o]}),Le=({agentOptions:e,agentCounts:t,selectedAgent:n,onAgentChange:r})=>{let i=e.filter(e=>(t[e.name]??0)>0);return i.length===0?null:(0,x.jsx)(`div`,{className:`console-prs-agent-filter`,children:(0,x.jsxs)(`select`,{value:n??``,onChange:e=>r(e.target.value===``?null:e.target.value),"aria-label":`Filter by agent`,children:[(0,x.jsx)(`option`,{value:``,children:`All agents`}),i.map(e=>(0,x.jsxs)(`option`,{value:e.name,children:[e.name,` (`,t[e.name],`)`]},e.id))]})})},Re=e=>({...me(e),fontSize:`12px`,whiteSpace:`nowrap`,flexShrink:0}),ze=({item:e,isActive:t,statusOptions:n,agentOptions:r,onSelect:i})=>{let a=n.find(t=>t.name===e.status),o=r.find(t=>t.name===e.agent);return(0,x.jsxs)(`button`,{type:`button`,className:`console-item-row console-queued-item-row`,"aria-current":t?`true`:void 0,"data-active":t?`true`:void 0,onClick:()=>i(e),children:[(0,x.jsx)(Ne,{isPr:e.isPr,state:`open`,merged:!1,isDraft:!1,stateReason:``}),(0,x.jsx)(`span`,{className:`console-queued-item-title`,children:e.title}),(0,x.jsxs)(`span`,{className:`console-queued-item-badges`,children:[e.status!==null&&e.status!==``&&(0,x.jsx)(`span`,{className:`console-queued-item-badge`,style:Re(a?.color??null),children:e.status}),e.agent!==null&&e.agent!==``&&(0,x.jsx)(`span`,{className:`console-queued-item-badge`,style:Re(o?.color??null),children:e.agent})]}),(0,x.jsx)(`span`,{className:`console-queued-item-actions`})]})},Be=({rows:e,storyColors:t,statusOptions:n,agentOptions:r,activeItemId:i,isLoading:a,error:o,onSelectItem:s})=>o===null?a?(0,x.jsx)(`p`,{className:`console-list-message`,children:`Loading list...`}):e.length===0?(0,x.jsx)(`p`,{className:`console-list-empty`,children:`No items`}):(0,x.jsx)(`ul`,{className:`console-list`,children:e.map(e=>e.kind===`group-header`?(0,x.jsx)(`li`,{className:`console-list-group`,children:(0,x.jsx)(Fe,{story:e.story,count:e.count,colorEnum:ge(t,e.storyOptionId??e.story)})},`group:${e.groupKey}`):(0,x.jsx)(`li`,{className:`console-list-row`,children:(0,x.jsx)(ze,{item:e.item,isActive:e.item.itemId===i,statusOptions:n,agentOptions:r,onSelect:s})},e.item.itemId))}):(0,x.jsxs)(`p`,{role:`alert`,className:`console-list-message console-list-error`,children:[`Failed to load list: `,o]}),Ve=Object.keys(L),He=({storyName:e,storyOptionId:t,onSelectColor:n,onClose:r,disabled:i})=>{(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]);let a=e=>{n(t,e),r()};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Change color for ${e}`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:r}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsxs)(`h2`,{className:`console-modal-title`,children:[`Change color for `,e]}),(0,x.jsx)(`div`,{className:`console-story-color-palette`,children:Ve.map(e=>{let t=L[e];return(0,x.jsx)(`button`,{type:`button`,className:`console-story-color-swatch`,"aria-label":e===`GRAY`?`${e} (disable)`:e,style:{backgroundColor:t.dot},onClick:()=>a(e),disabled:i,children:e===`GRAY`&&(0,x.jsx)(`span`,{className:`console-story-color-swatch-label`,children:`disable`})},e)})}),(0,x.jsx)(`div`,{className:`console-modal-actions`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:r,children:`Cancel`})})]})]})},Ue=({onSubmit:e,onClose:t})=>{let[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=(0,y.useRef)(null);(0,y.useEffect)(()=>{c.current?.focus()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t]);let l=async()=>{let r=n.trim();if(r.length===0){s(`Story name is required`);return}a(!0),s(null);try{await e(r),t()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Add story`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:t}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Add story`}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),l()},children:[(0,x.jsx)(`input`,{ref:c,type:`text`,className:`console-modal-input`,placeholder:`Story name`,value:n,onChange:e=>r(e.target.value),disabled:i}),o!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:o}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:i,children:i?`Creating…`:`Create`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:t,disabled:i,children:`Cancel`})]})]})]})]})},We=({storyName:e,isDeleting:t,deleteError:n,onConfirm:r,onCancel:i})=>((0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[i]),(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Confirm story deletion`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:i}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Delete story`}),(0,x.jsxs)(`p`,{className:`console-story-delete-confirm-message`,children:[`Delete story option "`,e,`" from the GitHub custom field?`]}),n!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:n}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>r(!0),disabled:t,children:t?`Deleting…`:`Delete with child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>r(!1),disabled:t,children:t?`Deleting…`:`Keep child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:i,disabled:t,children:`Cancel`})]})]})]})),Ge=({currentDescription:e,onSubmit:t,onClose:n})=>{let[r,i]=(0,y.useState)(e),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{l.current?.focus(),l.current?.select()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n]);let u=async()=>{o(!0),c(null);try{await t(r.trim()),n()}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Edit story description`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:n}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Edit story description`}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),u()},children:[(0,x.jsx)(`textarea`,{ref:l,className:`console-modal-input`,placeholder:`Story description`,value:r,onChange:e=>i(e.target.value),disabled:a,rows:4}),s!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:s}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:a,children:a?`Saving…`:`Save`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:n,disabled:a,children:`Cancel`})]})]})]})]})},Ke=({currentName:e,onSubmit:t,onClose:n})=>{let[r,i]=(0,y.useState)(e),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{l.current?.focus(),l.current?.select()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n]);let u=async()=>{let e=r.trim();if(e.length===0){c(`Story name is required`);return}o(!0),c(null);try{await t(e),n()}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Rename story`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:n}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsx)(`h2`,{className:`console-modal-title`,children:`Rename story`}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),u()},children:[(0,x.jsx)(`input`,{ref:l,type:`text`,className:`console-modal-input`,placeholder:`Story name`,value:r,onChange:e=>i(e.target.value),disabled:a}),s!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:s}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:a,children:a?`Renaming…`:`Rename`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:n,disabled:a,children:`Cancel`})]})]})]})]})},qe=({storyName:e,onSubmit:t,onClose:n,onEdit:r})=>{let[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current?.focus()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n]);let p=async()=>{let r=i.trim();if(r.length===0){l(`Title is required`);return}s(!0),l(null);try{await t(e,r),n()}catch(e){l(e instanceof Error?e.message:String(e)),d(!0)}finally{s(!1)}};return(0,x.jsxs)(`div`,{className:`console-modal-dialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Add task to ${e}`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-modal-backdrop`,"aria-label":`Close dialog`,onClick:n}),(0,x.jsxs)(`div`,{className:`console-modal-inner`,children:[(0,x.jsxs)(`h2`,{className:`console-modal-title`,children:[`Add task to `,e]}),(0,x.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),p()},children:[(0,x.jsx)(`input`,{ref:f,type:`text`,className:`console-modal-input`,placeholder:`Issue title`,value:i,onChange:e=>a(e.target.value),disabled:o}),c!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:c}),(0,x.jsxs)(`div`,{className:`console-modal-actions`,children:[(0,x.jsx)(`button`,{type:`submit`,className:`console-op-button`,disabled:o,children:o?`Creating…`:`Create`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:n,disabled:o,children:`Cancel`}),u&&r!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>{r(e,i),n()},disabled:o,children:`Edit`})]})]})]})]})},Je=new Set([`Todo by human`,`Awaiting Owner`,`Failed Preparation`,`In Tmux by human`]),Ye=({label:e,checked:t,onChange:n})=>(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,x.jsx)(`span`,{style:{fontSize:`0.875rem`,color:`#c9d1d9`},children:e}),(0,x.jsx)(S,{checked:t,ariaLabel:e,onChange:()=>n()})]}),Xe=({items:e,onOpenItem:t})=>(0,x.jsx)(`ul`,{className:`console-story-task-list`,children:e.map(e=>(0,x.jsxs)(`li`,{className:`console-story-task-row`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-story-task-title`,onClick:()=>t(e),children:e.title}),(0,x.jsx)(`span`,{className:`console-story-task-status`,children:e.status??`—`}),(0,x.jsx)(`span`,{className:`console-story-task-agent`,children:e.agent??`—`}),(0,x.jsx)(`span`,{className:`console-story-task-depended-urls`,children:e.dependedIssueUrls.length>0?e.dependedIssueUrls.join(`, `):`—`}),(0,x.jsx)(`span`,{className:`console-story-task-next-action-date`,children:e.nextActionDate===null?`—`:e.nextActionDate.slice(0,10)}),(0,x.jsx)(`span`,{className:`console-story-task-next-action-hour`,children:e.nextActionHour===null?`—`:String(e.nextActionHour)})]},e.url))}),Ze=({stories:e,isLoading:t,error:n,showArchived:r,showDone:i,onCreateIssue:a,onAddStory:o,onSelectColor:s,onToggleArchived:c,onToggleDone:l,onReorderStory:u,onDeleteStory:d,onRenameStory:f,onUpdateDescription:p,onStoryTaskCreateEdit:m,optimisticColors:h,colorChangeInFlight:g,colorErrors:_,onOpenItem:v})=>{let[b,S]=(0,y.useState)(null),[ee,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,te]=(0,y.useState)(null),[D,ne]=(0,y.useState)(null),[O,k]=(0,y.useState)({}),[re,ie]=(0,y.useState)(null),[A,j]=(0,y.useState)(null),[ae,oe]=(0,y.useState)({}),[se,M]=(0,y.useState)(null);(0,y.useEffect)(()=>{if(se===null)return;let e=e=>{let t=e.target;!t.closest(`.console-story-overflow-menu`)&&!t.closest(`.console-story-overflow-btn`)&&M(null)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[se]);let N=e=>ae[e]??{inProgress:!1,error:null},P=async(e,t)=>{oe(t=>({...t,[e]:{inProgress:!0,error:null}}));try{await u(e,t),oe(t=>({...t,[e]:{inProgress:!1,error:null}}))}catch(t){oe(n=>({...n,[e]:{inProgress:!1,error:t instanceof Error?t.message:String(t)}}))}};if(n!==null)return(0,x.jsxs)(`p`,{role:`alert`,className:`console-list-message console-list-error`,children:[`Failed to load stories: `,n]});if(t)return(0,x.jsx)(`p`,{className:`console-list-message`,children:`Loading stories...`});let ce=async(e,t)=>{k(t=>({...t,[e]:{isDeleting:!0,error:null}}));try{await d(e,t),ne(null),k(t=>({...t,[e]:{isDeleting:!1,error:null}}))}catch(t){k(n=>({...n,[e]:{isDeleting:!1,error:t instanceof Error?t.message:String(t)}}))}},le=e.filter(e=>{if(!r&&e.color===`GRAY`)return!1;let t=e.items??[];return!(!i&&t.length>0&&t.every(e=>e.status!==null&&!Je.has(e.status)))}),F=b===null?null:e.find(e=>e.storyOptionId===b)??null,ue=w===null?null:e.find(e=>e.storyOptionId===w)??null,de=D===null?null:e.find(e=>e.storyOptionId===D)??null,fe=D===null?{isDeleting:!1,error:null}:O[D]??{isDeleting:!1,error:null},pe=re===null?null:e.find(e=>e.storyOptionId===re)??null,I=A===null?null:e.find(e=>e.storyOptionId===A)??null;return(0,x.jsxs)(`div`,{className:`console-story-list-container`,children:[(0,x.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,alignItems:`center`,gap:16},children:[(0,x.jsx)(Ye,{label:`Archived`,checked:r,onChange:c}),(0,x.jsx)(Ye,{label:`Done`,checked:i,onChange:l})]}),le.length===0?(0,x.jsx)(`p`,{className:`console-list-empty`,children:`No active stories`}):(0,x.jsx)(`ul`,{className:`console-story-list`,children:le.map((e,t)=>{let n=R(h[e.storyOptionId]??e.color),r=g===e.storyOptionId,i=_[e.storyOptionId]??null,{inProgress:a,error:o}=N(e.storyOptionId),s=t===0,c=t===le.length-1,l=E===e.storyOptionId,u=se===e.storyOptionId,d=e.description??``;return(0,x.jsxs)(`li`,{className:`console-story-list-row`,children:[(0,x.jsxs)(`div`,{className:`console-story-list-row-main`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-story-name-toggle`,style:{cursor:`pointer`},onClick:()=>te(l?null:e.storyOptionId),children:(0,x.jsxs)(`span`,{className:`console-storytag`,style:{color:n.fg,borderColor:n.border},children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:n.dot}}),e.storyName]})}),(0,x.jsx)(`span`,{className:`console-story-count`,children:e.openItemCount}),(0,x.jsx)(`button`,{type:`button`,className:`console-story-chevron`,"aria-label":l?`Hide tasks`:`Show tasks`,onClick:()=>te(l?null:e.storyOptionId),children:l?`▼`:`▶`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>S(b===e.storyOptionId?null:e.storyOptionId),children:`+ Add task`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,"aria-label":`Move up`,disabled:s||a,onClick:()=>void P(e.storyOptionId,`up`),children:`↑`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,"aria-label":`Move down`,disabled:c||a,onClick:()=>void P(e.storyOptionId,`down`),children:`↓`}),(0,x.jsxs)(`div`,{className:`console-story-overflow-container`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-story-overflow-btn`,"aria-label":`More options`,"aria-haspopup":`menu`,"aria-expanded":u,onClick:()=>M(u?null:e.storyOptionId),children:`⋯`}),u&&(0,x.jsxs)(`div`,{role:`menu`,className:`console-story-overflow-menu`,children:[(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option`,disabled:r,onClick:()=>{M(null),T(e.storyOptionId)},children:`Change color`}),(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option`,onClick:()=>{M(null),ie(e.storyOptionId)},children:`Rename`}),(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option`,onClick:()=>{M(null),j(e.storyOptionId)},children:`Edit description`}),(0,x.jsx)(`hr`,{className:`console-story-overflow-separator`}),(0,x.jsx)(`button`,{type:`button`,role:`menuitem`,className:`console-story-overflow-option console-story-overflow-option--danger`,onClick:()=>{M(null),ne(e.storyOptionId)},children:`Delete story`})]})]})]}),d!==``&&(0,x.jsx)(`p`,{className:`console-story-description`,children:d}),l&&(0,x.jsx)(Xe,{items:e.items,onOpenItem:v}),o!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:o}),i!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:i})]},e.storyOptionId)})}),(0,x.jsx)(`div`,{className:`console-add-story-section`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>C(!ee),children:`Add story`})}),F!==null&&(0,x.jsx)(qe,{storyName:F.storyName,onSubmit:(e,t)=>a(e,t),onClose:()=>S(null),onEdit:m===void 0?void 0:(e,t)=>{S(null),m(e,t)}}),ee&&(0,x.jsx)(Ue,{onSubmit:e=>o(e),onClose:()=>C(!1)}),ue!==null&&(0,x.jsx)(He,{storyName:ue.storyName,storyOptionId:ue.storyOptionId,onSelectColor:(e,t)=>{T(null),s(e,t)},onClose:()=>T(null),disabled:g===ue.storyOptionId}),de!==null&&(0,x.jsx)(We,{storyName:de.storyName,isDeleting:fe.isDeleting,deleteError:fe.error,onConfirm:e=>void ce(de.storyOptionId,e),onCancel:()=>{ne(null),k({})}}),pe!==null&&(0,x.jsx)(Ke,{currentName:pe.storyName,onSubmit:e=>f(pe.storyOptionId,e),onClose:()=>ie(null)}),I!==null&&(0,x.jsx)(Ge,{currentDescription:I.description??``,onSubmit:e=>p(I.storyOptionId,e),onClose:()=>j(null)})]})},Qe=5e3,$e=(e,t,n)=>n?`PR ${e}#${t}`:`${e}#${t}`,et=e=>$e(e.nameWithOwner,e.number,e.isPr),tt=(e,t)=>{switch(e.type){case`review`:return e.action===`approve_and_merge`?`Approved & Merged`:e.action===`request_changes`?`Rejected`:e.action===`totally_wrong`?`Marked totally wrong`:`Marked unnecessary`;case`next_action_date`:return e.action===`snooze_1hour`?`Next Action Hour +1h`:e.action===`snooze_3hours`?`Next Action Hour +3h`:e.action===`snooze_6hours`?`Next Action Hour +6h`:e.action===`snooze_1day`?`Next Action Date +1d`:e.action===`snooze_2days`?`Next Action Date +2d`:e.action===`snooze_3days`?`Next Action Date +3d`:e.action===`snooze_5days`?`Next Action Date +5d`:e.action===`snooze_1month`?`Next Action Date +1mo`:ke(t)?`Next Action Date +1w skip`:`Next Action Date +1w`;case`set_story`:return`Story → ${e.optionName}`;case`set_agent`:return`Agent → ${e.optionName}`;case`set_status`:return`Status → ${e.optionName}`;case`set_in_tmux_by_human`:return`Added to In Tmux by human`;case`ok_and_awaiting_workspace`:return`ok → Awaiting Workspace`;case`ok_and_close`:return`ok → Closed`;case`close`:return e.action===`close`?`Closed`:`Closed as not planned`;case`delete_all_comments`:return`Deleted all comments`}},nt=e=>{switch(e.type){case`review`:return e.action===`approve_and_merge`?`green`:e.action===`request_changes`?`amber`:e.action===`totally_wrong`?`red`:`gray`;case`next_action_date`:return`amber`;case`set_story`:case`set_agent`:case`set_status`:case`set_in_tmux_by_human`:case`ok_and_awaiting_workspace`:return`blue`;case`ok_and_close`:case`close`:return`red`;case`delete_all_comments`:return`red`}},rt=(e,t)=>e.type===`next_action_date`?ke(t):e.type!==`delete_all_comments`,it=(e,t,n)=>`${tt(e,n)} — ${et(t)}`,at=(e,t)=>{let n=[...e].sort((e,t)=>e.createdAt-t.createdAt);if(n.length<=t)return{visibleEntries:n,collapsedEntries:[],collapsedCount:0};let r=n.length-t;return{visibleEntries:n.slice(r),collapsedEntries:n.slice(0,r),collapsedCount:r}},ot=({message:e,color:t,remainingSeconds:n,progress:r,onUndo:i,onDismiss:a})=>(0,x.jsxs)(`div`,{className:`console-undo-toast console-undo-toast-${t}`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(`span`,{className:`console-undo-toast-message`,children:e}),(0,x.jsx)(`button`,{type:`button`,className:`console-undo-toast-undo`,onClick:i,children:`Undo`}),(0,x.jsxs)(`span`,{className:`console-undo-toast-countdown`,"aria-hidden":`true`,children:[n,`s`]}),a!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-undo-toast-dismiss`,onClick:a,children:`✕`}),(0,x.jsx)(`span`,{className:`console-undo-toast-bar`,"aria-hidden":`true`,style:{width:`${Math.max(0,Math.min(100,r*100))}%`}})]}),st=({title:e,message:t,onDismiss:n,onRetry:r})=>(0,x.jsxs)(`div`,{className:`console-undo-toast-error console-error-toast`,role:`alert`,"aria-live":`assertive`,children:[e!==void 0&&(0,x.jsx)(`span`,{className:`console-error-toast-title`,children:e}),(0,x.jsx)(`span`,{className:`console-error-toast-message`,children:t}),(0,x.jsxs)(`div`,{className:`console-error-toast-actions`,children:[r!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-error-toast-retry`,onClick:r,children:`Retry`}),(0,x.jsx)(`button`,{type:`button`,className:`console-error-toast-dismiss`,onClick:n,children:`Dismiss`})]})]}),ct=e=>Math.max(0,Math.ceil((Qe-e)/1e3)),lt=e=>Math.max(0,1-e/Qe),ut=12,dt=8,ft=`console-action-toast-stack-toggle`,pt=({pendingEntries:e,errorEntries:t,displayLimit:n,onUndo:r,onDismiss:i,onDismissError:a})=>{let[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(()=>Date.now()),u=e.length>0;(0,y.useEffect)(()=>{if(!u)return;let e=setInterval(()=>l(Date.now()),100);return()=>clearInterval(e)},[u]);let d=[...e.map(e=>({kind:`pending`,id:e.id,createdAt:e.createdAt,entry:e})),...t.map(e=>({kind:`error`,id:e.id,createdAt:e.createdAt,entry:e}))],{visibleEntries:f,collapsedEntries:p,collapsedCount:m}=at(d,n),h=[...[...f].reverse().map(e=>e.id),...o?[...p].reverse().map(e=>e.id):[],...m>0?[ft]:[]],g=(0,y.useRef)(null),_=(0,y.useRef)(new Map);if((0,y.useLayoutEffect)(()=>{let e=ut;for(let t of h){let n=t===ft?g.current:_.current.get(t)?.firstElementChild??null;n instanceof HTMLElement&&(n.style.bottom=`${e}px`,e+=n.getBoundingClientRect().height+dt)}}),d.length===0)return null;let v=e=>e.kind===`pending`?(0,x.jsx)(ot,{message:e.entry.message,color:e.entry.color,remainingSeconds:ct(c-e.entry.createdAt),progress:lt(c-e.entry.createdAt),onUndo:()=>r(e.id),onDismiss:()=>i(e.id)},e.id):(0,x.jsx)(st,{title:e.entry.message,message:`Operation failed: ${e.entry.reason}`,onDismiss:()=>a(e.id),onRetry:e.entry.retry===void 0?void 0:()=>{a(e.id),e.entry.retry?.()}},e.id),b=e=>(0,x.jsx)(`div`,{className:`console-action-toast-stack-entry`,ref:t=>{t?_.current.set(e.id,t):_.current.delete(e.id)},children:v(e)},e.id);return(0,x.jsxs)(`div`,{className:`console-action-toast-stack`,children:[m>0&&(0,x.jsx)(`button`,{type:`button`,ref:g,className:`console-action-toast-stack-toggle`,onClick:()=>s(e=>!e),children:o?`Show less`:`+${m} more`}),o&&p.map(b),f.map(b)]})},mt=e=>$e(e.nameWithOwner,e.itemNumber,e.isPr),ht=e=>e===null?`loading…`:e,gt=e=>{let t=[];return t.push(`CI: ${e.isCiStateSuccess?`pass`:`fail`}`),t.push(`Merge: ${e.mergeableStatus.toLowerCase()}`),e.isBranchOutOfDate&&t.push(`branch out of date`),t.join(` · `)},_t=e=>e.fetchError?`${mt(e)} — failed to load current state`:e.currentTitle===null?`${mt(e)} — loading current state…`:`${mt(e)} — ${e.currentTitle} (${ht(e.currentState)})`,vt=({actions:e,isOnline:t,isConfirming:n,onConfirm:r,onDiscard:i})=>e.length===0?null:(0,x.jsxs)(`section`,{className:`console-offline-panel`,"aria-label":`Offline actions queue`,children:[(0,x.jsxs)(`div`,{className:`console-offline-panel-header`,children:[e.length,` action`,e.length===1?``:`s`,` held`,t?` — confirm each before sending`:` — awaiting connectivity`]}),e.map(e=>(0,x.jsxs)(`div`,{className:`console-offline-panel-item console-offline-panel-item-${e.color}`,children:[(0,x.jsx)(`div`,{className:`console-offline-panel-item-message`,children:e.message}),(0,x.jsx)(`div`,{className:`console-offline-panel-item-target`,children:_t(e)}),e.fetchError&&(0,x.jsx)(`div`,{className:`console-offline-panel-item-fetch-error`,children:`Failed to load current state — sending will act on the last known state`}),t&&e.isPr&&e.currentPrStatus!==null&&!e.fetchError&&(0,x.jsx)(`div`,{className:`console-offline-panel-item-pr-status`,children:gt(e.currentPrStatus)}),(0,x.jsxs)(`div`,{className:`console-offline-panel-item-controls`,children:[t&&(0,x.jsx)(`button`,{type:`button`,className:`console-offline-panel-confirm`,disabled:n||e.currentTitle===null&&!e.fetchError,onClick:()=>r(e.id),children:`Send`}),(0,x.jsx)(`button`,{type:`button`,className:`console-offline-panel-discard`,onClick:()=>i(e.id),children:`Discard`})]})]},e.id))]}),yt=(e,t)=>Object.keys(t.items).length===0&&t.failures.length>0?{status:`error`,failures:t.failures}:{status:`on`,snapshot:{capturedAt:t.capturedAt,tabs:e===null?t.tabs:{...e.tabs,...t.tabs},items:e===null?t.items:{...e.items,...t.items},failures:t.failures}},bt=`tdpm-airplane-v1`,xt=`/airplane-snapshot-data`,St=`tdpm_airplane_mode_on`,Ct=()=>typeof localStorage>`u`?!1:localStorage.getItem(St)===`1`,wt=e=>{typeof localStorage<`u`&&(e?localStorage.setItem(St,`1`):localStorage.removeItem(St))},Tt=async e=>{if(typeof caches>`u`)throw Error(`Cache API unavailable`);try{await(await caches.open(bt)).put(xt,new Response(JSON.stringify(e),{headers:{"Content-Type":`application/json`}}))}catch(e){throw e instanceof Error&&e.name===`QuotaExceededError`?Error(`Not enough browser storage to save the offline snapshot. Free up storage and retry.`):e}},Et=async()=>{if(typeof caches>`u`)return null;let e=await(await caches.open(bt)).match(xt);return e===void 0?null:e.json()},Dt=async()=>{typeof caches<`u`&&await caches.delete(bt)},Ot=e=>typeof e==`object`&&!!e&&!Array.isArray(e),kt=e=>typeof e==`string`?e:``,At=e=>typeof e==`number`?e:0,jt=e=>e===!0,Mt=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],Nt=e=>e===`MERGEABLE`?`MERGEABLE`:e===`CONFLICTING`?`CONFLICTING`:`UNKNOWN`,Pt=e=>Ot(e)?{number:At(e.number),title:kt(e.title),url:kt(e.url),repo:kt(e.repo),nameWithOwner:kt(e.nameWithOwner),projectItemId:kt(e.projectItemId),itemId:kt(e.itemId),isPr:jt(e.isPr),story:kt(e.story),storyOptionId:typeof e.storyOptionId==`string`?e.storyOptionId:null,status:typeof e.status==`string`?e.status:null,nextActionDate:typeof e.nextActionDate==`string`?e.nextActionDate:null,nextActionHour:typeof e.nextActionHour==`number`?e.nextActionHour:null,dependedIssueUrls:Mt(e.dependedIssueUrls),labels:Mt(e.labels),createdAt:kt(e.createdAt),relatedOpenPullRequestUrls:Mt(e.relatedOpenPullRequestUrls),agent:typeof e.agent==`string`?e.agent:null}:null,B=e=>{if(!Ot(e))return{items:[],generatedAt:``,statusOptions:[],agentOptions:[],storyOptions:[],storyColors:{},stories:[],defaultNameWithOwner:null,fromCache:!1,storyOrder:[],timerEndsAt:null,timerTotalSeconds:null};let t=Array.isArray(e.items)?e.items.map(Pt).filter(e=>e!==null):[],n=Array.isArray(e.statusOptions)?e.statusOptions.filter(Ot):[],r=Array.isArray(e.agentOptions)?e.agentOptions.filter(Ot):[],i=Array.isArray(e.storyOptions)?e.storyOptions.filter(Ot):[],a=Array.isArray(e.stories)?e.stories.filter(Ot):[],o=Array.isArray(e.storyOrder)?e.storyOrder.filter(e=>typeof e==`string`):[];return{items:t,generatedAt:typeof e.generatedAt==`string`?e.generatedAt:``,statusOptions:n,agentOptions:r,storyOptions:i,storyColors:Ot(e.storyColors)?e.storyColors:{},stories:a,defaultNameWithOwner:typeof e.defaultNameWithOwner==`string`?e.defaultNameWithOwner:null,fromCache:!1,storyOrder:o,timerEndsAt:null,timerTotalSeconds:null}},Ft=e=>Ot(e)?{id:At(e.id),author:kt(e.author),body:kt(e.body),createdAt:kt(e.createdAt)}:null,It=e=>Ot(e)?{path:kt(e.path),additions:At(e.additions),deletions:At(e.deletions),status:kt(e.status),patch:typeof e.patch==`string`?e.patch:null,rawUrl:typeof e.rawUrl==`string`?e.rawUrl:null}:null,Lt=e=>Ot(e)?{sha:kt(e.sha),message:kt(e.message),author:kt(e.author),authoredAt:kt(e.authoredAt)}:null,Rt=e=>Ot(e)?{found:jt(e.found),isConflicted:jt(e.isConflicted),mergeableStatus:Nt(e.mergeableStatus),isPassedAllCiJob:jt(e.isPassedAllCiJob),isCiStateSuccess:jt(e.isCiStateSuccess),isBranchOutOfDate:jt(e.isBranchOutOfDate),missingRequiredCheckNames:Mt(e.missingRequiredCheckNames)}:{found:!1,isConflicted:!1,mergeableStatus:`UNKNOWN`,isPassedAllCiJob:!1,isCiStateSuccess:!1,isBranchOutOfDate:!1,missingRequiredCheckNames:[]},zt=e=>{if(!Ot(e))return null;let t=Ot(e.summary)?{title:kt(e.summary.title),body:kt(e.summary.body),additions:At(e.summary.additions),deletions:At(e.summary.deletions),changedFiles:At(e.summary.changedFiles)}:null;return{url:kt(e.url),branchName:typeof e.branchName==`string`?e.branchName:null,createdAt:kt(e.createdAt),isDraft:jt(e.isDraft),isConflicted:jt(e.isConflicted),mergeableStatus:Nt(e.mergeableStatus),isPassedAllCiJob:jt(e.isPassedAllCiJob),isCiStateSuccess:jt(e.isCiStateSuccess),isResolvedAllReviewComments:jt(e.isResolvedAllReviewComments),isBranchOutOfDate:jt(e.isBranchOutOfDate),missingRequiredCheckNames:Mt(e.missingRequiredCheckNames),summary:t}},Bt=e=>{if(!Ot(e))return{body:``,comments:[],state:{state:`open`,merged:!1,isPullRequest:!1,title:``,stateReason:``},files:null,commits:null,prStatus:null,relatedPrs:null};let t=Ot(e.state)?e.state:{},n={state:kt(t.state)||`open`,merged:jt(t.merged),isPullRequest:jt(t.isPullRequest),title:kt(t.title),stateReason:kt(t.stateReason)},r=e.files===null?null:Array.isArray(e.files)?e.files.map(It).filter(e=>e!==null):null,i=e.commits===null?null:Array.isArray(e.commits)?e.commits.map(Lt).filter(e=>e!==null):null,a=e.prStatus===null?null:Rt(e.prStatus),o=e.relatedPrs===null?null:Array.isArray(e.relatedPrs)?e.relatedPrs.map(zt).filter(e=>e!==null):null;return{body:kt(e.body),comments:Array.isArray(e.comments)?e.comments.map(Ft).filter(e=>e!==null):[],state:n,files:r,commits:i,prStatus:a,relatedPrs:o}},Vt=e=>{if(!Ot(e))return null;let t=typeof e.capturedAt==`string`?e.capturedAt:``,n=Mt(e.failures),r={};if(Ot(e.tabs))for(let[t,n]of Object.entries(e.tabs)){if(!Ot(n))continue;let e={};for(let[t,r]of Object.entries(n))e[t]=B(r);r[t]=e}let i={};if(Ot(e.items))for(let[t,n]of Object.entries(e.items))i[t]=Bt(n);return{capturedAt:t,tabs:r,items:i,failures:n}},Ht=`/api/airplanesync`,Ut=e=>{try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)&&`type`in t&&typeof t.type==`string`?t:null}catch{return null}},Wt=()=>{let[e,t]=(0,y.useState)(`off`),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)([]),u=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!Ct())return;let e=!1;return Et().then(n=>{e||n===null||(a(n),t(`on`))}).catch(()=>{wt(!1)}),()=>{e=!0}},[]);let d=(0,y.useCallback)(async(e,n,i)=>{let o=e.getReader(),c=new TextDecoder,u=``;for(;;){let{done:e,value:d}=await o.read();if(e)break;u+=c.decode(d,{stream:!0});let f=u.split(`
15
15
 
16
- `);u=f.pop()??``;for(let e of f){if(!e.startsWith(`data: `))continue;let o=Ut(e.slice(6));if(o!==null){if(o.type===`progress`)r({fetched:typeof o.fetched==`number`?o.fetched:0,total:typeof o.total==`number`?o.total:0});else if(o.type===`done`){let e=Vt(o.snapshot);if(e===null){t(`error`),s([`Failed to parse snapshot`]),l(i);return}let r=yt(n,e);if(r.status===`error`){s(r.failures),t(`error`),l(r.failures);return}let c=Vt(r.snapshot);if(c===null){t(`error`),s([`Failed to merge snapshot`]),l(i);return}await Tt(c),wt(!0),a(c),t(`on`),s(c.failures),l(c.failures)}}}}},[]),f=(0,y.useCallback)(()=>{u.current!==null&&u.current.abort();let e=new AbortController;u.current=e,t(`syncing`),r({fetched:0,total:0}),s([]),l([]),fetch(Ht,{signal:e.signal}).then(async e=>{if(!e.ok||e.body===null){t(`error`),s([`HTTP ${e.status}`]),l([]);return}await d(e.body,null,[])}).catch(e=>{e instanceof Error&&e.name===`AbortError`||(t(`error`),s([e instanceof Error?e.message:String(e)]),l([]))})},[d]),p=(0,y.useCallback)(()=>{u.current!==null&&(u.current.abort(),u.current=null),t(`off`),a(null),r(null),s([]),l([]),wt(!1),Dt().catch(()=>{})},[]),m=(0,y.useCallback)((e,n)=>{if(n.length===0)return;u.current!==null&&u.current.abort();let i=new AbortController;u.current=i,t(`syncing`),r({fetched:0,total:n.length}),s([]),l([]),fetch(Ht,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({targetUrls:n}),signal:i.signal}).then(async r=>{if(!r.ok||r.body===null){t(`error`),s([`HTTP ${r.status}`]),l(n);return}await d(r.body,e,n)}).catch(e=>{e instanceof Error&&e.name===`AbortError`||(t(`error`),s([e instanceof Error?e.message:String(e)]),l(n))})},[d]);return{status:e,progress:n,snapshot:i,failures:o,retryTargetUrls:c,startSync:f,turnOff:p,retryFailed:()=>m(i,c)}},Gt=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Kt=e=>typeof e==`string`?e:``,qt=e=>typeof e==`number`?e:0,Jt=e=>e===!0,Yt=`console-api-v1`,Xt=async(e,t)=>{let n=`${e}?url=${encodeURIComponent(t)}`;try{let e=await fetch(n);if(!e.ok){let t=`HTTP ${e.status}`;try{let n=await e.json();Gt(n)&&typeof n.error==`string`&&n.error.length>0&&(t=n.error)}catch(e){console.warn(`Failed to parse error body from non-ok response:`,e)}throw Error(t)}let t=await e.json();try{`caches`in globalThis&&globalThis.caches.open(Yt).then(e=>e.put(n,new Response(JSON.stringify(t),{headers:{"Content-Type":`application/json`}}))).catch(e=>{console.warn(`Failed to persist API response to cache:`,e)})}catch(e){console.warn(`Failed to access cache storage:`,e)}return t}catch(e){try{if(`caches`in globalThis){let e=await(await globalThis.caches.open(Yt)).match(n);if(e!==void 0)return e.json()}}catch{}throw e}},Zt=e=>!Gt(e)||!Array.isArray(e.comments)?[]:e.comments.filter(Gt).map(e=>({id:qt(e.id),author:Kt(e.author),body:Kt(e.body),createdAt:Kt(e.createdAt)})),Qt=e=>!Gt(e)||!Array.isArray(e.files)?[]:e.files.filter(Gt).map(e=>({path:Kt(e.path)||Kt(e.filename),additions:qt(e.additions),deletions:qt(e.deletions),status:Kt(e.status),patch:typeof e.patch==`string`?e.patch:null,rawUrl:typeof e.rawUrl==`string`?e.rawUrl:null})),$t=e=>!Gt(e)||!Array.isArray(e.commits)?[]:e.commits.filter(Gt).map(e=>({sha:Kt(e.sha),message:Kt(e.message),author:Kt(e.author),authoredAt:Kt(e.authoredAt)})),en=e=>Gt(e)?{title:Kt(e.title),body:Kt(e.body),additions:qt(e.additions),deletions:qt(e.deletions),changedFiles:qt(e.changedFiles)}:null,tn=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],nn=e=>e===`MERGEABLE`?`MERGEABLE`:e===`CONFLICTING`?`CONFLICTING`:`UNKNOWN`,rn=e=>!Gt(e)||!Array.isArray(e.relatedPullRequests)?[]:e.relatedPullRequests.filter(Gt).map(e=>({url:Kt(e.url),branchName:typeof e.branchName==`string`?e.branchName:null,createdAt:Kt(e.createdAt),isDraft:Jt(e.isDraft),isConflicted:Jt(e.isConflicted),mergeableStatus:nn(e.mergeableStatus),isPassedAllCiJob:Jt(e.isPassedAllCiJob),isCiStateSuccess:Jt(e.isCiStateSuccess),isResolvedAllReviewComments:Jt(e.isResolvedAllReviewComments),isBranchOutOfDate:Jt(e.isBranchOutOfDate),missingRequiredCheckNames:tn(e.missingRequiredCheckNames),summary:en(e.summary)})),an=e=>{if(!Gt(e)||!Gt(e.status))return{found:!1,isConflicted:!1,mergeableStatus:`UNKNOWN`,isPassedAllCiJob:!1,isCiStateSuccess:!1,isBranchOutOfDate:!1,missingRequiredCheckNames:[]};let t=e.status;return{found:!0,isConflicted:Jt(t.isConflicted),mergeableStatus:nn(t.mergeableStatus),isPassedAllCiJob:Jt(t.isPassedAllCiJob),isCiStateSuccess:Jt(t.isCiStateSuccess),isBranchOutOfDate:Jt(t.isBranchOutOfDate),missingRequiredCheckNames:tn(t.missingRequiredCheckNames)}},on=e=>Gt(e)?{state:Kt(e.state)||`open`,merged:Jt(e.merged),isPullRequest:Jt(e.isPullRequest),title:Kt(e.title)}:{state:`open`,merged:!1,isPullRequest:!1,title:``},sn=()=>({fetchItemBody:async e=>{let t=await Xt(`/api/itembody`,e);return Gt(t)?Kt(t.body):``},fetchComments:async e=>Zt(await Xt(`/api/comments`,e)),fetchPrFiles:async e=>Qt(await Xt(`/api/prfiles`,e)),fetchPrCommits:async e=>$t(await Xt(`/api/prcommits`,e)),fetchRelatedPrs:async e=>rn(await Xt(`/api/relatedprs`,e)),fetchIssueState:async e=>on(await Xt(`/api/issuetitle`,e)),fetchPullRequestStatus:async e=>an(await Xt(`/api/pullrequeststatus`,e))}),cn=async e=>{let t=await e.text().catch(()=>``);if(t.length===0)return`HTTP ${e.status}`;try{let e=JSON.parse(t);if(Gt(e)&&typeof e.error==`string`)return e.error}catch{return t}return t},ln=async(e,t)=>{let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(await cn(n))},un=`/api/comment`,dn=e=>({id:qt(e.id),author:Kt(e.author),body:Kt(e.body),createdAt:Kt(e.createdAt)}),fn=async e=>{let t=await fetch(un,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)return{posted:!1,error:await cn(t),rateLimitResetAt:null};let n=await t.json();return Gt(n)?n.ok===!1?{posted:!1,error:typeof n.error==`string`?n.error:`upstream error`,rateLimitResetAt:typeof n.rateLimitResetAt==`string`?n.rateLimitResetAt:null}:Gt(n.comment)?{posted:!0,comment:dn(n.comment)}:{posted:!1,error:`comment was not returned`,rateLimitResetAt:null}:{posted:!1,error:`unexpected response shape`,rateLimitResetAt:null}},pn=`/api/upload`,mn=e=>{let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)},hn=async e=>{let t=await fetch(pn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t));let n=await t.json();if(!Gt(n)||typeof n.markdown!=`string`)throw Error(`markdown was not returned`);return n.markdown},gn=`/api/addstory`,_n=async e=>{let t=await fetch(gn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t));let n=await t.json();return!Gt(n)||!Array.isArray(n.stories)?[]:n.stories.filter(Gt).map(e=>({id:Kt(e.id),name:Kt(e.name),color:Kt(e.color)}))},vn=`/api/reviewcomment`,yn=async e=>{let t=await fetch(vn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},bn=`/api/createissue`,xn=`/api/storycolor`,Sn=async e=>{let t=await fetch(xn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Cn=async e=>{let t=await fetch(bn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t));let n=await t.json();if(!(e=>typeof e==`object`&&!!e&&!Array.isArray(e))(n)||typeof n.issueUrl!=`string`)throw Error(`issueUrl was not returned`);return n.issueUrl},wn=`/api/reorderstory`,Tn=async e=>{let t=await fetch(wn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},En=`/api/deleteallcomments`,Dn=async e=>{let t=await fetch(En,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},On=`/api/deletestory`,kn=async e=>{let t=await fetch(On,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},An=`/api/renamestory`,jn=async e=>{let t=await fetch(An,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Mn=`/api/storydescription`,Nn=async e=>{let t=await fetch(Mn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Pn=e=>typeof e!=`object`||!e||Array.isArray(e)?null:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`string`)),Fn=e=>Array.isArray(e)?e.filter(Gt):null,In=e=>Array.isArray(e)?e.filter(Gt):null,Ln=async()=>{let e=await fetch(`/api/projects`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if(typeof t!=`object`||!t||Array.isArray(t))return{pjcodes:[],projectUrls:null,fleetTaskCreateUrl:null,nameWithOwnerByPjcode:null,disabledPjcodes:[],workflowStoryEntries:null,workflowAgentOptions:null,actionableCounts:null};let n=t;return{pjcodes:Array.isArray(n.pjcodes)?n.pjcodes.filter(e=>typeof e==`string`):[],projectUrls:Pn(n.projectUrls),fleetTaskCreateUrl:typeof n.fleetTaskCreateUrl==`string`?n.fleetTaskCreateUrl:null,nameWithOwnerByPjcode:Pn(n.nameWithOwnerByPjcode),disabledPjcodes:Array.isArray(n.disabledPjcodes)?n.disabledPjcodes.filter(e=>typeof e==`string`):[],workflowStoryEntries:Fn(n.workflowStoryEntries),workflowAgentOptions:In(n.workflowAgentOptions),actionableCounts:null}},Rn=`/api/projectreadmeconfig`,zn=async e=>{let t=`${Rn}?pjcode=${encodeURIComponent(e)}`,n=await fetch(t);if(!n.ok)throw Error(await cn(n));let r=await n.json();return{maximumPreparingIssuesCount:Gt(r)&&typeof r.maximumPreparingIssuesCount==`number`?r.maximumPreparingIssuesCount:null}},Bn=`/api/renameissue`,Vn=async e=>{let t=await fetch(Bn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Hn=`/api/issuebody`,Un=async e=>{let t=await fetch(Hn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Wn=`/api/issuecommentbody`,Gn=async e=>{let t=await fetch(Wn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Kn=`/api/setdependedissueurl`,qn=async e=>{let t=await fetch(Kn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Jn=`/api/projectsettings`,Yn=async e=>{let t=await fetch(Jn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Xn=`console-comment-expanded:`,Zn=e=>{try{let t=localStorage.getItem(Xn+e);if(t===null)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(e=>typeof e==`string`)):new Set}catch(e){return console.error(`Failed to load comment expanded state from storage:`,e),new Set}},Qn=(e,t)=>{try{localStorage.setItem(Xn+e,JSON.stringify([...t]))}catch(e){console.error(`Failed to save comment expanded state to storage:`,e)}},$n=()=>{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n?.startsWith(Xn)&&e.push(n)}for(let t of e)localStorage.removeItem(t)},er=`console-offline-action-queue`,tr=e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.message==`string`&&typeof t.color==`string`&&typeof t.enqueuedAt==`number`&&typeof t.itemUrl==`string`&&typeof t.projectItemId==`string`&&typeof t.itemNumber==`number`&&typeof t.repo==`string`&&typeof t.nameWithOwner==`string`&&typeof t.isPr==`boolean`&&typeof t.apiPath==`string`&&typeof t.requestBody==`object`&&t.requestBody!==null},nr=e=>typeof e.pjcode==`string`&&typeof e.url==`string`&&typeof e.body==`string`,rr=()=>{try{let e=localStorage.getItem(er);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(tr):[]}catch{return[]}},ir=e=>{localStorage.setItem(er,JSON.stringify(e))},ar=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`,or=e=>e instanceof TypeError,sr=class extends Error{sentStepCount;constructor(e,t){super(t instanceof Error?t.message:String(t)),this.name=`ConsoleActionPartiallySentError`,this.sentStepCount=e,this.cause=t}},cr=async(e,t=0)=>{for(let n=t;n<e.length;n+=1)try{await e[n]()}catch(e){throw n===0?e:new sr(n,e)}},lr=`Airplane mode`,ur=`This action requires a network connection. Turn off airplane mode and try again.`,dr=e=>e instanceof Error&&e.message.length>0?e.message:String(e),fr=100,pr=(e={isAirplaneModeOn:!1})=>{let t=(0,y.useRef)(e.isAirplaneModeOn);t.current=e.isAirplaneModeOn;let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)([]),[o,s]=(0,y.useState)(rr),c=(0,y.useRef)(o);c.current=o;let l=(0,y.useRef)(new Map),u=(0,y.useRef)(()=>{}),d=(0,y.useRef)(0),[f,p]=(0,y.useState)({status:`idle`,attempt:0}),[m,h]=(0,y.useState)(0),g=(0,y.useCallback)(e=>{a(t=>[...t,{id:ar(),createdAt:Date.now(),...e}])},[]),_=(0,y.useCallback)(({payloads:e,message:t,color:n})=>{let r=Date.now(),i=e.map(e=>({id:ar(),message:t,color:n,enqueuedAt:r,...e}));s(e=>{let t=[...e,...i];return ir(t),t})},[]),v=(0,y.useCallback)((e,n,r)=>{let i=d.current+1;d.current=i;let o=r??ar(),s=e=>{a(t=>{let n=t.findIndex(e=>e.id===o);return n===-1?[...t,{id:o,createdAt:Date.now(),...e}]:t.map((t,r)=>r===n?{...t,...e}:t)})},c=e.offline??[],l=t=>{_({payloads:t,message:e.message,color:e.color}),p({status:`offline`,attempt:i})};if(t.current){let t=c.slice(n);t.length>0?l(t):(e.revertAdvance?.(),e.revertOptimistic?.(),s({message:lr,reason:ur}),p({status:`failed`,attempt:i}));return}p({status:`unconfirmed`,attempt:i}),e.commit(n).then(()=>{p({status:`succeeded`,attempt:i})}).catch(t=>{let r=t instanceof sr,a=r?t.sentStepCount:n,d=c.slice(a),f=r?t.cause:t;or(f)&&d.length>0?l(d):(s({message:e.message,reason:dr(f),retry:()=>u.current(e,a,o)}),p({status:`failed`,attempt:i}))})},[_]);u.current=v;let b=(0,y.useCallback)(e=>{let t=l.current.get(e);t!==void 0&&(t.timer!==null&&clearInterval(t.timer),l.current.delete(e),r(t=>t.filter(t=>t.id!==e)),$n(),v(t.action,0))},[v]),x=(0,y.useCallback)(e=>{let t=l.current.get(e);t!==void 0&&(t.timer!==null&&clearInterval(t.timer),l.current.delete(e),r(t=>t.filter(t=>t.id!==e)),t.action.revertAdvance?.(),t.action.revertOptimistic?.())},[]),S=(0,y.useCallback)(e=>{b(e)},[b]),ee=(0,y.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),C=(0,y.useCallback)((e,t)=>{g({message:e,reason:t})},[g]),w=(0,y.useCallback)(e=>{s(t=>{let n=t.filter(t=>t.id!==e);return ir(n),n})},[]),T=(0,y.useCallback)(async e=>{let t=c.current.find(t=>t.id===e);if(t!==void 0)try{if(t.apiPath===`/api/comment`&&nr(t.requestBody)){let n=await fn(t.requestBody);if(n.posted){w(e);return}let r=n.rateLimitResetAt===null?``:` Rate limit resets at ${n.rateLimitResetAt}.`;g({message:t.message,reason:`${n.error}.${r}`});return}await ln(t.apiPath,t.requestBody),w(e)}catch(n){or(n)?g({message:t.message,reason:`Still offline — action is still held in the queue`}):(g({message:t.message,reason:dr(n)}),w(e))}},[g,w]),E=(0,y.useCallback)(e=>{h(e=>e+1);let t=ar(),n=Date.now(),i={id:t,createdAt:n,action:e,startedAt:n,timer:null};l.current.set(t,i),r(r=>[...r,{id:t,createdAt:n,message:e.message,color:e.color}]),e.advance(),e.optimistic?.(),i.timer=setInterval(()=>{Date.now()-i.startedAt>=5e3&&b(t)},fr)},[b]);return(0,y.useEffect)(()=>()=>{for(let e of Array.from(l.current.keys()))b(e)},[b]),{pending:n,error:i,offlineActions:o,writeState:f,enqueueSequence:m,enqueue:E,offlineActionsCreate:_,showError:C,undo:x,dismiss:S,dismissError:ee,confirmOfflineAction:T,discardOfflineAction:w}},mr=e=>{window.history.pushState({},``,e),window.dispatchEvent(new PopStateEvent(`popstate`))},hr=e=>{window.history.replaceState({},``,e),window.dispatchEvent(new PopStateEvent(`popstate`))},gr=(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m)=>{let h=(0,y.useRef)(0),g=(0,y.useRef)(null),_=(0,y.useRef)(0),v=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e||i===null){h.current=0,g.current=null,v.current=null;return}let y=f!==_.current;y&&(_.current=f);let b=a.filter(e=>(o[e]??15)>0),x=Object.fromEntries(a.map(e=>[e,1])),S=v.current,ee=S!==null&&S.pjcode===i&&b.some(e=>!S.pjcodesWithMinutes.includes(e));v.current={pjcode:i,pjcodesWithMinutes:b};let C=M({actionNewlyEnqueued:y,timerElapsed:t(o[i]??15),remainingCountIsZero:n===0&&r===0,snapshotsReady:s&&c&&!l&&!u,explicitlySelectedPjcodeMatchesCurrent:d!==null&&i===d,taskOpen:p!==null,dialogOpen:m,aProjectGainedRemainingMinutesSinceTheCurrentProjectWasLastEvaluated:ee,pjcode:i,pjcodes:a,projectMinutes:o,skipCount:h.current,evaluatedPjcode:g.current,projectTodoByHumanCounts:x,projectAwaitingOwnerCounts:{}});h.current=C.nextSkipCount,g.current=C.nextEvaluatedPjcode,C.targetPjcode!==null&&mr(`/projects/${C.targetPjcode}/todo-by-human`)},[e,t,n,r,i,a,o,s,c,l,u,d,f,p,m])},_r=`tdpm-awaiting-owner-list-visibility-settings`,vr=()=>({showExecutiveSummaryAndActionButton:!0}),yr=()=>{if(typeof localStorage>`u`)return vr();let e=localStorage.getItem(_r);if(e===null)return vr();try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return vr();let n=t;return{showExecutiveSummaryAndActionButton:typeof n.showExecutiveSummaryAndActionButton!=`boolean`||n.showExecutiveSummaryAndActionButton}}catch{return vr()}},br=e=>{typeof localStorage<`u`&&localStorage.setItem(_r,JSON.stringify(e))},xr=e=>{let[t,n]=(0,y.useState)(()=>yr().showExecutiveSummaryAndActionButton),[r,i]=(0,y.useState)(t);return(0,y.useEffect)(()=>{e&&i(t)},[e,t]),{showExecutiveSummaryAndActionButton:t,draftShowExecutiveSummaryAndActionButton:r,toggleDraft:(0,y.useCallback)(e=>{i(e)},[]),save:(0,y.useCallback)(()=>{i(e=>(br({showExecutiveSummaryAndActionButton:e}),n(e),e))},[])}},Sr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Cr=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],wr=e=>Array.isArray(e)?e.filter(Sr).map(e=>({...e,relatedOpenPullRequestUrls:Cr(e.relatedOpenPullRequestUrls)})):[],Tr=e=>!Sr(e)||!Array.isArray(e.items)?[]:wr(e.items),Er=e=>Array.isArray(e)?e.filter(Sr):[],Dr=e=>Array.isArray(e)?e.filter(Sr).map(e=>({...e,items:wr(e.items)})):[],Or=e=>({items:Tr(e),generatedAt:Sr(e)&&typeof e.generatedAt==`string`?e.generatedAt:``,statusOptions:Sr(e)?Er(e.statusOptions):[],agentOptions:Sr(e)?Er(e.agentOptions):[],storyOptions:Sr(e)?Er(e.storyOptions):[],storyColors:Sr(e)&&Sr(e.storyColors)?e.storyColors:{},stories:Sr(e)?Dr(e.stories):[],defaultNameWithOwner:Sr(e)&&typeof e.defaultNameWithOwner==`string`?e.defaultNameWithOwner:null,storyOrder:Sr(e)?Cr(e.storyOrder):[],timerEndsAt:Sr(e)&&typeof e.timerEndsAt==`string`?e.timerEndsAt:null,timerTotalSeconds:Sr(e)&&typeof e.timerTotalSeconds==`number`&&e.timerTotalSeconds>0?e.timerTotalSeconds:null}),kr=()=>{let e={};for(let t of A)e[t.name]=null;return e},Ar=(e,t)=>`/projects/${e}/${t}/list.json`,jr=6e4,Mr=`console-list-v1`,Nr=(e,t)=>{try{if(!(`caches`in globalThis))return;globalThis.caches.open(Mr).then(n=>n.put(e,new Response(JSON.stringify(t),{headers:{"Content-Type":`application/json`}}))).catch(e=>{console.warn(`Failed to persist tab snapshot to cache:`,e)})}catch(e){console.warn(`Failed to access cache storage:`,e)}},Pr=async e=>{if(!(`caches`in globalThis))return null;try{let t=await(await globalThis.caches.open(Mr)).match(e);return t===void 0?null:{...Or(await t.json()),fromCache:!0}}catch{return null}},Fr=async e=>{let t=await Promise.all(A.map(async t=>({tabName:t.name,snapshot:await Pr(Ar(e,t.name))}))),n=kr();for(let{tabName:e,snapshot:r}of t)n[e]=r;return n},Ir=async(e,t)=>{let n=Ar(e,t);try{let e=await fetch(n);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();return Nr(n,t),{snapshot:{...Or(t),fromCache:!1},error:null}}catch(e){let t=await Pr(n);return t===null?{snapshot:null,error:e instanceof Error?e:Error(String(e))}:{snapshot:t,error:null}}},Lr=async e=>{await Promise.all(A.map(async t=>{let n=Ar(e,t.name);try{let e=await fetch(n);if(!e.ok)return;Nr(n,await e.json())}catch{}}))},Rr=async e=>{let t=await Promise.all(A.map(async t=>{let{snapshot:n,error:r}=await Ir(e,t.name);return{tabName:t.name,snapshot:n,error:r}})),n=kr(),r=null;for(let{tabName:e,snapshot:i,error:a}of t)n[e]=i,a!==null&&r===null&&(r=a);return{snapshots:n,firstError:Object.values(n).every(e=>e===null)?r:null}},zr=(e,t=null)=>{let n=(0,y.useRef)(new Map),[r,i]=(0,y.useState)(kr),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(e);if(l!==e){u(e);let t=e===null?null:n.current.get(e)??null;i(t??kr()),t!==null&&o(!1)}return(0,y.useEffect)(()=>{if(t!==null&&e!==null){let n=t.tabs[e];if(n!==void 0){let e=kr();for(let t of A){let r=n[t.name];r!==void 0&&(e[t.name]={...r})}i(e),o(!1),c(null);return}}let r=!1,a=!1;if(c(null),e===null)return i(kr()),o(!1),c(`No project specified in the URL path.`),()=>{r=!0};let s=n.current.has(e);Fr(e).then(t=>{if(r)return;let c=Object.values(t).some(e=>e!==null);c&&!a?(n.current.set(e,t),i(t),o(!1)):!c&&!a&&!s&&(o(!0),i(kr()))});let l=()=>{Rr(e).then(({snapshots:t,firstError:s})=>{r||(a=!0,n.current.set(e,t),i(t),c(s===null?null:s.message),o(!1))}).catch(e=>{r||(a=!0,c(e instanceof Error?e.message:String(e)),o(!1))})};l();let u=setInterval(l,jr);return()=>{r=!0,clearInterval(u)}},[e,t]),{snapshots:r,isLoading:a,error:s,refreshSingleTab:(0,y.useCallback)(async t=>{if(e===null)return;let{snapshot:r}=await Ir(e,t);r!==null&&i(i=>{let a={...i,[t]:r};return n.current.set(e,a),a})},[e])}},Br=(e,t,n,r,i)=>{(0,y.useEffect)(()=>{if(!i||r)return;let a=n.filter(n=>n!==e&&n!==t);if(a.length!==0)for(let e of a)Lr(e).catch(()=>{})},[i,r,e,t,n]),(0,y.useEffect)(()=>{if(!i||r)return;let t=n.filter(t=>t!==e);if(t.length===0)return;let a=setInterval(()=>{for(let e of t)Lr(e).catch(()=>{})},jr);return()=>{clearInterval(a)}},[i,r,e,n])},Vr=class{fetcher;cache=new Map;inFlight=new Map;prefetchInFlight=new Set;constructor(e){this.fetcher=e}peek=e=>this.cache.get(e);has=e=>this.cache.has(e);load=(e,t)=>{let n=this.cache.get(e);if(n!==void 0)return Promise.resolve(n);let r=this.inFlight.get(e);if(r!==void 0)return r;let i=this.fetcher(t).then(t=>(this.cache.set(e,t),t)).finally(()=>{this.inFlight.delete(e)});return this.inFlight.set(e,i),i};prefetch=(e,t)=>{this.cache.has(e)||this.inFlight.has(e)||this.prefetchInFlight.has(e)||(this.prefetchInFlight.add(e),this.fetcher(t).then(t=>{this.cache.set(e,t)}).catch(()=>{}).finally(()=>{this.prefetchInFlight.delete(e)}))};seed(e,t){this.cache.set(e,t)}invalidate=e=>{this.cache.delete(e)}},Hr=e=>{try{let t=new URL(e).pathname.split(`/`).filter(Boolean);if(t.length>=4)return`${t[0]}/${t[1]}#${t[3]}`}catch{}return e},Ur=(e,t)=>{for(let[n,r]of Object.entries(t.items)){let t=Hr(n);e.body.seed(t,r.body),e.comments.seed(t,r.comments),e.state.seed(t,r.state),r.files!==null&&e.files.seed(t,r.files),r.commits!==null&&e.commits.seed(t,r.commits),r.prStatus!==null&&e.prStatus.seed(t,r.prStatus),r.relatedPrs!==null&&e.relatedPrs.seed(t,r.relatedPrs)}},Wr=(e=null)=>(0,y.useMemo)(()=>{let t=sn(),n={client:t,body:new Vr(t.fetchItemBody),comments:new Vr(t.fetchComments),files:new Vr(t.fetchPrFiles),commits:new Vr(t.fetchPrCommits),relatedPrs:new Vr(t.fetchRelatedPrs),state:new Vr(t.fetchIssueState),prStatus:new Vr(t.fetchPullRequestStatus)};return e!==null&&Ur(n,e),n},[e]),Gr=0,Kr=500,qr=2e3,Jr=e=>{let t=window;if(typeof t.requestIdleCallback==`function`&&typeof t.cancelIdleCallback==`function`){let n=t.requestIdleCallback(e,{timeout:qr});return{cancel:()=>t.cancelIdleCallback?.(n)}}let n=window.setTimeout(e,0);return{cancel:()=>window.clearTimeout(n)}},Yr=(e,t)=>{let n=`${t.repo}#${t.number}`;e.body.prefetch(n,t.url),e.state.prefetch(n,t.url),e.comments.prefetch(n,t.url),t.isPr?(e.files.prefetch(n,t.url),e.commits.prefetch(n,t.url),e.prStatus.prefetch(n,t.url)):e.relatedPrs.prefetch(n,t.url)},Xr=(e,t,n)=>{(0,y.useEffect)(()=>{if(t===null)return;let r=n.findIndex(e=>e.projectItemId===t.projectItemId);if(r===-1)return;let i=n.slice(r+1,r+1+Gr);if(i.length===0)return;let a=null,o=window.setTimeout(()=>{a=Jr(()=>{for(let t of i)Yr(e,t)})},Kr);return()=>{window.clearTimeout(o),a?.cancel()}},[e,t,n])},Zr=e=>{let[t,n]=(0,y.useState)(null);return(0,y.useEffect)(()=>{t!==null&&e!==t&&n(null)},[e,t]),{explicitlySelectedPjcode:t,notifyExplicitSelection:(0,y.useCallback)(e=>{n(e)},[])}},Qr=`/api/features`,$r=()=>{let[e,t]=(0,y.useState)({airplaneMode:!1});return(0,y.useEffect)(()=>{fetch(Qr).then(async e=>{if(!e.ok)return;let n=await e.json();typeof n==`object`&&n&&!Array.isArray(n)&&`airplaneMode`in n&&typeof n.airplaneMode==`boolean`&&t({airplaneMode:n.airplaneMode})}).catch(e=>{console.warn(`Failed to fetch /api/features`,e)})},[]),e},ei=(e,t)=>{let n=A.findIndex(t=>t.name===e);if(n===-1)return null;for(let e=n+1;e<A.length;e+=1){let n=A[e];if(n.isNavigable!==!1&&(t[n.name]??0)>0)return n.name}return null},ti=e=>{let t=A.filter(e=>e.isNavigable!==!1);for(let n of t)if((e[n.name]??0)>0)return n.name;return t[0].name},ni=new Set(A.map(e=>e.name)),ri=e=>{let t=e.split(`/`).filter(e=>e.length>0);if(t.length<3||t[0]!==`projects`)return null;let n=t[2];return ni.has(n)?n:null},ii=e=>{if(!e.startsWith(`#item/`))return null;let t=e.slice(6);return t.length===0?null:decodeURIComponent(t)},ai=`#settings`,oi=(e,t,n=new Set,r)=>{let i=(0,y.useCallback)(()=>{let e=ti(t);return typeof window>`u`?{activeTab:e,selectedItemKey:null}:{activeTab:ri(window.location.pathname)??e,selectedItemKey:ii(window.location.hash)}},[t]),[a,o]=(0,y.useState)(i),s=(0,y.useRef)(null);s.current=e,(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{o(i())};return window.addEventListener(`popstate`,e),window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`popstate`,e),window.removeEventListener(`hashchange`,e)}},[i]),(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=ri(window.location.pathname),i=Object.values(t).some(e=>e>0),a=r??t;if(e!==null){if(t[e]>0||a[e]>0){o(t=>t.activeTab===e?t:{...t,activeTab:e});return}if(!n.has(e))return}let c=ti(t);i&&s.current!==null&&window.history.replaceState({},``,`/projects/${s.current}/${c}${window.location.search}`),o(e=>e.activeTab===c?e:{...e,activeTab:c})},[t,n,r]);let c=(0,y.useCallback)(t=>e===null?`#${t}`:`/projects/${e}/${t}`,[e]),l=(0,y.useCallback)(e=>{if(typeof window>`u`){o({activeTab:e,selectedItemKey:null});return}window.history.pushState({},``,c(e)),o({activeTab:e,selectedItemKey:null})},[c]),u=(0,y.useCallback)(e=>{typeof window<`u`&&(window.location.hash=`#item/${encodeURIComponent(e)}`),o(t=>({...t,selectedItemKey:e}))},[]),d=(0,y.useCallback)(()=>{if(typeof window<`u`&&window.location.hash!==``){let e=`${window.location.pathname}${window.location.search}`;window.history.pushState({},``,e)}o(e=>({...e,selectedItemKey:null}))},[]);return{activeTab:a.activeTab,selectedItemKey:a.selectedItemKey,tabHref:c,selectTab:l,openItem:u,closeItem:d}},si=`/api/review`,ci=`/api/triage`,li=`/api/intmux`,ui=(e,t,n,r,i)=>{if(r===`approve_and_merge`)return{pjcode:e,action:`approve_and_merge`,prUrl:n,projectItemId:t.projectItemId,expectedStatusName:t.status};if(r===`request_changes`){let r=i[0];return{pjcode:e,action:`request_changes`,prUrl:n,projectItemId:t.projectItemId,commentBody:Te(i),expectedStatusName:t.status,...r===void 0?{}:{changedFilePath:r.path,line:r.line,side:r.side}}}return r===`totally_wrong`?{pjcode:e,action:`close`,prUrl:n,issueUrl:t.url,projectItemId:t.projectItemId,commentBody:Se,expectedStatusName:t.status}:{pjcode:e,action:`unnecessary`,prUrl:n,projectItemId:t.projectItemId,issueUrl:t.url,commentBody:Ce,issueCommentBody:we(n),expectedStatusName:t.status}},di=(e,t,n,r)=>({pjcode:e,action:n,issueUrl:t.url,projectItemId:t.projectItemId,expectedStatusName:t.status,...r??{}}),fi=(e,t)=>({pjcode:e,action:`set_intmux`,issueUrl:t.url,projectItemId:t.projectItemId,expectedStatusName:t.status}),pi=(e,t,n)=>({pjcode:e,url:t.url,body:n}),mi=e=>({issueUrl:e.url}),hi=()=>Error(`No project specified in the URL path.`),gi=(e,t,n)=>{let r=(0,y.useCallback)(e=>{if(t===void 0)return;let n=`${e.repo}#${e.number}`;t.body.invalidate(n),t.comments.invalidate(n)},[t]),i=(0,y.useCallback)(async(t,n,i,a=[])=>{if(e===null)throw hi();await ln(si,ui(e,t,n,i,a)),r(t)},[e,r]),a=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:n,issueUrl:t.url,projectItemId:t.projectItemId}),r(t)},[e,r]),o=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:`set_agent`,issueUrl:t.url,projectItemId:t.projectItemId,agentOptionId:n.id}),r(t)},[e,r]),s=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:`set_story`,issueUrl:t.url,projectItemId:t.projectItemId,storyOptionId:n.id}),r(t)},[e,r]),c=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,di(e,t,`set_status`,{statusName:n.name})),r(t)},[e,r]),l=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(li,fi(e,t)),r(t)},[e,r]),u=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:n,issueUrl:t.url,projectItemId:t.projectItemId}),r(t)},[e,r]),d=(0,y.useCallback)(async(e,t)=>{try{await c(e,t)}catch(e){throw new sr(1,e)}await n?.()},[c,n]),f=(0,y.useCallback)(async(t,r,i=0)=>{if(e===null)throw hi();if(i>0){await d(t,r);return}let a=await fn(pi(e,t,`ok`));if(a.posted){await d(t,r);return}await c(t,r),await n?.();let o=a.rateLimitResetAt===null?``:` Rate limit resets at ${a.rateLimitResetAt}.`;throw Error(`Comment not posted — ${a.error}.${o} Status was changed. Re-post: ok`)},[e,c,n,d]),p=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();let i=await fn(pi(e,t,n));if(!i.posted){let e=i.rateLimitResetAt===null?``:` Rate limit resets at ${i.rateLimitResetAt}.`;throw Error(`${i.error}.${e}`)}return r(t),i.comment},[e,r]),m=(0,y.useCallback)(async(t,n,r)=>{if(e===null)throw hi();let i=await fn(pi(e,t,n));if(!i.posted){let e=i.rateLimitResetAt===null?``:` Rate limit resets at ${i.rateLimitResetAt}.`;throw Error(`${i.error}.${e}`)}return await d(t,r),i.comment},[e,d]),h=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`no project in the URL path`);let r=mn(new Uint8Array(await n.arrayBuffer()));return hn({pjcode:e,url:t.url,fileName:n.name,contentBase64:r})},[e]),g=(0,y.useCallback)(async(t,n,r,i,a)=>{if(e===null)throw hi();await yn({pjcode:e,url:t,path:n,line:r,side:i,body:a})},[e]),_=(0,y.useCallback)(async(e,t)=>{await Vn({issueUrl:e.url,newTitle:t})},[]),v=(0,y.useCallback)(async(e,t)=>{try{await Un({issueUrl:e.url,body:t})}finally{r(e)}},[r]),b=(0,y.useCallback)(async(e,t,n)=>{try{await Gn({issueUrl:e.url,commentId:t,body:n})}finally{r(e)}},[r]),x=(0,y.useCallback)(async e=>{await Dn(mi(e)),r(e)},[r]),S=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await qn({pjcode:e,issueUrl:t.url,dependedIssueUrl:n})},[e]);return(0,y.useMemo)(()=>({reviewPullRequest:i,setNextActionDate:a,setStory:s,setAgent:o,setStatus:c,setInTmuxByHuman:l,closeIssue:u,okAndMoveToAwaitingWorkspace:f,addComment:p,addCommentAndMoveToAwaitingWorkspace:m,uploadAttachment:h,addInlineReviewComment:g,issueRename:_,issueBodyUpdate:v,issueCommentBodyUpdate:b,deleteAllComments:x,setDependedIssueUrl:S,onAfterMoveToAwaitingWorkspace:n}),[i,a,s,o,c,l,u,f,p,m,h,g,_,v,b,x,S,n])},_i=e=>`pv_overlay_${e}`,vi=e=>e.projectItemId===``?e.itemId:e.projectItemId,yi=(e,t)=>e!==void 0&&e.done===!0&&e.mode===t,bi=(e,t,n)=>e.filter(e=>!yi(t[vi(e)],n)).length,xi=(e,t,n)=>e.filter(e=>!yi(t[vi(e)],n)),Si=(e,t,n)=>{if(n===null)return null;let r=Date.parse(n);if(Number.isNaN(r))return null;let i=e[vi(t)];return i===void 0||i.ts<r?null:i.status??null},Ci=(e,t,n,r,i)=>{let a={...e[t]??{},...n,ts:i,mode:r};return{...e,[t]:a}},wi=(e,t)=>{let n={...e};return delete n[t],n},Ti=(e,t)=>{let n={};for(let[r,i]of Object.entries(e)){if(i.done!==!0){n[r]=i;continue}let e=t[i.mode];if(e==null){n[r]=i;continue}let a=Date.parse(e.generatedAt);if(Number.isNaN(a)||i.ts>=a){n[r]=i;continue}e.items.some(e=>vi(e)===r)||(n[r]=i)}return n},Ei=e=>typeof e==`object`&&!!e&&typeof e.ts==`number`,Di=e=>{if(typeof localStorage>`u`)return{};let t=localStorage.getItem(_i(e));if(t===null)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n)return{};let r={};for(let[e,t]of Object.entries(n))Ei(t)&&(r[e]=t);return r},Oi=(e,t)=>{typeof localStorage<`u`&&localStorage.setItem(_i(e),JSON.stringify(t))},ki=e=>{let[t,n]=(0,y.useState)(()=>Di(e));return{overlay:t,patchOverlay:(0,y.useCallback)((t,r,i)=>{n(n=>{let a=Ci(n,t,r,i,Date.now());return Oi(e,a),a})},[e]),revertOverlayEntry:(0,y.useCallback)(t=>{n(n=>{let r=wi(n,t);return Oi(e,r),r})},[e])}},Ai=e=>{let t=e.split(`/`).filter(e=>e.length>0);if(t.length<2||t[0]!==`projects`)return null;let n=t[1];return n.length===0?null:n},ji=()=>{let[e,t]=(0,y.useState)(()=>Ai(typeof window>`u`?``:window.location.pathname));return(0,y.useEffect)(()=>{let e=()=>{t(Ai(window.location.pathname))};return window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`popstate`,e)}},[]),e},Mi=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Ni=(e,t)=>{let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g]=(0,y.useState)(null),[_,v]=(0,y.useState)(!0),[b,x]=(0,y.useState)(null),S=(0,y.useRef)({pjcodes:n,projectUrls:i,fleetTaskCreateUrl:o,nameWithOwnerByPjcode:c,disabledPjcodes:u,workflowStoryEntries:f,workflowAgentOptions:m,actionableCounts:g});return(0,y.useEffect)(()=>{let e=!1;return v(!0),x(null),Ln().then(t=>{e||(S.current={pjcodes:t.pjcodes,projectUrls:t.projectUrls,fleetTaskCreateUrl:t.fleetTaskCreateUrl,nameWithOwnerByPjcode:t.nameWithOwnerByPjcode,disabledPjcodes:t.disabledPjcodes,workflowStoryEntries:t.workflowStoryEntries,workflowAgentOptions:t.workflowAgentOptions,actionableCounts:t.actionableCounts},r(t.pjcodes),a(t.projectUrls),s(t.fleetTaskCreateUrl),l(t.nameWithOwnerByPjcode),d(t.disabledPjcodes),p(t.workflowStoryEntries),h(t.workflowAgentOptions),v(!1))}).catch(t=>{e||(x(t instanceof Error?t:Error(String(t))),v(!1))}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!e||t)return;let n=!1,i=e=>{let t=S.current;Mi(t.pjcodes,e.pjcodes)||(S.current={...S.current,pjcodes:e.pjcodes},r(e.pjcodes)),Mi(t.projectUrls,e.projectUrls)||(S.current={...S.current,projectUrls:e.projectUrls},a(e.projectUrls)),Mi(t.fleetTaskCreateUrl,e.fleetTaskCreateUrl)||(S.current={...S.current,fleetTaskCreateUrl:e.fleetTaskCreateUrl},s(e.fleetTaskCreateUrl)),Mi(t.nameWithOwnerByPjcode,e.nameWithOwnerByPjcode)||(S.current={...S.current,nameWithOwnerByPjcode:e.nameWithOwnerByPjcode},l(e.nameWithOwnerByPjcode)),Mi(t.disabledPjcodes,e.disabledPjcodes)||(S.current={...S.current,disabledPjcodes:e.disabledPjcodes},d(e.disabledPjcodes)),Mi(t.workflowStoryEntries,e.workflowStoryEntries)||(S.current={...S.current,workflowStoryEntries:e.workflowStoryEntries},p(e.workflowStoryEntries)),Mi(t.workflowAgentOptions,e.workflowAgentOptions)||(S.current={...S.current,workflowAgentOptions:e.workflowAgentOptions},h(e.workflowAgentOptions))},o=setInterval(()=>{Ln().then(e=>{n||i(e)}).catch(e=>{n||x(e instanceof Error?e:Error(String(e)))})},jr);return()=>{n=!0,clearInterval(o)}},[e,t]),{pjcodes:n,projectUrls:i,fleetTaskCreateUrl:o,nameWithOwnerByPjcode:c,disabledPjcodes:u,workflowStoryEntries:f,workflowAgentOptions:m,actionableCounts:g,isLoading:_,error:b}},Pi=e=>(0,y.useCallback)(t=>{$n(),e(t)},[e]),Fi=()=>typeof window<`u`&&window.location.hash===`#settings`,Ii=e=>{let[t,n]=(0,y.useState)(Fi),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)({}),d=(0,y.useRef)(``),f=(0,y.useRef)(e);f.current=e,(0,y.useEffect)(()=>{if(!t)return;let e=!1;return u({}),i(!0),c(null),Promise.all(f.current.map(e=>zn(e).then(t=>({pjcode:e,value:t.maximumPreparingIssuesCount===null?``:String(t.maximumPreparingIssuesCount)})))).then(t=>{if(!e){let e={};for(let{pjcode:n,value:r}of t)e[n]=r;u(e)}}).catch(t=>{e||c(t instanceof Error?t.message:`Failed to load settings`)}).finally(()=>{e||i(!1)}),()=>{e=!0}},[t]),(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{let e=window.location.hash===ai;e||c(null),n(e)};return window.addEventListener(`popstate`,e),window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`popstate`,e),window.removeEventListener(`hashchange`,e)}},[]);let p=(0,y.useCallback)(()=>{typeof window<`u`&&(d.current=window.location.hash,window.history.pushState({},``,ai)),n(!0)},[]),m=(0,y.useCallback)(()=>{if(typeof window<`u`){let e=d.current,t=`${window.location.pathname}${window.location.search}${e}`;window.history.replaceState({},``,t)}n(!1),c(null)},[]),h=(0,y.useCallback)((e,t)=>{u(n=>({...n,[e]:t}))},[]),g=(0,y.useCallback)(async()=>{o(!0),c(null);try{if(await Promise.all(Object.entries(l).filter(([,e])=>{let t=parseInt(e,10);return!Number.isNaN(t)&&t>=0}).map(([e,t])=>Yn({pjcode:e,maximumPreparingIssuesCount:parseInt(t,10)}))),typeof window<`u`){let e=d.current,t=`${window.location.pathname}${window.location.search}${e}`;window.history.replaceState({},``,t)}n(!1)}catch(e){c(e instanceof Error?e.message:`Failed to save settings`)}finally{o(!1)}},[l]);return(0,y.useEffect)(()=>{if(!t)return;let e=e=>{e.key===`Escape`&&m()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t,m]),{isOpen:t,isLoading:r,isSaving:a,error:s,inputValues:l,open:p,close:m,changeInput:h,save:g}},Li=e=>{let t=(0,y.useRef)(e),n=(0,y.useRef)(Date.now());return t.current!==e&&(t.current=e,n.current=Date.now()),{isTimerExpired:(0,y.useCallback)(e=>e<=0?!1:Date.now()-n.current>=e*60*1e3,[])}},Ri=/##\s+(?:エグゼクティブサマリ(?:\s*\/\s*Executive\s+Summary)?|Executive\s+Summary)\s*\n/i,zi=/^From:\s+:robot:/m,Bi=/^##\s/m,Vi=e=>{let t=Ri.exec(e);if(t===null)return null;let n=e.slice(t.index+t[0].length),r=zi.exec(n),i=Bi.exec(n),a=n.length;r!==null&&(a=Math.min(a,r.index)),i!==null&&(a=Math.min(a,i.index));let o=n.slice(0,a).trim();return o.length>0?o:null},Hi=e=>{if(e.length===0)return null;let t=e[e.length-1],n=Vi(t.body);if(n!==null)return n;let r=t.body.trim();return r.length>0?r:null},Ui=e=>`${e.repo}#${e.number}`,Wi=(e,t,n)=>{let[r,i]=(0,y.useState)({});return(0,y.useEffect)(()=>{if(!n)return;let r=!1;for(let n of e){let e=Ui(n),a=t.peek(e);if(a!==void 0){let e=Hi(a);r||i(t=>t[n.projectItemId]===e?t:{...t,[n.projectItemId]:e});continue}t.load(e,n.url).then(e=>{if(r)return;let t=Hi(e);i(e=>e[n.projectItemId]===t?e:{...e,[n.projectItemId]:t})}).catch(()=>{r||i(e=>e[n.projectItemId]===null?e:{...e,[n.projectItemId]:null})})}return()=>{r=!0}},[e,t,n]),r},Gi=(e,t)=>{let n=Math.abs(e);return n<60||n<=Math.abs(t)*1.5?null:e<0?`next`:`previous`},Ki=(e,t)=>{let n=Math.abs(e),r=Math.abs(t);return r>n*1.5&&r>20},qi=(e,t,n,r)=>e===`previous`?t<=0:t>=n-r,Ji=e=>{let t=e instanceof Element?e:null;for(;t!==null&&t!==document.body;){let e=window.getComputedStyle(t).overflowX;if((e===`auto`||e===`scroll`)&&t.scrollWidth>t.clientWidth)return{scrollLeft:t.scrollLeft,scrollWidth:t.scrollWidth,clientWidth:t.clientWidth};t=t.parentElement}return null},Yi=e=>{let t=(0,y.useRef)(e);t.current=e;let n=(0,y.useRef)(null),r=(0,y.useCallback)(e=>{let n=0,r=0,i=!1,a=null,o=e=>{if(e.touches.length!==1){i=!1;return}a=Ji(e.target);let t=e.touches[0];n=t.clientX,r=t.clientY,i=!0},s=e=>{if(!i)return;let t=e.touches[0];Ki(t.clientX-n,t.clientY-r)&&(i=!1)},c=e=>{if(!i||(i=!1,e.changedTouches.length!==1))return;let o=e.changedTouches[0],s=Gi(o.clientX-n,o.clientY-r);s!==null&&(a===null||qi(s,a.scrollLeft,a.scrollWidth,a.clientWidth))&&t.current(s)};return e.addEventListener(`touchstart`,o,{passive:!0}),e.addEventListener(`touchmove`,s,{passive:!0}),e.addEventListener(`touchend`,c,{passive:!0}),()=>{e.removeEventListener(`touchstart`,o),e.removeEventListener(`touchmove`,s),e.removeEventListener(`touchend`,c)}},[]),i=(0,y.useCallback)(e=>{n.current!==null&&(n.current(),n.current=null),e!==null&&(n.current=r(e))},[r]);return(0,y.useEffect)(()=>()=>{n.current!==null&&(n.current(),n.current=null)},[]),i},Xi=e=>(0,y.useCallback)(t=>{$n(),e(t)},[e]),Zi=(e,t,n,r,i)=>{let a=(0,y.useRef)(void 0),o=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(!e){a.current=t,o.current=!1;return}a.current!==t&&(a.current=t,o.current=t!==null),o.current&&r===null&&n.length!==0&&(o.current=!1,i(n[0].projectItemId))},[e,t,n,r,i])},Qi=()=>{let[e,t]=(0,y.useState)(ce),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(e),o=(0,y.useCallback)(()=>{t(e=>(a(e),e)),r(!0)},[]),s=(0,y.useCallback)(()=>{r(!1)},[]),c=(0,y.useCallback)(()=>{a(e=>(le(e),t(e),e)),r(!1)},[]),l=(0,y.useCallback)(e=>{a(t=>({...t,timerMode:e}))},[]),u=(0,y.useCallback)((e,t)=>{a(n=>({...n,projectMinutes:{...n.projectMinutes,[e]:t}}))},[]);return{timerMode:e.timerMode,projectMinutes:e.projectMinutes,isOpen:n,draftTimerMode:i.timerMode,draftProjectMinutes:i.projectMinutes,openSettings:o,closeSettings:s,saveSettings:c,toggleDraftTimerMode:l,changeDraftMinutes:u}},$i=`console-comment-drafts`,ea=()=>{try{let e=localStorage.getItem($i);if(e===null)return new Map;let t=JSON.parse(e);return Array.isArray(t)?new Map(t.filter(e=>Array.isArray(e)&&e.length===2&&typeof e[0]==`string`&&typeof e[1]==`string`)):new Map}catch(e){return console.error(`Failed to load comment drafts from storage:`,e),new Map}},ta=e=>{try{localStorage.setItem($i,JSON.stringify([...e]))}catch(e){console.error(`Failed to save comment drafts to storage:`,e)}},na=(e,t)=>{let n=e.indexOf(t);if(n<0)return e.length>0?e[0]:null;let r=n+1;return r<e.length?e[r]:null},ra=(e,t)=>{let n=e.indexOf(t);return n<0||n>=e.length-1?null:e[n+1]},V=(e,t)=>{let n=e.indexOf(t);return n<=0?null:e[n-1]},ia=(e,t)=>e.length===0?`${t}\n`:e.endsWith(`
16
+ `);u=f.pop()??``;for(let e of f){if(!e.startsWith(`data: `))continue;let o=Ut(e.slice(6));if(o!==null){if(o.type===`progress`)r({fetched:typeof o.fetched==`number`?o.fetched:0,total:typeof o.total==`number`?o.total:0});else if(o.type===`done`){let e=Vt(o.snapshot);if(e===null){t(`error`),s([`Failed to parse snapshot`]),l(i);return}let r=yt(n,e);if(r.status===`error`){s(r.failures),t(`error`),l(r.failures);return}let c=Vt(r.snapshot);if(c===null){t(`error`),s([`Failed to merge snapshot`]),l(i);return}await Tt(c),wt(!0),a(c),t(`on`),s(c.failures),l(c.failures)}}}}},[]),f=(0,y.useCallback)(()=>{u.current!==null&&u.current.abort();let e=new AbortController;u.current=e,t(`syncing`),r({fetched:0,total:0}),s([]),l([]),fetch(Ht,{signal:e.signal}).then(async e=>{if(!e.ok||e.body===null){t(`error`),s([`HTTP ${e.status}`]),l([]);return}await d(e.body,null,[])}).catch(e=>{e instanceof Error&&e.name===`AbortError`||(t(`error`),s([e instanceof Error?e.message:String(e)]),l([]))})},[d]),p=(0,y.useCallback)(()=>{u.current!==null&&(u.current.abort(),u.current=null),t(`off`),a(null),r(null),s([]),l([]),wt(!1),Dt().catch(()=>{})},[]),m=(0,y.useCallback)((e,n)=>{if(n.length===0)return;u.current!==null&&u.current.abort();let i=new AbortController;u.current=i,t(`syncing`),r({fetched:0,total:n.length}),s([]),l([]),fetch(Ht,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({targetUrls:n}),signal:i.signal}).then(async r=>{if(!r.ok||r.body===null){t(`error`),s([`HTTP ${r.status}`]),l(n);return}await d(r.body,e,n)}).catch(e=>{e instanceof Error&&e.name===`AbortError`||(t(`error`),s([e instanceof Error?e.message:String(e)]),l(n))})},[d]);return{status:e,progress:n,snapshot:i,failures:o,retryTargetUrls:c,startSync:f,turnOff:p,retryFailed:()=>m(i,c)}},Gt=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Kt=e=>typeof e==`string`?e:``,qt=e=>typeof e==`number`?e:0,Jt=e=>e===!0,Yt=`console-api-v1`,Xt=async(e,t)=>{let n=`${e}?url=${encodeURIComponent(t)}`;try{let e=await fetch(n);if(!e.ok){let t=`HTTP ${e.status}`;try{let n=await e.json();Gt(n)&&typeof n.error==`string`&&n.error.length>0&&(t=n.error)}catch(e){console.warn(`Failed to parse error body from non-ok response:`,e)}throw Error(t)}let t=await e.json();try{`caches`in globalThis&&globalThis.caches.open(Yt).then(e=>e.put(n,new Response(JSON.stringify(t),{headers:{"Content-Type":`application/json`}}))).catch(e=>{console.warn(`Failed to persist API response to cache:`,e)})}catch(e){console.warn(`Failed to access cache storage:`,e)}return t}catch(e){try{if(`caches`in globalThis){let e=await(await globalThis.caches.open(Yt)).match(n);if(e!==void 0)return e.json()}}catch{}throw e}},Zt=e=>!Gt(e)||!Array.isArray(e.comments)?[]:e.comments.filter(Gt).map(e=>({id:qt(e.id),author:Kt(e.author),body:Kt(e.body),createdAt:Kt(e.createdAt)})),Qt=e=>!Gt(e)||!Array.isArray(e.files)?[]:e.files.filter(Gt).map(e=>({path:Kt(e.path)||Kt(e.filename),additions:qt(e.additions),deletions:qt(e.deletions),status:Kt(e.status),patch:typeof e.patch==`string`?e.patch:null,rawUrl:typeof e.rawUrl==`string`?e.rawUrl:null})),$t=e=>!Gt(e)||!Array.isArray(e.commits)?[]:e.commits.filter(Gt).map(e=>({sha:Kt(e.sha),message:Kt(e.message),author:Kt(e.author),authoredAt:Kt(e.authoredAt)})),en=e=>Gt(e)?{title:Kt(e.title),body:Kt(e.body),additions:qt(e.additions),deletions:qt(e.deletions),changedFiles:qt(e.changedFiles)}:null,tn=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],nn=e=>e===`MERGEABLE`?`MERGEABLE`:e===`CONFLICTING`?`CONFLICTING`:`UNKNOWN`,rn=e=>!Gt(e)||!Array.isArray(e.relatedPullRequests)?[]:e.relatedPullRequests.filter(Gt).map(e=>({url:Kt(e.url),branchName:typeof e.branchName==`string`?e.branchName:null,createdAt:Kt(e.createdAt),isDraft:Jt(e.isDraft),isConflicted:Jt(e.isConflicted),mergeableStatus:nn(e.mergeableStatus),isPassedAllCiJob:Jt(e.isPassedAllCiJob),isCiStateSuccess:Jt(e.isCiStateSuccess),isResolvedAllReviewComments:Jt(e.isResolvedAllReviewComments),isBranchOutOfDate:Jt(e.isBranchOutOfDate),missingRequiredCheckNames:tn(e.missingRequiredCheckNames),summary:en(e.summary)})),an=e=>{if(!Gt(e)||!Gt(e.status))return{found:!1,isConflicted:!1,mergeableStatus:`UNKNOWN`,isPassedAllCiJob:!1,isCiStateSuccess:!1,isBranchOutOfDate:!1,missingRequiredCheckNames:[]};let t=e.status;return{found:!0,isConflicted:Jt(t.isConflicted),mergeableStatus:nn(t.mergeableStatus),isPassedAllCiJob:Jt(t.isPassedAllCiJob),isCiStateSuccess:Jt(t.isCiStateSuccess),isBranchOutOfDate:Jt(t.isBranchOutOfDate),missingRequiredCheckNames:tn(t.missingRequiredCheckNames)}},on=e=>Gt(e)?{state:Kt(e.state)||`open`,merged:Jt(e.merged),isPullRequest:Jt(e.isPullRequest),title:Kt(e.title),stateReason:Kt(e.stateReason)}:{state:`open`,merged:!1,isPullRequest:!1,title:``,stateReason:``},sn=()=>({fetchItemBody:async e=>{let t=await Xt(`/api/itembody`,e);return Gt(t)?Kt(t.body):``},fetchComments:async e=>Zt(await Xt(`/api/comments`,e)),fetchPrFiles:async e=>Qt(await Xt(`/api/prfiles`,e)),fetchPrCommits:async e=>$t(await Xt(`/api/prcommits`,e)),fetchRelatedPrs:async e=>rn(await Xt(`/api/relatedprs`,e)),fetchIssueState:async e=>on(await Xt(`/api/issuetitle`,e)),fetchPullRequestStatus:async e=>an(await Xt(`/api/pullrequeststatus`,e))}),cn=async e=>{let t=await e.text().catch(()=>``);if(t.length===0)return`HTTP ${e.status}`;try{let e=JSON.parse(t);if(Gt(e)&&typeof e.error==`string`)return e.error}catch{return t}return t},ln=async(e,t)=>{let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(await cn(n))},un=`/api/comment`,dn=e=>({id:qt(e.id),author:Kt(e.author),body:Kt(e.body),createdAt:Kt(e.createdAt)}),fn=async e=>{let t=await fetch(un,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)return{posted:!1,error:await cn(t),rateLimitResetAt:null};let n=await t.json();return Gt(n)?n.ok===!1?{posted:!1,error:typeof n.error==`string`?n.error:`upstream error`,rateLimitResetAt:typeof n.rateLimitResetAt==`string`?n.rateLimitResetAt:null}:Gt(n.comment)?{posted:!0,comment:dn(n.comment)}:{posted:!1,error:`comment was not returned`,rateLimitResetAt:null}:{posted:!1,error:`unexpected response shape`,rateLimitResetAt:null}},pn=`/api/upload`,mn=e=>{let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)},hn=async e=>{let t=await fetch(pn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t));let n=await t.json();if(!Gt(n)||typeof n.markdown!=`string`)throw Error(`markdown was not returned`);return n.markdown},gn=`/api/addstory`,_n=async e=>{let t=await fetch(gn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t));let n=await t.json();return!Gt(n)||!Array.isArray(n.stories)?[]:n.stories.filter(Gt).map(e=>({id:Kt(e.id),name:Kt(e.name),color:Kt(e.color)}))},vn=`/api/reviewcomment`,yn=async e=>{let t=await fetch(vn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},bn=`/api/createissue`,xn=`/api/storycolor`,Sn=async e=>{let t=await fetch(xn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Cn=async e=>{let t=await fetch(bn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t));let n=await t.json();if(!(e=>typeof e==`object`&&!!e&&!Array.isArray(e))(n)||typeof n.issueUrl!=`string`)throw Error(`issueUrl was not returned`);return n.issueUrl},wn=`/api/reorderstory`,Tn=async e=>{let t=await fetch(wn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},En=`/api/deleteallcomments`,Dn=async e=>{let t=await fetch(En,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},On=`/api/deletestory`,kn=async e=>{let t=await fetch(On,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},An=`/api/renamestory`,jn=async e=>{let t=await fetch(An,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Mn=`/api/storydescription`,Nn=async e=>{let t=await fetch(Mn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Pn=e=>typeof e!=`object`||!e||Array.isArray(e)?null:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`string`)),Fn=e=>Array.isArray(e)?e.filter(Gt):null,In=e=>Array.isArray(e)?e.filter(Gt):null,Ln=async()=>{let e=await fetch(`/api/projects`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if(typeof t!=`object`||!t||Array.isArray(t))return{pjcodes:[],projectUrls:null,fleetTaskCreateUrl:null,nameWithOwnerByPjcode:null,disabledPjcodes:[],workflowStoryEntries:null,workflowAgentOptions:null,actionableCounts:null};let n=t;return{pjcodes:Array.isArray(n.pjcodes)?n.pjcodes.filter(e=>typeof e==`string`):[],projectUrls:Pn(n.projectUrls),fleetTaskCreateUrl:typeof n.fleetTaskCreateUrl==`string`?n.fleetTaskCreateUrl:null,nameWithOwnerByPjcode:Pn(n.nameWithOwnerByPjcode),disabledPjcodes:Array.isArray(n.disabledPjcodes)?n.disabledPjcodes.filter(e=>typeof e==`string`):[],workflowStoryEntries:Fn(n.workflowStoryEntries),workflowAgentOptions:In(n.workflowAgentOptions),actionableCounts:null}},Rn=`/api/projectreadmeconfig`,zn=async e=>{let t=`${Rn}?pjcode=${encodeURIComponent(e)}`,n=await fetch(t);if(!n.ok)throw Error(await cn(n));let r=await n.json();return{maximumPreparingIssuesCount:Gt(r)&&typeof r.maximumPreparingIssuesCount==`number`?r.maximumPreparingIssuesCount:null}},Bn=`/api/renameissue`,Vn=async e=>{let t=await fetch(Bn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Hn=`/api/issuebody`,Un=async e=>{let t=await fetch(Hn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Wn=`/api/issuecommentbody`,Gn=async e=>{let t=await fetch(Wn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Kn=`/api/setdependedissueurl`,qn=async e=>{let t=await fetch(Kn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Jn=`/api/projectsettings`,Yn=async e=>{let t=await fetch(Jn,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await cn(t))},Xn=`console-comment-expanded:`,Zn=e=>{try{let t=localStorage.getItem(Xn+e);if(t===null)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(e=>typeof e==`string`)):new Set}catch(e){return console.error(`Failed to load comment expanded state from storage:`,e),new Set}},Qn=(e,t)=>{try{localStorage.setItem(Xn+e,JSON.stringify([...t]))}catch(e){console.error(`Failed to save comment expanded state to storage:`,e)}},$n=()=>{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n?.startsWith(Xn)&&e.push(n)}for(let t of e)localStorage.removeItem(t)},er=`console-offline-action-queue`,tr=e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.message==`string`&&typeof t.color==`string`&&typeof t.enqueuedAt==`number`&&typeof t.itemUrl==`string`&&typeof t.projectItemId==`string`&&typeof t.itemNumber==`number`&&typeof t.repo==`string`&&typeof t.nameWithOwner==`string`&&typeof t.isPr==`boolean`&&typeof t.apiPath==`string`&&typeof t.requestBody==`object`&&t.requestBody!==null},nr=e=>typeof e.pjcode==`string`&&typeof e.url==`string`&&typeof e.body==`string`,rr=()=>{try{let e=localStorage.getItem(er);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(tr):[]}catch{return[]}},ir=e=>{localStorage.setItem(er,JSON.stringify(e))},ar=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`,or=e=>e instanceof TypeError,sr=class extends Error{sentStepCount;constructor(e,t){super(t instanceof Error?t.message:String(t)),this.name=`ConsoleActionPartiallySentError`,this.sentStepCount=e,this.cause=t}},cr=async(e,t=0)=>{for(let n=t;n<e.length;n+=1)try{await e[n]()}catch(e){throw n===0?e:new sr(n,e)}},lr=`Airplane mode`,ur=`This action requires a network connection. Turn off airplane mode and try again.`,dr=e=>e instanceof Error&&e.message.length>0?e.message:String(e),fr=100,pr=(e={isAirplaneModeOn:!1})=>{let t=(0,y.useRef)(e.isAirplaneModeOn);t.current=e.isAirplaneModeOn;let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)([]),[o,s]=(0,y.useState)(rr),c=(0,y.useRef)(o);c.current=o;let l=(0,y.useRef)(new Map),u=(0,y.useRef)(()=>{}),d=(0,y.useRef)(0),[f,p]=(0,y.useState)({status:`idle`,attempt:0}),[m,h]=(0,y.useState)(0),g=(0,y.useCallback)(e=>{a(t=>[...t,{id:ar(),createdAt:Date.now(),...e}])},[]),_=(0,y.useCallback)(({payloads:e,message:t,color:n})=>{let r=Date.now(),i=e.map(e=>({id:ar(),message:t,color:n,enqueuedAt:r,...e}));s(e=>{let t=[...e,...i];return ir(t),t})},[]),v=(0,y.useCallback)((e,n,r)=>{let i=d.current+1;d.current=i;let o=r??ar(),s=e=>{a(t=>{let n=t.findIndex(e=>e.id===o);return n===-1?[...t,{id:o,createdAt:Date.now(),...e}]:t.map((t,r)=>r===n?{...t,...e}:t)})},c=e.offline??[],l=t=>{_({payloads:t,message:e.message,color:e.color}),p({status:`offline`,attempt:i})};if(t.current){let t=c.slice(n);t.length>0?l(t):(e.revertAdvance?.(),e.revertOptimistic?.(),s({message:lr,reason:ur}),p({status:`failed`,attempt:i}));return}p({status:`unconfirmed`,attempt:i}),e.commit(n).then(()=>{p({status:`succeeded`,attempt:i})}).catch(t=>{let r=t instanceof sr,a=r?t.sentStepCount:n,d=c.slice(a),f=r?t.cause:t;or(f)&&d.length>0?l(d):(s({message:e.message,reason:dr(f),retry:()=>u.current(e,a,o)}),p({status:`failed`,attempt:i}))})},[_]);u.current=v;let b=(0,y.useCallback)(e=>{let t=l.current.get(e);t!==void 0&&(t.timer!==null&&clearInterval(t.timer),l.current.delete(e),r(t=>t.filter(t=>t.id!==e)),$n(),v(t.action,0))},[v]),x=(0,y.useCallback)(e=>{let t=l.current.get(e);t!==void 0&&(t.timer!==null&&clearInterval(t.timer),l.current.delete(e),r(t=>t.filter(t=>t.id!==e)),t.action.revertAdvance?.(),t.action.revertOptimistic?.())},[]),S=(0,y.useCallback)(e=>{b(e)},[b]),ee=(0,y.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),C=(0,y.useCallback)((e,t)=>{g({message:e,reason:t})},[g]),w=(0,y.useCallback)(e=>{s(t=>{let n=t.filter(t=>t.id!==e);return ir(n),n})},[]),T=(0,y.useCallback)(async e=>{let t=c.current.find(t=>t.id===e);if(t!==void 0)try{if(t.apiPath===`/api/comment`&&nr(t.requestBody)){let n=await fn(t.requestBody);if(n.posted){w(e);return}let r=n.rateLimitResetAt===null?``:` Rate limit resets at ${n.rateLimitResetAt}.`;g({message:t.message,reason:`${n.error}.${r}`});return}await ln(t.apiPath,t.requestBody),w(e)}catch(n){or(n)?g({message:t.message,reason:`Still offline — action is still held in the queue`}):(g({message:t.message,reason:dr(n)}),w(e))}},[g,w]),E=(0,y.useCallback)(e=>{h(e=>e+1);let t=ar(),n=Date.now(),i={id:t,createdAt:n,action:e,startedAt:n,timer:null};l.current.set(t,i),r(r=>[...r,{id:t,createdAt:n,message:e.message,color:e.color}]),e.advance(),e.optimistic?.(),i.timer=setInterval(()=>{Date.now()-i.startedAt>=5e3&&b(t)},fr)},[b]);return(0,y.useEffect)(()=>()=>{for(let e of Array.from(l.current.keys()))b(e)},[b]),{pending:n,error:i,offlineActions:o,writeState:f,enqueueSequence:m,enqueue:E,offlineActionsCreate:_,showError:C,undo:x,dismiss:S,dismissError:ee,confirmOfflineAction:T,discardOfflineAction:w}},mr=e=>{window.history.pushState({},``,e),window.dispatchEvent(new PopStateEvent(`popstate`))},hr=e=>{window.history.replaceState({},``,e),window.dispatchEvent(new PopStateEvent(`popstate`))},gr=(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m)=>{let h=(0,y.useRef)(0),g=(0,y.useRef)(null),_=(0,y.useRef)(0),v=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e||i===null){h.current=0,g.current=null,v.current=null;return}let y=f!==_.current;y&&(_.current=f);let b=a.filter(e=>(o[e]??15)>0),x=Object.fromEntries(a.map(e=>[e,1])),S=v.current,ee=S!==null&&S.pjcode===i&&b.some(e=>!S.pjcodesWithMinutes.includes(e));v.current={pjcode:i,pjcodesWithMinutes:b};let C=M({actionNewlyEnqueued:y,timerElapsed:t(o[i]??15),remainingCountIsZero:n===0&&r===0,snapshotsReady:s&&c&&!l&&!u,explicitlySelectedPjcodeMatchesCurrent:d!==null&&i===d,taskOpen:p!==null,dialogOpen:m,aProjectGainedRemainingMinutesSinceTheCurrentProjectWasLastEvaluated:ee,pjcode:i,pjcodes:a,projectMinutes:o,skipCount:h.current,evaluatedPjcode:g.current,projectTodoByHumanCounts:x,projectAwaitingOwnerCounts:{}});h.current=C.nextSkipCount,g.current=C.nextEvaluatedPjcode,C.targetPjcode!==null&&mr(`/projects/${C.targetPjcode}/todo-by-human`)},[e,t,n,r,i,a,o,s,c,l,u,d,f,p,m])},_r=`tdpm-awaiting-owner-list-visibility-settings`,vr=()=>({showExecutiveSummaryAndActionButton:!0}),yr=()=>{if(typeof localStorage>`u`)return vr();let e=localStorage.getItem(_r);if(e===null)return vr();try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return vr();let n=t;return{showExecutiveSummaryAndActionButton:typeof n.showExecutiveSummaryAndActionButton!=`boolean`||n.showExecutiveSummaryAndActionButton}}catch{return vr()}},br=e=>{typeof localStorage<`u`&&localStorage.setItem(_r,JSON.stringify(e))},xr=e=>{let[t,n]=(0,y.useState)(()=>yr().showExecutiveSummaryAndActionButton),[r,i]=(0,y.useState)(t);return(0,y.useEffect)(()=>{e&&i(t)},[e,t]),{showExecutiveSummaryAndActionButton:t,draftShowExecutiveSummaryAndActionButton:r,toggleDraft:(0,y.useCallback)(e=>{i(e)},[]),save:(0,y.useCallback)(()=>{i(e=>(br({showExecutiveSummaryAndActionButton:e}),n(e),e))},[])}},Sr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Cr=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],wr=e=>Array.isArray(e)?e.filter(Sr).map(e=>({...e,relatedOpenPullRequestUrls:Cr(e.relatedOpenPullRequestUrls)})):[],Tr=e=>!Sr(e)||!Array.isArray(e.items)?[]:wr(e.items),Er=e=>Array.isArray(e)?e.filter(Sr):[],Dr=e=>Array.isArray(e)?e.filter(Sr).map(e=>({...e,items:wr(e.items)})):[],Or=e=>({items:Tr(e),generatedAt:Sr(e)&&typeof e.generatedAt==`string`?e.generatedAt:``,statusOptions:Sr(e)?Er(e.statusOptions):[],agentOptions:Sr(e)?Er(e.agentOptions):[],storyOptions:Sr(e)?Er(e.storyOptions):[],storyColors:Sr(e)&&Sr(e.storyColors)?e.storyColors:{},stories:Sr(e)?Dr(e.stories):[],defaultNameWithOwner:Sr(e)&&typeof e.defaultNameWithOwner==`string`?e.defaultNameWithOwner:null,storyOrder:Sr(e)?Cr(e.storyOrder):[],timerEndsAt:Sr(e)&&typeof e.timerEndsAt==`string`?e.timerEndsAt:null,timerTotalSeconds:Sr(e)&&typeof e.timerTotalSeconds==`number`&&e.timerTotalSeconds>0?e.timerTotalSeconds:null}),kr=()=>{let e={};for(let t of A)e[t.name]=null;return e},Ar=(e,t)=>`/projects/${e}/${t}/list.json`,jr=6e4,Mr=`console-list-v1`,Nr=(e,t)=>{try{if(!(`caches`in globalThis))return;globalThis.caches.open(Mr).then(n=>n.put(e,new Response(JSON.stringify(t),{headers:{"Content-Type":`application/json`}}))).catch(e=>{console.warn(`Failed to persist tab snapshot to cache:`,e)})}catch(e){console.warn(`Failed to access cache storage:`,e)}},Pr=async e=>{if(!(`caches`in globalThis))return null;try{let t=await(await globalThis.caches.open(Mr)).match(e);return t===void 0?null:{...Or(await t.json()),fromCache:!0}}catch{return null}},Fr=async e=>{let t=await Promise.all(A.map(async t=>({tabName:t.name,snapshot:await Pr(Ar(e,t.name))}))),n=kr();for(let{tabName:e,snapshot:r}of t)n[e]=r;return n},Ir=async(e,t)=>{let n=Ar(e,t);try{let e=await fetch(n);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();return Nr(n,t),{snapshot:{...Or(t),fromCache:!1},error:null}}catch(e){let t=await Pr(n);return t===null?{snapshot:null,error:e instanceof Error?e:Error(String(e))}:{snapshot:t,error:null}}},Lr=async e=>{await Promise.all(A.map(async t=>{let n=Ar(e,t.name);try{let e=await fetch(n);if(!e.ok)return;Nr(n,await e.json())}catch{}}))},Rr=async e=>{let t=await Promise.all(A.map(async t=>{let{snapshot:n,error:r}=await Ir(e,t.name);return{tabName:t.name,snapshot:n,error:r}})),n=kr(),r=null;for(let{tabName:e,snapshot:i,error:a}of t)n[e]=i,a!==null&&r===null&&(r=a);return{snapshots:n,firstError:Object.values(n).every(e=>e===null)?r:null}},zr=(e,t=null)=>{let n=(0,y.useRef)(new Map),[r,i]=(0,y.useState)(kr),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(e);if(l!==e){u(e);let t=e===null?null:n.current.get(e)??null;i(t??kr()),t!==null&&o(!1)}return(0,y.useEffect)(()=>{if(t!==null&&e!==null){let n=t.tabs[e];if(n!==void 0){let e=kr();for(let t of A){let r=n[t.name];r!==void 0&&(e[t.name]={...r})}i(e),o(!1),c(null);return}}let r=!1,a=!1;if(c(null),e===null)return i(kr()),o(!1),c(`No project specified in the URL path.`),()=>{r=!0};let s=n.current.has(e);Fr(e).then(t=>{if(r)return;let c=Object.values(t).some(e=>e!==null);c&&!a?(n.current.set(e,t),i(t),o(!1)):!c&&!a&&!s&&(o(!0),i(kr()))});let l=()=>{Rr(e).then(({snapshots:t,firstError:s})=>{r||(a=!0,n.current.set(e,t),i(t),c(s===null?null:s.message),o(!1))}).catch(e=>{r||(a=!0,c(e instanceof Error?e.message:String(e)),o(!1))})};l();let u=setInterval(l,jr);return()=>{r=!0,clearInterval(u)}},[e,t]),{snapshots:r,isLoading:a,error:s,refreshSingleTab:(0,y.useCallback)(async t=>{if(e===null)return;let{snapshot:r}=await Ir(e,t);r!==null&&i(i=>{let a={...i,[t]:r};return n.current.set(e,a),a})},[e])}},Br=(e,t,n,r,i)=>{(0,y.useEffect)(()=>{if(!i||r)return;let a=n.filter(n=>n!==e&&n!==t);if(a.length!==0)for(let e of a)Lr(e).catch(()=>{})},[i,r,e,t,n]),(0,y.useEffect)(()=>{if(!i||r)return;let t=n.filter(t=>t!==e);if(t.length===0)return;let a=setInterval(()=>{for(let e of t)Lr(e).catch(()=>{})},jr);return()=>{clearInterval(a)}},[i,r,e,n])},Vr=class{fetcher;cache=new Map;inFlight=new Map;prefetchInFlight=new Set;constructor(e){this.fetcher=e}peek=e=>this.cache.get(e);has=e=>this.cache.has(e);load=(e,t)=>{let n=this.cache.get(e);if(n!==void 0)return Promise.resolve(n);let r=this.inFlight.get(e);if(r!==void 0)return r;let i=this.fetcher(t).then(t=>(this.cache.set(e,t),t)).finally(()=>{this.inFlight.delete(e)});return this.inFlight.set(e,i),i};prefetch=(e,t)=>{this.cache.has(e)||this.inFlight.has(e)||this.prefetchInFlight.has(e)||(this.prefetchInFlight.add(e),this.fetcher(t).then(t=>{this.cache.set(e,t)}).catch(()=>{}).finally(()=>{this.prefetchInFlight.delete(e)}))};seed(e,t){this.cache.set(e,t)}invalidate=e=>{this.cache.delete(e)}},Hr=e=>{try{let t=new URL(e).pathname.split(`/`).filter(Boolean);if(t.length>=4)return`${t[0]}/${t[1]}#${t[3]}`}catch{}return e},Ur=(e,t)=>{for(let[n,r]of Object.entries(t.items)){let t=Hr(n);e.body.seed(t,r.body),e.comments.seed(t,r.comments),e.state.seed(t,r.state),r.files!==null&&e.files.seed(t,r.files),r.commits!==null&&e.commits.seed(t,r.commits),r.prStatus!==null&&e.prStatus.seed(t,r.prStatus),r.relatedPrs!==null&&e.relatedPrs.seed(t,r.relatedPrs)}},Wr=(e=null)=>(0,y.useMemo)(()=>{let t=sn(),n={client:t,body:new Vr(t.fetchItemBody),comments:new Vr(t.fetchComments),files:new Vr(t.fetchPrFiles),commits:new Vr(t.fetchPrCommits),relatedPrs:new Vr(t.fetchRelatedPrs),state:new Vr(t.fetchIssueState),prStatus:new Vr(t.fetchPullRequestStatus)};return e!==null&&Ur(n,e),n},[e]),Gr=0,Kr=500,qr=2e3,Jr=e=>{let t=window;if(typeof t.requestIdleCallback==`function`&&typeof t.cancelIdleCallback==`function`){let n=t.requestIdleCallback(e,{timeout:qr});return{cancel:()=>t.cancelIdleCallback?.(n)}}let n=window.setTimeout(e,0);return{cancel:()=>window.clearTimeout(n)}},Yr=(e,t)=>{let n=`${t.repo}#${t.number}`;e.body.prefetch(n,t.url),e.state.prefetch(n,t.url),e.comments.prefetch(n,t.url),t.isPr?(e.files.prefetch(n,t.url),e.commits.prefetch(n,t.url),e.prStatus.prefetch(n,t.url)):e.relatedPrs.prefetch(n,t.url)},Xr=(e,t,n)=>{(0,y.useEffect)(()=>{if(t===null)return;let r=n.findIndex(e=>e.projectItemId===t.projectItemId);if(r===-1)return;let i=n.slice(r+1,r+1+Gr);if(i.length===0)return;let a=null,o=window.setTimeout(()=>{a=Jr(()=>{for(let t of i)Yr(e,t)})},Kr);return()=>{window.clearTimeout(o),a?.cancel()}},[e,t,n])},Zr=e=>{let[t,n]=(0,y.useState)(null);return(0,y.useEffect)(()=>{t!==null&&e!==t&&n(null)},[e,t]),{explicitlySelectedPjcode:t,notifyExplicitSelection:(0,y.useCallback)(e=>{n(e)},[])}},Qr=`/api/features`,$r=()=>{let[e,t]=(0,y.useState)({airplaneMode:!1});return(0,y.useEffect)(()=>{fetch(Qr).then(async e=>{if(!e.ok)return;let n=await e.json();typeof n==`object`&&n&&!Array.isArray(n)&&`airplaneMode`in n&&typeof n.airplaneMode==`boolean`&&t({airplaneMode:n.airplaneMode})}).catch(e=>{console.warn(`Failed to fetch /api/features`,e)})},[]),e},ei=(e,t)=>{let n=A.findIndex(t=>t.name===e);if(n===-1)return null;for(let e=n+1;e<A.length;e+=1){let n=A[e];if(n.isNavigable!==!1&&(t[n.name]??0)>0)return n.name}return null},ti=e=>{let t=A.filter(e=>e.isNavigable!==!1);for(let n of t)if((e[n.name]??0)>0)return n.name;return t[0].name},ni=new Set(A.map(e=>e.name)),ri=e=>{let t=e.split(`/`).filter(e=>e.length>0);if(t.length<3||t[0]!==`projects`)return null;let n=t[2];return ni.has(n)?n:null},ii=e=>{if(!e.startsWith(`#item/`))return null;let t=e.slice(6);return t.length===0?null:decodeURIComponent(t)},ai=`#settings`,oi=(e,t,n=new Set,r)=>{let i=(0,y.useCallback)(()=>{let e=ti(t);return typeof window>`u`?{activeTab:e,selectedItemKey:null}:{activeTab:ri(window.location.pathname)??e,selectedItemKey:ii(window.location.hash)}},[t]),[a,o]=(0,y.useState)(i),s=(0,y.useRef)(null);s.current=e,(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{o(i())};return window.addEventListener(`popstate`,e),window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`popstate`,e),window.removeEventListener(`hashchange`,e)}},[i]),(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=ri(window.location.pathname),i=Object.values(t).some(e=>e>0),a=r??t;if(e!==null){if(t[e]>0||a[e]>0){o(t=>t.activeTab===e?t:{...t,activeTab:e});return}if(!n.has(e))return}let c=ti(t);i&&s.current!==null&&window.history.replaceState({},``,`/projects/${s.current}/${c}${window.location.search}`),o(e=>e.activeTab===c?e:{...e,activeTab:c})},[t,n,r]);let c=(0,y.useCallback)(t=>e===null?`#${t}`:`/projects/${e}/${t}`,[e]),l=(0,y.useCallback)(e=>{if(typeof window>`u`){o({activeTab:e,selectedItemKey:null});return}window.history.pushState({},``,c(e)),o({activeTab:e,selectedItemKey:null})},[c]),u=(0,y.useCallback)(e=>{typeof window<`u`&&(window.location.hash=`#item/${encodeURIComponent(e)}`),o(t=>({...t,selectedItemKey:e}))},[]),d=(0,y.useCallback)(()=>{if(typeof window<`u`&&window.location.hash!==``){let e=`${window.location.pathname}${window.location.search}`;window.history.pushState({},``,e)}o(e=>({...e,selectedItemKey:null}))},[]);return{activeTab:a.activeTab,selectedItemKey:a.selectedItemKey,tabHref:c,selectTab:l,openItem:u,closeItem:d}},si=`/api/review`,ci=`/api/triage`,li=`/api/intmux`,ui=(e,t,n,r,i)=>{if(r===`approve_and_merge`)return{pjcode:e,action:`approve_and_merge`,prUrl:n,projectItemId:t.projectItemId,expectedStatusName:t.status};if(r===`request_changes`){let r=i[0];return{pjcode:e,action:`request_changes`,prUrl:n,projectItemId:t.projectItemId,commentBody:Te(i),expectedStatusName:t.status,...r===void 0?{}:{changedFilePath:r.path,line:r.line,side:r.side}}}return r===`totally_wrong`?{pjcode:e,action:`close`,prUrl:n,issueUrl:t.url,projectItemId:t.projectItemId,commentBody:Se,expectedStatusName:t.status}:{pjcode:e,action:`unnecessary`,prUrl:n,projectItemId:t.projectItemId,issueUrl:t.url,commentBody:Ce,issueCommentBody:we(n),expectedStatusName:t.status}},di=(e,t,n,r)=>({pjcode:e,action:n,issueUrl:t.url,projectItemId:t.projectItemId,expectedStatusName:t.status,...r??{}}),fi=(e,t)=>({pjcode:e,action:`set_intmux`,issueUrl:t.url,projectItemId:t.projectItemId,expectedStatusName:t.status}),pi=(e,t,n)=>({pjcode:e,url:t.url,body:n}),mi=e=>({issueUrl:e.url}),hi=()=>Error(`No project specified in the URL path.`),gi=(e,t,n)=>{let r=(0,y.useCallback)(e=>{if(t===void 0)return;let n=`${e.repo}#${e.number}`;t.body.invalidate(n),t.comments.invalidate(n)},[t]),i=(0,y.useCallback)(async(t,n,i,a=[])=>{if(e===null)throw hi();await ln(si,ui(e,t,n,i,a)),r(t)},[e,r]),a=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:n,issueUrl:t.url,projectItemId:t.projectItemId}),r(t)},[e,r]),o=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:`set_agent`,issueUrl:t.url,projectItemId:t.projectItemId,agentOptionId:n.id}),r(t)},[e,r]),s=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:`set_story`,issueUrl:t.url,projectItemId:t.projectItemId,storyOptionId:n.id}),r(t)},[e,r]),c=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,di(e,t,`set_status`,{statusName:n.name})),r(t)},[e,r]),l=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(li,fi(e,t)),r(t)},[e,r]),u=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await ln(ci,{pjcode:e,action:n,issueUrl:t.url,projectItemId:t.projectItemId}),r(t)},[e,r]),d=(0,y.useCallback)(async(e,t)=>{try{await c(e,t)}catch(e){throw new sr(1,e)}await n?.()},[c,n]),f=(0,y.useCallback)(async(t,r,i=0)=>{if(e===null)throw hi();if(i>0){await d(t,r);return}let a=await fn(pi(e,t,`ok`));if(a.posted){await d(t,r);return}await c(t,r),await n?.();let o=a.rateLimitResetAt===null?``:` Rate limit resets at ${a.rateLimitResetAt}.`;throw Error(`Comment not posted — ${a.error}.${o} Status was changed. Re-post: ok`)},[e,c,n,d]),p=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();let i=await fn(pi(e,t,n));if(!i.posted){let e=i.rateLimitResetAt===null?``:` Rate limit resets at ${i.rateLimitResetAt}.`;throw Error(`${i.error}.${e}`)}return r(t),i.comment},[e,r]),m=(0,y.useCallback)(async(t,n,r)=>{if(e===null)throw hi();let i=await fn(pi(e,t,n));if(!i.posted){let e=i.rateLimitResetAt===null?``:` Rate limit resets at ${i.rateLimitResetAt}.`;throw Error(`${i.error}.${e}`)}return await d(t,r),i.comment},[e,d]),h=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`no project in the URL path`);let r=mn(new Uint8Array(await n.arrayBuffer()));return hn({pjcode:e,url:t.url,fileName:n.name,contentBase64:r})},[e]),g=(0,y.useCallback)(async(t,n,r,i,a)=>{if(e===null)throw hi();await yn({pjcode:e,url:t,path:n,line:r,side:i,body:a})},[e]),_=(0,y.useCallback)(async(e,t)=>{await Vn({issueUrl:e.url,newTitle:t})},[]),v=(0,y.useCallback)(async(e,t)=>{try{await Un({issueUrl:e.url,body:t})}finally{r(e)}},[r]),b=(0,y.useCallback)(async(e,t,n)=>{try{await Gn({issueUrl:e.url,commentId:t,body:n})}finally{r(e)}},[r]),x=(0,y.useCallback)(async e=>{await Dn(mi(e)),r(e)},[r]),S=(0,y.useCallback)(async(t,n)=>{if(e===null)throw hi();await qn({pjcode:e,issueUrl:t.url,dependedIssueUrl:n})},[e]);return(0,y.useMemo)(()=>({reviewPullRequest:i,setNextActionDate:a,setStory:s,setAgent:o,setStatus:c,setInTmuxByHuman:l,closeIssue:u,okAndMoveToAwaitingWorkspace:f,addComment:p,addCommentAndMoveToAwaitingWorkspace:m,uploadAttachment:h,addInlineReviewComment:g,issueRename:_,issueBodyUpdate:v,issueCommentBodyUpdate:b,deleteAllComments:x,setDependedIssueUrl:S,onAfterMoveToAwaitingWorkspace:n}),[i,a,s,o,c,l,u,f,p,m,h,g,_,v,b,x,S,n])},_i=e=>`pv_overlay_${e}`,vi=e=>e.projectItemId===``?e.itemId:e.projectItemId,yi=(e,t)=>e!==void 0&&e.done===!0&&e.mode===t,bi=(e,t,n)=>e.filter(e=>!yi(t[vi(e)],n)).length,xi=(e,t,n)=>e.filter(e=>!yi(t[vi(e)],n)),Si=(e,t,n)=>{if(n===null)return null;let r=Date.parse(n);if(Number.isNaN(r))return null;let i=e[vi(t)];return i===void 0||i.ts<r?null:i.status??null},Ci=(e,t,n,r,i)=>{let a={...e[t]??{},...n,ts:i,mode:r};return{...e,[t]:a}},wi=(e,t)=>{let n={...e};return delete n[t],n},Ti=(e,t)=>{let n={};for(let[r,i]of Object.entries(e)){if(i.done!==!0){n[r]=i;continue}let e=t[i.mode];if(e==null){n[r]=i;continue}let a=Date.parse(e.generatedAt);if(Number.isNaN(a)||i.ts>=a){n[r]=i;continue}e.items.some(e=>vi(e)===r)||(n[r]=i)}return n},Ei=e=>typeof e==`object`&&!!e&&typeof e.ts==`number`,Di=e=>{if(typeof localStorage>`u`)return{};let t=localStorage.getItem(_i(e));if(t===null)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n)return{};let r={};for(let[e,t]of Object.entries(n))Ei(t)&&(r[e]=t);return r},Oi=(e,t)=>{typeof localStorage<`u`&&localStorage.setItem(_i(e),JSON.stringify(t))},ki=e=>{let[t,n]=(0,y.useState)(()=>Di(e));return{overlay:t,patchOverlay:(0,y.useCallback)((t,r,i)=>{n(n=>{let a=Ci(n,t,r,i,Date.now());return Oi(e,a),a})},[e]),revertOverlayEntry:(0,y.useCallback)(t=>{n(n=>{let r=wi(n,t);return Oi(e,r),r})},[e])}},Ai=e=>{let t=e.split(`/`).filter(e=>e.length>0);if(t.length<2||t[0]!==`projects`)return null;let n=t[1];return n.length===0?null:n},ji=()=>{let[e,t]=(0,y.useState)(()=>Ai(typeof window>`u`?``:window.location.pathname));return(0,y.useEffect)(()=>{let e=()=>{t(Ai(window.location.pathname))};return window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`popstate`,e)}},[]),e},Mi=(e,t)=>JSON.stringify(e)===JSON.stringify(t),Ni=(e,t)=>{let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g]=(0,y.useState)(null),[_,v]=(0,y.useState)(!0),[b,x]=(0,y.useState)(null),S=(0,y.useRef)({pjcodes:n,projectUrls:i,fleetTaskCreateUrl:o,nameWithOwnerByPjcode:c,disabledPjcodes:u,workflowStoryEntries:f,workflowAgentOptions:m,actionableCounts:g});return(0,y.useEffect)(()=>{let e=!1;return v(!0),x(null),Ln().then(t=>{e||(S.current={pjcodes:t.pjcodes,projectUrls:t.projectUrls,fleetTaskCreateUrl:t.fleetTaskCreateUrl,nameWithOwnerByPjcode:t.nameWithOwnerByPjcode,disabledPjcodes:t.disabledPjcodes,workflowStoryEntries:t.workflowStoryEntries,workflowAgentOptions:t.workflowAgentOptions,actionableCounts:t.actionableCounts},r(t.pjcodes),a(t.projectUrls),s(t.fleetTaskCreateUrl),l(t.nameWithOwnerByPjcode),d(t.disabledPjcodes),p(t.workflowStoryEntries),h(t.workflowAgentOptions),v(!1))}).catch(t=>{e||(x(t instanceof Error?t:Error(String(t))),v(!1))}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!e||t)return;let n=!1,i=e=>{let t=S.current;Mi(t.pjcodes,e.pjcodes)||(S.current={...S.current,pjcodes:e.pjcodes},r(e.pjcodes)),Mi(t.projectUrls,e.projectUrls)||(S.current={...S.current,projectUrls:e.projectUrls},a(e.projectUrls)),Mi(t.fleetTaskCreateUrl,e.fleetTaskCreateUrl)||(S.current={...S.current,fleetTaskCreateUrl:e.fleetTaskCreateUrl},s(e.fleetTaskCreateUrl)),Mi(t.nameWithOwnerByPjcode,e.nameWithOwnerByPjcode)||(S.current={...S.current,nameWithOwnerByPjcode:e.nameWithOwnerByPjcode},l(e.nameWithOwnerByPjcode)),Mi(t.disabledPjcodes,e.disabledPjcodes)||(S.current={...S.current,disabledPjcodes:e.disabledPjcodes},d(e.disabledPjcodes)),Mi(t.workflowStoryEntries,e.workflowStoryEntries)||(S.current={...S.current,workflowStoryEntries:e.workflowStoryEntries},p(e.workflowStoryEntries)),Mi(t.workflowAgentOptions,e.workflowAgentOptions)||(S.current={...S.current,workflowAgentOptions:e.workflowAgentOptions},h(e.workflowAgentOptions))},o=setInterval(()=>{Ln().then(e=>{n||i(e)}).catch(e=>{n||x(e instanceof Error?e:Error(String(e)))})},jr);return()=>{n=!0,clearInterval(o)}},[e,t]),{pjcodes:n,projectUrls:i,fleetTaskCreateUrl:o,nameWithOwnerByPjcode:c,disabledPjcodes:u,workflowStoryEntries:f,workflowAgentOptions:m,actionableCounts:g,isLoading:_,error:b}},Pi=e=>(0,y.useCallback)(t=>{$n(),e(t)},[e]),Fi=()=>typeof window<`u`&&window.location.hash===`#settings`,Ii=e=>{let[t,n]=(0,y.useState)(Fi),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)({}),d=(0,y.useRef)(``),f=(0,y.useRef)(e);f.current=e,(0,y.useEffect)(()=>{if(!t)return;let e=!1;return u({}),i(!0),c(null),Promise.all(f.current.map(e=>zn(e).then(t=>({pjcode:e,value:t.maximumPreparingIssuesCount===null?``:String(t.maximumPreparingIssuesCount)})))).then(t=>{if(!e){let e={};for(let{pjcode:n,value:r}of t)e[n]=r;u(e)}}).catch(t=>{e||c(t instanceof Error?t.message:`Failed to load settings`)}).finally(()=>{e||i(!1)}),()=>{e=!0}},[t]),(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{let e=window.location.hash===ai;e||c(null),n(e)};return window.addEventListener(`popstate`,e),window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`popstate`,e),window.removeEventListener(`hashchange`,e)}},[]);let p=(0,y.useCallback)(()=>{typeof window<`u`&&(d.current=window.location.hash,window.history.pushState({},``,ai)),n(!0)},[]),m=(0,y.useCallback)(()=>{if(typeof window<`u`){let e=d.current,t=`${window.location.pathname}${window.location.search}${e}`;window.history.replaceState({},``,t)}n(!1),c(null)},[]),h=(0,y.useCallback)((e,t)=>{u(n=>({...n,[e]:t}))},[]),g=(0,y.useCallback)(async()=>{o(!0),c(null);try{if(await Promise.all(Object.entries(l).filter(([,e])=>{let t=parseInt(e,10);return!Number.isNaN(t)&&t>=0}).map(([e,t])=>Yn({pjcode:e,maximumPreparingIssuesCount:parseInt(t,10)}))),typeof window<`u`){let e=d.current,t=`${window.location.pathname}${window.location.search}${e}`;window.history.replaceState({},``,t)}n(!1)}catch(e){c(e instanceof Error?e.message:`Failed to save settings`)}finally{o(!1)}},[l]);return(0,y.useEffect)(()=>{if(!t)return;let e=e=>{e.key===`Escape`&&m()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t,m]),{isOpen:t,isLoading:r,isSaving:a,error:s,inputValues:l,open:p,close:m,changeInput:h,save:g}},Li=e=>{let t=(0,y.useRef)(e),n=(0,y.useRef)(Date.now());return t.current!==e&&(t.current=e,n.current=Date.now()),{isTimerExpired:(0,y.useCallback)(e=>e<=0?!1:Date.now()-n.current>=e*60*1e3,[])}},Ri=/##\s+(?:エグゼクティブサマリ(?:\s*\/\s*Executive\s+Summary)?|Executive\s+Summary)\s*\n/i,zi=/^From:\s+:robot:/m,Bi=/^##\s/m,Vi=e=>{let t=Ri.exec(e);if(t===null)return null;let n=e.slice(t.index+t[0].length),r=zi.exec(n),i=Bi.exec(n),a=n.length;r!==null&&(a=Math.min(a,r.index)),i!==null&&(a=Math.min(a,i.index));let o=n.slice(0,a).trim();return o.length>0?o:null},Hi=e=>{if(e.length===0)return null;let t=e[e.length-1],n=Vi(t.body);if(n!==null)return n;let r=t.body.trim();return r.length>0?r:null},Ui=e=>`${e.repo}#${e.number}`,Wi=(e,t,n)=>{let[r,i]=(0,y.useState)({});return(0,y.useEffect)(()=>{if(!n)return;let r=!1;for(let n of e){let e=Ui(n),a=t.peek(e);if(a!==void 0){let e=Hi(a);r||i(t=>t[n.projectItemId]===e?t:{...t,[n.projectItemId]:e});continue}t.load(e,n.url).then(e=>{if(r)return;let t=Hi(e);i(e=>e[n.projectItemId]===t?e:{...e,[n.projectItemId]:t})}).catch(()=>{r||i(e=>e[n.projectItemId]===null?e:{...e,[n.projectItemId]:null})})}return()=>{r=!0}},[e,t,n]),r},Gi=(e,t)=>{let n=Math.abs(e);return n<60||n<=Math.abs(t)*1.5?null:e<0?`next`:`previous`},Ki=(e,t)=>{let n=Math.abs(e),r=Math.abs(t);return r>n*1.5&&r>20},qi=(e,t,n,r)=>e===`previous`?t<=0:t>=n-r,Ji=e=>{let t=e instanceof Element?e:null;for(;t!==null&&t!==document.body;){let e=window.getComputedStyle(t).overflowX;if((e===`auto`||e===`scroll`)&&t.scrollWidth>t.clientWidth)return{scrollLeft:t.scrollLeft,scrollWidth:t.scrollWidth,clientWidth:t.clientWidth};t=t.parentElement}return null},Yi=e=>{let t=(0,y.useRef)(e);t.current=e;let n=(0,y.useRef)(null),r=(0,y.useCallback)(e=>{let n=0,r=0,i=!1,a=null,o=e=>{if(e.touches.length!==1){i=!1;return}a=Ji(e.target);let t=e.touches[0];n=t.clientX,r=t.clientY,i=!0},s=e=>{if(!i)return;let t=e.touches[0];Ki(t.clientX-n,t.clientY-r)&&(i=!1)},c=e=>{if(!i||(i=!1,e.changedTouches.length!==1))return;let o=e.changedTouches[0],s=Gi(o.clientX-n,o.clientY-r);s!==null&&(a===null||qi(s,a.scrollLeft,a.scrollWidth,a.clientWidth))&&t.current(s)};return e.addEventListener(`touchstart`,o,{passive:!0}),e.addEventListener(`touchmove`,s,{passive:!0}),e.addEventListener(`touchend`,c,{passive:!0}),()=>{e.removeEventListener(`touchstart`,o),e.removeEventListener(`touchmove`,s),e.removeEventListener(`touchend`,c)}},[]),i=(0,y.useCallback)(e=>{n.current!==null&&(n.current(),n.current=null),e!==null&&(n.current=r(e))},[r]);return(0,y.useEffect)(()=>()=>{n.current!==null&&(n.current(),n.current=null)},[]),i},Xi=e=>(0,y.useCallback)(t=>{$n(),e(t)},[e]),Zi=(e,t,n,r,i)=>{let a=(0,y.useRef)(void 0),o=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(!e){a.current=t,o.current=!1;return}a.current!==t&&(a.current=t,o.current=t!==null),o.current&&r===null&&n.length!==0&&(o.current=!1,i(n[0].projectItemId))},[e,t,n,r,i])},Qi=()=>{let[e,t]=(0,y.useState)(ce),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(e),o=(0,y.useCallback)(()=>{t(e=>(a(e),e)),r(!0)},[]),s=(0,y.useCallback)(()=>{r(!1)},[]),c=(0,y.useCallback)(()=>{a(e=>(le(e),t(e),e)),r(!1)},[]),l=(0,y.useCallback)(e=>{a(t=>({...t,timerMode:e}))},[]),u=(0,y.useCallback)((e,t)=>{a(n=>({...n,projectMinutes:{...n.projectMinutes,[e]:t}}))},[]);return{timerMode:e.timerMode,projectMinutes:e.projectMinutes,isOpen:n,draftTimerMode:i.timerMode,draftProjectMinutes:i.projectMinutes,openSettings:o,closeSettings:s,saveSettings:c,toggleDraftTimerMode:l,changeDraftMinutes:u}},$i=`console-comment-drafts`,ea=()=>{try{let e=localStorage.getItem($i);if(e===null)return new Map;let t=JSON.parse(e);return Array.isArray(t)?new Map(t.filter(e=>Array.isArray(e)&&e.length===2&&typeof e[0]==`string`&&typeof e[1]==`string`)):new Map}catch(e){return console.error(`Failed to load comment drafts from storage:`,e),new Map}},ta=e=>{try{localStorage.setItem($i,JSON.stringify([...e]))}catch(e){console.error(`Failed to save comment drafts to storage:`,e)}},na=(e,t)=>{let n=e.indexOf(t);if(n<0)return e.length>0?e[0]:null;let r=n+1;return r<e.length?e[r]:null},ra=(e,t)=>{let n=e.indexOf(t);return n<0||n>=e.length-1?null:e[n+1]},V=(e,t)=>{let n=e.indexOf(t);return n<=0?null:e[n-1]},ia=(e,t)=>e.length===0?`${t}\n`:e.endsWith(`
17
17
  `)?`${e}${t}\n`:`${e}\n${t}\n`,aa=(e,t)=>{let n=`![uploading ${t}]()`;return`${e.length===0?``:e.replace(/\n*$/,`
18
18
  `)}\n\n\n${n}\n`},oa=(e,t,n)=>{let r=`![uploading ${t}]()`,i=e.indexOf(r);return i===-1?ia(e,n):e.slice(0,i)+n+e.slice(i+r.length)},sa=(e,t)=>{let n=`![uploading ${t}]()`,r=e.indexOf(n);if(r===-1)return e;let i=r,a=0;for(;a<3&&i>0&&e[i-1]===`
19
19
  `;)i--,a++;let o=+(e[r+n.length]===`
20
- `),s=r+n.length+o;return e.slice(0,i)+e.slice(s)},ca=({initiallyOpen:e,initialDraft:t,onSubmit:n,onDraftChange:r,onSubmitAndMoveToAwaitingWorkspace:i,onOkAndAwaitingWorkspace:a,onUploadFile:o,onOpenChange:s})=>{let[c,l]=(0,y.useState)(e),[u,d]=(0,y.useState)(t??``);(0,y.useEffect)(()=>{r?.(u)},[u,r]);let[f,p]=(0,y.useState)({kind:`idle`}),[m,h]=(0,y.useState)({kind:`idle`}),g=(0,y.useRef)(null),_=(0,y.useRef)(null),v=(0,y.useRef)(null);(0,y.useLayoutEffect)(()=>{v.current!==null&&_.current!==null&&(_.current.setSelectionRange(v.current.start,v.current.end),v.current=null)});let b=()=>{_.current!==null&&(v.current={start:_.current.selectionStart,end:_.current.selectionEnd})},S=async e=>{let t=u.trim();if(t.length!==0&&f.kind!==`posting`&&m.kind!==`uploading`){p({kind:`posting`});try{e===`move`&&i!==void 0?await i(t):await n(t),d(``),p({kind:`idle`})}catch(e){p({kind:`error`,message:e instanceof Error?e.message:`failed to post`})}}},ee=async e=>{if(o!==void 0&&e.length!==0)for(let t of e){b(),d(e=>aa(e,t.name)),h({kind:`uploading`,fileName:t.name});try{let e=await o(t);b(),d(n=>oa(n,t.name,e)),h({kind:`idle`})}catch(e){b(),d(e=>sa(e,t.name)),h({kind:`error`,message:e instanceof Error?e.message:`failed to upload file`});return}}},C=u.trim().length===0;return(0,x.jsxs)(`div`,{className:`console-composer`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-composer-toggle`,"aria-expanded":c,onClick:()=>{l(e=>{let t=!e;return s?.(t),t})},children:c?`✕ Close`:`💬 Add a comment`}),c&&(0,x.jsxs)(`div`,{className:`console-composer-form`,children:[(0,x.jsx)(`textarea`,{ref:_,className:`console-composer-input`,rows:3,placeholder:`Leave a comment…`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{let t=e.currentTarget,n=I({key:e.key,isComposing:e.nativeEvent.isComposing,keyCode:e.keyCode,which:e.which},t.value,t.selectionStart,t.selectionEnd);n.shouldApply&&(e.preventDefault(),v.current={start:n.cursorPosition,end:n.cursorPosition},d(n.value))},onDragOver:e=>{o!==void 0&&e.preventDefault()},onDrop:e=>{o!==void 0&&(e.preventDefault(),ee(Array.from(e.dataTransfer.files)))},onPaste:e=>{if(o===void 0)return;let t=Array.from(e.clipboardData.files);t.length!==0&&(e.preventDefault(),ee(t))}}),o!==void 0&&(0,x.jsxs)(`div`,{className:`console-composer-attach`,children:[(0,x.jsx)(`input`,{ref:g,type:`file`,multiple:!0,className:`console-composer-file-input`,"aria-label":`Attach files`,onChange:e=>{let t=Array.from(e.target.files??[]);e.target.value=``,ee(t)}}),(0,x.jsx)(`button`,{type:`button`,className:`console-composer-attach-button`,disabled:m.kind===`uploading`,onClick:()=>g.current?.click(),children:`📎 Attach files`}),m.kind===`uploading`&&(0,x.jsxs)(`span`,{className:`console-composer-status`,children:[`Uploading `,m.fileName,`…`]}),m.kind===`error`&&(0,x.jsxs)(`span`,{role:`alert`,className:`console-composer-status console-composer-error`,children:[`Upload failed: `,m.message]})]}),(0,x.jsxs)(`div`,{className:`console-composer-row`,children:[f.kind===`posting`&&(0,x.jsx)(`span`,{className:`console-composer-status`,children:`Posting…`}),f.kind===`error`&&(0,x.jsxs)(`span`,{role:`alert`,className:`console-composer-status console-composer-error`,children:[`Failed: `,f.message]}),(0,x.jsx)(`button`,{type:`button`,className:`console-composer-submit`,disabled:f.kind===`posting`||C||m.kind===`uploading`,onClick:()=>{S(`comment`)},children:`Comment`}),a!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-composer-submit`,disabled:f.kind===`posting`,onClick:a,children:`ok & Awaiting Workspace`}),i!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-composer-submit`,disabled:f.kind===`posting`||C||m.kind===`uploading`,onClick:()=>{S(`move`)},children:`Comment & Awaiting Workspace`})]})]})]})},la=/^https:\/\/github\.com\/([^/\s]+)\/([^/\s]+)\/(issues|pull)\/(\d+)(?:[#?].*)?$/,ua=e=>{let t=la.exec(e.trim());if(t===null)return null;let[,n,r,i,a]=t,o=Number.parseInt(a,10);return Number.isFinite(o)?{owner:n,repo:r,number:o,kind:i===`pull`?`pull`:`issue`}:null},da=e=>{let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=e.slice(t+1);return n===``||r===``||r.includes(`/`)?null:{owner:n,repo:r}},fa=e=>({isPr:e.isPullRequest,state:e.state.toLowerCase(),merged:e.merged,isDraft:!1,stateReason:``}),pa=/^https:\/\/github\.com\/user-attachments\/|^https:\/\/[a-z0-9][a-z0-9.-]*\.githubusercontent\.com\//,ma=e=>pa.test(e),ha=(e,t)=>`/api/img?url=${encodeURIComponent(e)}&itemUrl=${encodeURIComponent(t)}`,ga=(e,t)=>{if(typeof document>`u`)return e;let n=document.createElement(`template`);n.innerHTML=e;let r=n.content.querySelectorAll(`img[src]`),i=!1;return r.forEach(e=>{let n=e.getAttribute(`src`)??``;ma(n)&&(e.setAttribute(`src`,t(n)),i=!0)}),i?n.innerHTML:e};function _a(e,t){this.v=e,this.k=t}function va(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ya(e){if(Array.isArray(e))return e}function ba(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function xa(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
20
+ `),s=r+n.length+o;return e.slice(0,i)+e.slice(s)},ca=({initiallyOpen:e,initialDraft:t,onSubmit:n,onDraftChange:r,onSubmitAndMoveToAwaitingWorkspace:i,onOkAndAwaitingWorkspace:a,onUploadFile:o,onOpenChange:s})=>{let[c,l]=(0,y.useState)(e),[u,d]=(0,y.useState)(t??``);(0,y.useEffect)(()=>{r?.(u)},[u,r]);let[f,p]=(0,y.useState)({kind:`idle`}),[m,h]=(0,y.useState)({kind:`idle`}),g=(0,y.useRef)(null),_=(0,y.useRef)(null),v=(0,y.useRef)(null);(0,y.useLayoutEffect)(()=>{v.current!==null&&_.current!==null&&(_.current.setSelectionRange(v.current.start,v.current.end),v.current=null)});let b=()=>{_.current!==null&&(v.current={start:_.current.selectionStart,end:_.current.selectionEnd})},S=async e=>{let t=u.trim();if(t.length!==0&&f.kind!==`posting`&&m.kind!==`uploading`){p({kind:`posting`});try{e===`move`&&i!==void 0?await i(t):await n(t),d(``),p({kind:`idle`})}catch(e){p({kind:`error`,message:e instanceof Error?e.message:`failed to post`})}}},ee=async e=>{if(o!==void 0&&e.length!==0)for(let t of e){b(),d(e=>aa(e,t.name)),h({kind:`uploading`,fileName:t.name});try{let e=await o(t);b(),d(n=>oa(n,t.name,e)),h({kind:`idle`})}catch(e){b(),d(e=>sa(e,t.name)),h({kind:`error`,message:e instanceof Error?e.message:`failed to upload file`});return}}},C=u.trim().length===0;return(0,x.jsxs)(`div`,{className:`console-composer`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-composer-toggle`,"aria-expanded":c,onClick:()=>{l(e=>{let t=!e;return s?.(t),t})},children:c?`✕ Close`:`💬 Add a comment`}),c&&(0,x.jsxs)(`div`,{className:`console-composer-form`,children:[(0,x.jsx)(`textarea`,{ref:_,className:`console-composer-input`,rows:3,placeholder:`Leave a comment…`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{let t=e.currentTarget,n=I({key:e.key,isComposing:e.nativeEvent.isComposing,keyCode:e.keyCode,which:e.which},t.value,t.selectionStart,t.selectionEnd);n.shouldApply&&(e.preventDefault(),v.current={start:n.cursorPosition,end:n.cursorPosition},d(n.value))},onDragOver:e=>{o!==void 0&&e.preventDefault()},onDrop:e=>{o!==void 0&&(e.preventDefault(),ee(Array.from(e.dataTransfer.files)))},onPaste:e=>{if(o===void 0)return;let t=Array.from(e.clipboardData.files);t.length!==0&&(e.preventDefault(),ee(t))}}),o!==void 0&&(0,x.jsxs)(`div`,{className:`console-composer-attach`,children:[(0,x.jsx)(`input`,{ref:g,type:`file`,multiple:!0,className:`console-composer-file-input`,"aria-label":`Attach files`,onChange:e=>{let t=Array.from(e.target.files??[]);e.target.value=``,ee(t)}}),(0,x.jsx)(`button`,{type:`button`,className:`console-composer-attach-button`,disabled:m.kind===`uploading`,onClick:()=>g.current?.click(),children:`📎 Attach files`}),m.kind===`uploading`&&(0,x.jsxs)(`span`,{className:`console-composer-status`,children:[`Uploading `,m.fileName,`…`]}),m.kind===`error`&&(0,x.jsxs)(`span`,{role:`alert`,className:`console-composer-status console-composer-error`,children:[`Upload failed: `,m.message]})]}),(0,x.jsxs)(`div`,{className:`console-composer-row`,children:[f.kind===`posting`&&(0,x.jsx)(`span`,{className:`console-composer-status`,children:`Posting…`}),f.kind===`error`&&(0,x.jsxs)(`span`,{role:`alert`,className:`console-composer-status console-composer-error`,children:[`Failed: `,f.message]}),(0,x.jsx)(`button`,{type:`button`,className:`console-composer-submit`,disabled:f.kind===`posting`||C||m.kind===`uploading`,onClick:()=>{S(`comment`)},children:`Comment`}),a!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-composer-submit`,disabled:f.kind===`posting`,onClick:a,children:`ok & Awaiting Workspace`}),i!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-composer-submit`,disabled:f.kind===`posting`||C||m.kind===`uploading`,onClick:()=>{S(`move`)},children:`Comment & Awaiting Workspace`})]})]})]})},la=/^https:\/\/github\.com\/([^/\s]+)\/([^/\s]+)\/(issues|pull)\/(\d+)(?:[#?].*)?$/,ua=e=>{let t=la.exec(e.trim());if(t===null)return null;let[,n,r,i,a]=t,o=Number.parseInt(a,10);return Number.isFinite(o)?{owner:n,repo:r,number:o,kind:i===`pull`?`pull`:`issue`}:null},da=e=>{let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=e.slice(t+1);return n===``||r===``||r.includes(`/`)?null:{owner:n,repo:r}},fa=e=>({isPr:e.isPullRequest,state:e.state.toLowerCase(),merged:e.merged,isDraft:!1,stateReason:e.stateReason}),pa=/^https:\/\/github\.com\/user-attachments\/|^https:\/\/[a-z0-9][a-z0-9.-]*\.githubusercontent\.com\//,ma=e=>pa.test(e),ha=(e,t)=>`/api/img?url=${encodeURIComponent(e)}&itemUrl=${encodeURIComponent(t)}`,ga=(e,t)=>{if(typeof document>`u`)return e;let n=document.createElement(`template`);n.innerHTML=e;let r=n.content.querySelectorAll(`img[src]`),i=!1;return r.forEach(e=>{let n=e.getAttribute(`src`)??``;ma(n)&&(e.setAttribute(`src`,t(n)),i=!0)}),i?n.innerHTML:e};function _a(e,t){this.v=e,this.k=t}function va(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ya(e){if(Array.isArray(e))return e}function ba(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function xa(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
21
21
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sa(e,t){return ya(e)||ba(e,t)||Ca(e,t)||xa()}function Ca(e,t){if(e){if(typeof e==`string`)return va(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?va(e,t):void 0}}function wa(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof _a;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`&&o.k?t:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(!!a.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}wa.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},wa.prototype.next=function(e){return this._invoke(`next`,e)},wa.prototype.throw=function(e){return this._invoke(`throw`,e)},wa.prototype.return=function(e){return this._invoke(`return`,e)};var Ta=Object.entries,Ea=Object.setPrototypeOf,Da=Object.isFrozen,Oa=Object.getPrototypeOf,ka=Object.getOwnPropertyDescriptor,H=Object.freeze,Aa=Object.seal,ja=Object.create,Ma=typeof Reflect<`u`&&Reflect,Na=Ma.apply,Pa=Ma.construct;H||=function(e){return e},Aa||=function(e){return e},Na||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Pa||=function(e){return new e(...[...arguments].slice(1))};var Fa=to(Array.prototype.forEach);Array.prototype.indexOf;var Ia=to(Array.prototype.lastIndexOf),La=to(Array.prototype.pop),Ra=to(Array.prototype.push);Array.prototype.slice;var za=to(Array.prototype.splice),Ba=Array.isArray,Va=to(String.prototype.toLowerCase),Ha=to(String.prototype.toString),Ua=to(String.prototype.match),Wa=to(String.prototype.replace),Ga=to(String.prototype.indexOf),Ka=to(String.prototype.trim),qa=to(Number.prototype.toString),Ja=to(Boolean.prototype.toString),Ya=typeof BigInt>`u`?null:to(BigInt.prototype.toString),Xa=typeof Symbol>`u`?null:to(Symbol.prototype.toString),Za=to(Object.prototype.hasOwnProperty),Qa=to(Object.prototype.toString),$a=to(RegExp.prototype.test),eo=no(TypeError);function to(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return Na(e,t,n)}}function no(e){return function(){return Pa(e,[...arguments])}}function U(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Va;if(Ea&&Ea(e,null),!Ba(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Da(t)||(t[r]=e),i=e)}e[i]=!0}return e}function ro(e){for(let t=0;t<e.length;t++)Za(e,t)||(e[t]=null);return e}function io(e){let t=ja(null);for(let r of Ta(e)){var n=Sa(r,2);let i=n[0],a=n[1];Za(e,i)&&(t[i]=Ba(a)?ro(a):a&&typeof a==`object`&&a.constructor===Object?io(a):a)}return t}function ao(e){switch(typeof e){case`string`:return e;case`number`:return qa(e);case`boolean`:return Ja(e);case`bigint`:return Ya?Ya(e):`0`;case`symbol`:return Xa?Xa(e):`Symbol()`;case`undefined`:return Qa(e);case`function`:case`object`:{if(e===null)return Qa(e);let t=e,n=oo(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Qa(e)}return Qa(e)}default:return Qa(e)}}function oo(e,t){for(;e!==null;){let n=ka(e,t);if(n){if(n.get)return to(n.get);if(typeof n.value==`function`)return to(n.value)}e=Oa(e)}function n(){return null}return n}function so(e){try{return $a(e,``),!0}catch{return!1}}var co=H(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),lo=H(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),uo=H([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),fo=H([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),po=H(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),mo=H([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),ho=H([`#text`]),go=H(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),_o=H(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),vo=H(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),yo=H([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),bo=Aa(/{{[\w\W]*|^[\w\W]*}}/g),xo=Aa(/<%[\w\W]*|^[\w\W]*%>/g),So=Aa(/\${[\w\W]*/g),Co=Aa(/^data-[\-\w.\u00B7-\uFFFF]+$/),wo=Aa(/^aria-[\-\w]+$/),To=Aa(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Eo=Aa(/^(?:\w+script|data):/i),Do=Aa(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Oo=Aa(/^html$/i),ko=Aa(/^[a-z][.\w]*(-[.\w]+)+$/i),Ao=Aa(/<[/\w!]/g),jo=Aa(/<[/\w]/g),Mo=Aa(/<\/no(script|embed|frames)/i),No=Aa(/\/>/i),Po={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Fo=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],Io=H(U({},Fo)),Lo=function(){let e={};return Fa(Fo,t=>{e[t]=Aa(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),H(e)}(),Ro=function(){return typeof window>`u`?null:window},zo=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},W=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},G=function(e,t,n,r){return Za(e,t)&&Ba(e[t])?U(r.base?io(r.base):{},e[t],r.transform):n},Bo=function(e,t,n){let r=Za(e,t)?e[t]:void 0;return r&&typeof r==`object`?io(r):n()};function Vo(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ro(),t=e=>Vo(e);if(t.version=`3.4.16`,t.removed=[],!e||!e.document||e.document.nodeType!==Po.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=oo(d,`cloneNode`),p=oo(d,`remove`),m=oo(d,`removeAttributeNode`),h=oo(d,`nextSibling`),g=oo(d,`childNodes`),_=oo(d,`parentNode`),v=oo(d,`shadowRoot`),y=oo(d,`attributes`),b=o&&o.prototype?oo(o.prototype,`nodeType`):null,x=o&&o.prototype?oo(o.prototype,`nodeName`):null,S=o&&o.prototype?oo(o.prototype,`ownerDocument`):null,ee=function(e){return b?b(e):e.nodeType},C=function(e){return x?x(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let w,T=``,E,te=!1,D=0,ne=function(){if(D>0)throw eo(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},O=function(e){ne(),D++;try{return w.createHTML(e)}finally{D--}},k=function(e){ne(),D++;try{return w.createScriptURL(e)}finally{D--}},re=function(){return te||=(E=zo(u,i),!0),E},ie=n,A=ie.implementation,j=ie.createNodeIterator,ae=ie.createDocumentFragment,oe=ie.getElementsByTagName,se=r.importNode,M=W();t.isSupported=typeof Ta==`function`&&typeof _==`function`&&A&&A.createHTMLDocument!==void 0;let N=bo,P=xo,ce=So,le=Co,F=wo,ue=Eo,de=Do,fe=ko,pe=To,I=null,L=U({},[...co,...lo,...uo,...po,...ho]),R=null,me=U({},[...go,..._o,...vo,...yo]),he=Object.seal(ja(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),z=null,ge=null,_e=Object.seal(ja(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ve=!0,ye=!0,be=!1,xe=!0,Se=!1,Ce=!0,we=!1,Te=!1,Ee=null,De=null,Oe=!1,ke=!1,Ae=!1,je=!1,Me=!0,Ne=!1,Pe=`user-content-`,Fe=!0,Ie=!1,Le={},Re=null,ze=U({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Be=null,Ve=U({},[`audio`,`video`,`img`,`source`,`image`,`track`]),He=null,Ue=U({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),We=`http://www.w3.org/1998/Math/MathML`,Ge=`http://www.w3.org/2000/svg`,Ke=`http://www.w3.org/1999/xhtml`,qe=Ke,Je=!1,Ye=null,Xe=U({},[We,Ge,Ke],Ha),Ze=H([`mi`,`mo`,`mn`,`ms`,`mtext`]),Qe=U({},Ze),$e=H([`annotation-xml`]),et=U({},$e),tt=U({},[`title`,`style`,`font`,`a`,`script`]),nt=null,rt=[`application/xhtml+xml`,`text/html`],it=null,at=null,ot=n.createElement(`form`),st=function(e){return e instanceof RegExp||e instanceof Function},ct=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(at&&at===e)return;(!e||typeof e!=`object`)&&(e={}),e=io(e),nt=rt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,it=nt===`application/xhtml+xml`?Ha:Va,I=G(e,`ALLOWED_TAGS`,L,{transform:it}),R=G(e,`ALLOWED_ATTR`,me,{transform:it}),Ye=G(e,`ALLOWED_NAMESPACES`,Xe,{transform:Ha}),He=G(e,`ADD_URI_SAFE_ATTR`,Ue,{transform:it,base:Ue}),Be=G(e,`ADD_DATA_URI_TAGS`,Ve,{transform:it,base:Ve}),Re=G(e,`FORBID_CONTENTS`,ze,{transform:it}),z=G(e,`FORBID_TAGS`,io({}),{transform:it}),ge=G(e,`FORBID_ATTR`,io({}),{transform:it}),Le=Za(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?io(e.USE_PROFILES):e.USE_PROFILES:!1,ve=e.ALLOW_ARIA_ATTR!==!1,ye=e.ALLOW_DATA_ATTR!==!1,be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Se=e.SAFE_FOR_TEMPLATES||!1,Ce=e.SAFE_FOR_XML!==!1,we=e.WHOLE_DOCUMENT||!1,ke=e.RETURN_DOM||!1,Ae=e.RETURN_DOM_FRAGMENT||!1,je=e.RETURN_TRUSTED_TYPE||!1,Oe=e.FORCE_BODY||!1,Me=e.SANITIZE_DOM!==!1,Ne=e.SANITIZE_NAMED_PROPS||!1,Fe=e.KEEP_CONTENT!==!1,Ie=e.IN_PLACE||!1,pe=so(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:To,qe=typeof e.NAMESPACE==`string`?e.NAMESPACE:Ke,Qe=Bo(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>U({},Ze)),et=Bo(e,`HTML_INTEGRATION_POINTS`,()=>U({},$e));let t=Bo(e,`CUSTOM_ELEMENT_HANDLING`,()=>ja(null));if(he=ja(null),Za(t,`tagNameCheck`)&&st(t.tagNameCheck)&&(he.tagNameCheck=t.tagNameCheck),Za(t,`attributeNameCheck`)&&st(t.attributeNameCheck)&&(he.attributeNameCheck=t.attributeNameCheck),Za(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(he.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),Aa(he),Se&&(ye=!1),Ae&&(ke=!0),Le&&(I=U({},ho),R=ja(null),Le.html===!0&&(U(I,co),U(R,go)),Le.svg===!0&&(U(I,lo),U(R,_o),U(R,yo)),Le.svgFilters===!0&&(U(I,uo),U(R,_o),U(R,yo)),Le.mathMl===!0&&(U(I,po),U(R,vo),U(R,yo))),_e.tagCheck=null,_e.attributeCheck=null,Za(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?_e.tagCheck=e.ADD_TAGS:Ba(e.ADD_TAGS)&&(I===L&&(I=io(I)),U(I,e.ADD_TAGS,it))),Za(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?_e.attributeCheck=e.ADD_ATTR:Ba(e.ADD_ATTR)&&(R===me&&(R=io(R)),U(R,e.ADD_ATTR,it))),Za(e,`ADD_FORBID_CONTENTS`)&&Ba(e.ADD_FORBID_CONTENTS)&&(Re===ze&&(Re=io(Re)),U(Re,e.ADD_FORBID_CONTENTS,it)),Fe&&(I[`#text`]=!0),we&&U(I,[`html`,`head`,`body`]),I.table&&(U(I,[`tbody`]),delete z.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw eo(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw eo(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=w;w=e.TRUSTED_TYPES_POLICY;try{T=O(``)}catch(e){throw w=t,e}}else e.TRUSTED_TYPES_POLICY===null?(w=void 0,T=``):(w===void 0&&(w=re()),w&&typeof T==`string`&&(T=O(``)));H&&H(e),at=e},lt=U({},[...lo,...uo,...fo]),ut=U({},[...po,...mo]),dt=function(e,t,n){return t.namespaceURI===Ke?e===`svg`:t.namespaceURI===We?e===`svg`&&(n===`annotation-xml`||Qe[n]):!!lt[e]},ft=function(e,t,n){return t.namespaceURI===Ke?e===`math`:t.namespaceURI===Ge?e===`math`&&et[n]:!!ut[e]},pt=function(e,t,n){return t.namespaceURI===Ge&&!et[n]||t.namespaceURI===We&&!Qe[n]?!1:!ut[e]&&(tt[e]||!lt[e])},mt=function(e){let t=_(e);(!t||!t.tagName)&&(t={namespaceURI:qe,tagName:`template`});let n=Va(e.tagName),r=Va(t.tagName);return Ye[e.namespaceURI]?e.namespaceURI===Ge?dt(n,t,r):e.namespaceURI===We?ft(n,t,r):e.namespaceURI===Ke?pt(n,t,r):!!(nt===`application/xhtml+xml`&&Ye[e.namespaceURI]):!1},ht=function(e){Ra(t.removed,{element:e});try{_(e).removeChild(e)}catch{if(p(e),!_(e))throw eo(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},gt=function(e,t,n){try{m(e,t)}catch{try{e.removeAttribute(n)}catch{}}},_t=function(e){bt(e);let t=g(e);if(t){let e=[];Fa(t,t=>{Ra(e,t)}),Fa(e,e=>{try{p(e)}catch{}})}let n=y(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&gt(e,r,i)}},vt=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}Ra(t.removed,{attribute:r||null,from:n});try{r?m(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(ke||Ae)try{ht(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},yt=function(e){let t=y(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||R[it(i)]||gt(e,r,i)}},bt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();ee(e)===Po.element&&yt(e);let n=g(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},xt=function(e,t){return Ce?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},St=function(e){if(!Ce)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=ee(e);if(n===Po.processingInstruction||n===Po.comment&&$a(jo,e.data)){try{p(e)}catch{}continue}if(n===Po.element){let t=e,n=it(C(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&xt(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=g(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},Ct=function(e){let t=null,r=null;if(Oe)e=`<remove></remove>`+e;else{let t=Ua(e,/^[\r\n\t ]+/);r=t&&t[0]}nt===`application/xhtml+xml`&&qe===Ke&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=w?O(e):e;if(qe===Ke)try{t=new l().parseFromString(i,nt)}catch{}if(!t||!t.documentElement){t=A.createDocument(qe,`template`,null);try{t.documentElement.innerHTML=Je?T:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),qe===Ke?oe.call(t,we?`html`:`body`)[0]:we?t.documentElement:a},wt=function(e){let t=S?S(e):e.ownerDocument;return j.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Tt=function(e){return e=Wa(e,N,` `),e=Wa(e,P,` `),e=Wa(e,ce,` `),e},Et=function(e){e.normalize();let t=S?S(e):e.ownerDocument,n=j.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Tt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&Fa(i,e=>{Ot(e.content)&&Et(e.content)})},Dt=function(e){let t=x?x(e):null;return typeof t!=`string`||it(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==y(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==b(e)||e.childNodes!==g(e)},Ot=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return b(e)===Po.documentFragment}catch{return!1}},kt=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return typeof b(e)==`number`}catch{return!1}};function At(e,n,r){e.length!==0&&Fa(e,e=>{e.call(t,n,r,at)})}let jt=function(e,t){return!!(Ce&&e.hasChildNodes()&&!kt(e.firstElementChild)&&$a(Ao,e.textContent)&&$a(Ao,e.innerHTML)||Ce&&e.namespaceURI===Ke&&Io[t]&&(kt(e.firstElementChild)||typeof e.textContent==`string`&&$a(Lo[t],e.textContent))||e.nodeType===Po.processingInstruction||Ce&&e.nodeType===Po.comment&&$a(jo,e.data))},Mt=function(e,t){return e instanceof RegExp?$a(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},Nt=function(e,t,n){if(!z[t]&&Rt(t)&&Mt(he.tagNameCheck,t))return!1;if(Fe&&!Re[t]){let t=_(e),r=g(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,h(e))}}}return ht(e),!0},Pt=function(e,t,n,r){return e.length===0?t:t===n||t===r?io(t):t},B=function(e,t){return e===t||_(e)!==null?!1:(Ie&&bt(e),!0)},Ft=function(e,n){if(At(M.beforeSanitizeElements,e,null),B(e,n))return!0;if(Dt(e))return ht(e),!0;let r=it(C(e));if(I=Pt(M.uponSanitizeElement,I,L,Ee),At(M.uponSanitizeElement,e,{tagName:r,allowedTags:I}),B(e,n))return!0;if(jt(e,r))return ht(e),!0;if(z[r]||!(_e.tagCheck instanceof Function&&_e.tagCheck(r))&&!I[r]){let t=Nt(e,r,n);return t===!1&&(At(M.afterSanitizeElements,e,null),B(e,n))?!0:t}if(ee(e)===Po.element&&!mt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&$a(Mo,e.innerHTML))return ht(e),!0;if(Se&&e.nodeType===Po.text){let n=Tt(e.textContent);e.textContent!==n&&(Ra(t.removed,{element:e.cloneNode()}),e.textContent=n)}return At(M.afterSanitizeElements,e,null),B(e,n)},It=function(e,t,r){if(ge[t]||xt(t,e)||Me&&(t===`id`||t===`name`)&&(r in n||r in ot))return!1;let i=R[t]||_e.attributeCheck instanceof Function&&_e.attributeCheck(t,e);return ye&&$a(le,t)||ve&&$a(F,t)?!0:i?He[t]||$a(pe,Wa(r,de,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&Ga(r,`data:`)===0&&Be[e]||be&&!$a(ue,Wa(r,de,``))?!0:!r:Rt(e)&&Mt(he.tagNameCheck,e)&&Mt(he.attributeNameCheck,t,e)||t===`is`&&he.allowCustomizedBuiltInElements&&Mt(he.tagNameCheck,r)},Lt=U({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Rt=function(e){return!Lt[Va(e)]&&$a(fe,e)},zt=function(e,t,n,r){if(w&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return O(r);case`TrustedScriptURL`:return k(r)}return r},Bt=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Dt(e)||(ht(e),!1)}catch{return vt(t,e),!1}},Vt=function(e,n){if(At(M.beforeSanitizeAttributes,e,null),B(e,n))return;let r=e.attributes;if(!r||Dt(e))return;R=Pt(M.uponSanitizeAttribute,R,me,De);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:R,forceKeepAttr:void 0},a=r.length,o=it(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=it(s),d=l,f=s===`value`?d:Ka(d),p=!1;if(i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,At(M.uponSanitizeAttribute,e,i),f=i.attrValue,Ne&&(u===`id`||u===`name`)&&Ga(f,Pe)!==0&&(vt(s,e,n),f=Pe+f,p=!0),Ce&&$a(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,f)){vt(s,e,n);continue}if(u===`attributename`&&Ua(f,`href`)){vt(s,e,n);continue}if(!i.forceKeepAttr){if(!i.keepAttr){vt(s,e,n);continue}if(!xe&&$a(No,f)){vt(s,e,n);continue}if(Se&&(f=Tt(f)),!It(o,u,f)){vt(s,e,n);continue}f=zt(o,u,c,f),f!==d&&Bt(e,s,c,f)&&p&&La(t.removed)}}At(M.afterSanitizeAttributes,e,null),B(e,n)},Ht=function(e){let t=null,n=wt(e);for(At(M.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(At(M.uponSanitizeShadowNode,t,null),Ft(t,e),Vt(t,e),Ot(t.content)&&Ht(t.content),ee(t)===Po.element){let e=v(t);Ot(e)&&(Ut(e),Ht(e))}At(M.afterSanitizeShadowDOM,e,null)},Ut=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Ht(e.shadow);continue}let n=e.node,r=ee(n)===Po.element,i=g(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=x?x(n):null;if(typeof e==`string`&&it(e)===`template`){let e=n.content;Ot(e)&&t.push({node:e,shadow:null})}}if(r){let e=v(n);Ot(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Je=!e,Je&&(e=`<!-->`),typeof e!=`string`&&!kt(e)&&(e=ao(e),typeof e!=`string`))throw eo(`dirty is not a string, aborting`);if(!t.isSupported)return e;Te?(I=Ee,R=De):ct(n),(M.uponSanitizeElement.length>0||M.uponSanitizeAttribute.length>0)&&(I=io(I)),M.uponSanitizeAttribute.length>0&&(R=io(R)),t.removed=[];let c=Ie&&typeof e!=`string`&&kt(e);if(c){St(e);let t=C(e);if(typeof t==`string`){let n=it(t);if(!I[n]||z[n])throw _t(e),eo(`root node is forbidden and cannot be sanitized in-place`)}if(Dt(e))throw _t(e),eo(`root node is clobbered and cannot be sanitized in-place`);try{Ut(e)}catch(t){throw _t(e),t}}else if(kt(e))i=Ct(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===Po.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Ut(i);else{if(!ke&&!Se&&!we&&e.indexOf(`<`)===-1)return w&&je?O(e):e;if(i=Ct(e),!i)return ke?null:je?T:``}i&&Oe&&ht(i.firstChild);let l=c?e:i;try{let e=wt(l);for(;o=e.nextNode();)Ft(o,l),Vt(o,l),Ot(o.content)&&Ht(o.content)}catch(n){throw c&&(_t(e),Fa(t.removed,e=>{e.element&&bt(e.element)})),n}if(c){let n=!1;if(Fa(t.removed,t=>{t.element&&(t.element===e&&(n=!0),bt(t.element))}),n)throw eo(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return Se&&Et(e),e}if(ke){if(Se&&Et(i),Ae)for(s=ae.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(R.shadowroot||R.shadowrootmode)&&(s=se.call(r,s,!0)),s}let u=we?i.outerHTML:i.innerHTML;return we&&I[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&$a(Oo,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
22
22
  `+u),Se&&(u=Tt(u)),w&&je?O(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ct(e),Te=!0,Ee=I,De=R},t.clearConfig=function(){at=null,Te=!1,Ee=null,De=null,w=E,T=``},t.isValidAttribute=function(e,t,n){at||ct({});let r=it(e),i=it(t);return It(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&Za(M,e)&&Ra(M[e],t)},t.removeHook=function(e,t){if(Za(M,e)){if(t!==void 0){let n=Ia(M[e],t);return n===-1?void 0:za(M[e],n,1)[0]}return La(M[e])}},t.removeHooks=function(e){Za(M,e)&&(M[e]=[])},t.removeAllHooks=function(){M=W()},t}var Ho=Vo(),Uo={100:`💯`,1234:`🔢`,grinning:`😀`,smiley:`😃`,smile:`😄`,grin:`😁`,laughing:`😆`,satisfied:`😆`,sweat_smile:`😅`,rofl:`🤣`,joy:`😂`,slightly_smiling_face:`🙂`,upside_down_face:`🙃`,melting_face:`🫠`,wink:`😉`,blush:`😊`,innocent:`😇`,smiling_face_with_three_hearts:`🥰`,heart_eyes:`😍`,star_struck:`🤩`,kissing_heart:`😘`,kissing:`😗`,relaxed:`☺️`,kissing_closed_eyes:`😚`,kissing_smiling_eyes:`😙`,smiling_face_with_tear:`🥲`,yum:`😋`,stuck_out_tongue:`😛`,stuck_out_tongue_winking_eye:`😜`,zany_face:`🤪`,stuck_out_tongue_closed_eyes:`😝`,money_mouth_face:`🤑`,hugs:`🤗`,hand_over_mouth:`🤭`,face_with_open_eyes_and_hand_over_mouth:`🫢`,face_with_peeking_eye:`🫣`,shushing_face:`🤫`,thinking:`🤔`,saluting_face:`🫡`,zipper_mouth_face:`🤐`,raised_eyebrow:`🤨`,neutral_face:`😐`,expressionless:`😑`,no_mouth:`😶`,dotted_line_face:`🫥`,face_in_clouds:`😶‍🌫️`,smirk:`😏`,unamused:`😒`,roll_eyes:`🙄`,grimacing:`😬`,face_exhaling:`😮‍💨`,lying_face:`🤥`,shaking_face:`🫨`,relieved:`😌`,pensive:`😔`,sleepy:`😪`,drooling_face:`🤤`,sleeping:`😴`,mask:`😷`,face_with_thermometer:`🤒`,face_with_head_bandage:`🤕`,nauseated_face:`🤢`,vomiting_face:`🤮`,sneezing_face:`🤧`,hot_face:`🥵`,cold_face:`🥶`,woozy_face:`🥴`,dizzy_face:`😵`,face_with_spiral_eyes:`😵‍💫`,exploding_head:`🤯`,cowboy_hat_face:`🤠`,partying_face:`🥳`,disguised_face:`🥸`,sunglasses:`😎`,nerd_face:`🤓`,monocle_face:`🧐`,confused:`😕`,face_with_diagonal_mouth:`🫤`,worried:`😟`,slightly_frowning_face:`🙁`,frowning_face:`☹️`,open_mouth:`😮`,hushed:`😯`,astonished:`😲`,flushed:`😳`,pleading_face:`🥺`,face_holding_back_tears:`🥹`,frowning:`😦`,anguished:`😧`,fearful:`😨`,cold_sweat:`😰`,disappointed_relieved:`😥`,cry:`😢`,sob:`😭`,scream:`😱`,confounded:`😖`,persevere:`😣`,disappointed:`😞`,sweat:`😓`,weary:`😩`,tired_face:`😫`,yawning_face:`🥱`,triumph:`😤`,rage:`😡`,pout:`😡`,angry:`😠`,cursing_face:`🤬`,smiling_imp:`😈`,imp:`👿`,skull:`💀`,skull_and_crossbones:`☠️`,hankey:`💩`,poop:`💩`,shit:`💩`,clown_face:`🤡`,japanese_ogre:`👹`,japanese_goblin:`👺`,ghost:`👻`,alien:`👽`,space_invader:`👾`,robot:`🤖`,smiley_cat:`😺`,smile_cat:`😸`,joy_cat:`😹`,heart_eyes_cat:`😻`,smirk_cat:`😼`,kissing_cat:`😽`,scream_cat:`🙀`,crying_cat_face:`😿`,pouting_cat:`😾`,see_no_evil:`🙈`,hear_no_evil:`🙉`,speak_no_evil:`🙊`,love_letter:`💌`,cupid:`💘`,gift_heart:`💝`,sparkling_heart:`💖`,heartpulse:`💗`,heartbeat:`💓`,revolving_hearts:`💞`,two_hearts:`💕`,heart_decoration:`💟`,heavy_heart_exclamation:`❣️`,broken_heart:`💔`,heart_on_fire:`❤️‍🔥`,mending_heart:`❤️‍🩹`,heart:`❤️`,pink_heart:`🩷`,orange_heart:`🧡`,yellow_heart:`💛`,green_heart:`💚`,blue_heart:`💙`,light_blue_heart:`🩵`,purple_heart:`💜`,brown_heart:`🤎`,black_heart:`🖤`,grey_heart:`🩶`,white_heart:`🤍`,kiss:`💋`,anger:`💢`,boom:`💥`,collision:`💥`,dizzy:`💫`,sweat_drops:`💦`,dash:`💨`,hole:`🕳️`,speech_balloon:`💬`,eye_speech_bubble:`👁️‍🗨️`,left_speech_bubble:`🗨️`,right_anger_bubble:`🗯️`,thought_balloon:`💭`,zzz:`💤`,wave:`👋`,raised_back_of_hand:`🤚`,raised_hand_with_fingers_splayed:`🖐️`,hand:`✋`,raised_hand:`✋`,vulcan_salute:`🖖`,rightwards_hand:`🫱`,leftwards_hand:`🫲`,palm_down_hand:`🫳`,palm_up_hand:`🫴`,leftwards_pushing_hand:`🫷`,rightwards_pushing_hand:`🫸`,ok_hand:`👌`,pinched_fingers:`🤌`,pinching_hand:`🤏`,v:`✌️`,crossed_fingers:`🤞`,hand_with_index_finger_and_thumb_crossed:`🫰`,love_you_gesture:`🤟`,metal:`🤘`,call_me_hand:`🤙`,point_left:`👈`,point_right:`👉`,point_up_2:`👆`,middle_finger:`🖕`,fu:`🖕`,point_down:`👇`,point_up:`☝️`,index_pointing_at_the_viewer:`🫵`,"+1":`👍`,thumbsup:`👍`,"-1":`👎`,thumbsdown:`👎`,fist_raised:`✊`,fist:`✊`,fist_oncoming:`👊`,facepunch:`👊`,punch:`👊`,fist_left:`🤛`,fist_right:`🤜`,clap:`👏`,raised_hands:`🙌`,heart_hands:`🫶`,open_hands:`👐`,palms_up_together:`🤲`,handshake:`🤝`,pray:`🙏`,writing_hand:`✍️`,nail_care:`💅`,selfie:`🤳`,muscle:`💪`,mechanical_arm:`🦾`,mechanical_leg:`🦿`,leg:`🦵`,foot:`🦶`,ear:`👂`,ear_with_hearing_aid:`🦻`,nose:`👃`,brain:`🧠`,anatomical_heart:`🫀`,lungs:`🫁`,tooth:`🦷`,bone:`🦴`,eyes:`👀`,eye:`👁️`,tongue:`👅`,lips:`👄`,biting_lip:`🫦`,baby:`👶`,child:`🧒`,boy:`👦`,girl:`👧`,adult:`🧑`,blond_haired_person:`👱`,man:`👨`,bearded_person:`🧔`,man_beard:`🧔‍♂️`,woman_beard:`🧔‍♀️`,red_haired_man:`👨‍🦰`,curly_haired_man:`👨‍🦱`,white_haired_man:`👨‍🦳`,bald_man:`👨‍🦲`,woman:`👩`,red_haired_woman:`👩‍🦰`,person_red_hair:`🧑‍🦰`,curly_haired_woman:`👩‍🦱`,person_curly_hair:`🧑‍🦱`,white_haired_woman:`👩‍🦳`,person_white_hair:`🧑‍🦳`,bald_woman:`👩‍🦲`,person_bald:`🧑‍🦲`,blond_haired_woman:`👱‍♀️`,blonde_woman:`👱‍♀️`,blond_haired_man:`👱‍♂️`,older_adult:`🧓`,older_man:`👴`,older_woman:`👵`,frowning_person:`🙍`,frowning_man:`🙍‍♂️`,frowning_woman:`🙍‍♀️`,pouting_face:`🙎`,pouting_man:`🙎‍♂️`,pouting_woman:`🙎‍♀️`,no_good:`🙅`,no_good_man:`🙅‍♂️`,ng_man:`🙅‍♂️`,no_good_woman:`🙅‍♀️`,ng_woman:`🙅‍♀️`,ok_person:`🙆`,ok_man:`🙆‍♂️`,ok_woman:`🙆‍♀️`,tipping_hand_person:`💁`,information_desk_person:`💁`,tipping_hand_man:`💁‍♂️`,sassy_man:`💁‍♂️`,tipping_hand_woman:`💁‍♀️`,sassy_woman:`💁‍♀️`,raising_hand:`🙋`,raising_hand_man:`🙋‍♂️`,raising_hand_woman:`🙋‍♀️`,deaf_person:`🧏`,deaf_man:`🧏‍♂️`,deaf_woman:`🧏‍♀️`,bow:`🙇`,bowing_man:`🙇‍♂️`,bowing_woman:`🙇‍♀️`,facepalm:`🤦`,man_facepalming:`🤦‍♂️`,woman_facepalming:`🤦‍♀️`,shrug:`🤷`,man_shrugging:`🤷‍♂️`,woman_shrugging:`🤷‍♀️`,health_worker:`🧑‍⚕️`,man_health_worker:`👨‍⚕️`,woman_health_worker:`👩‍⚕️`,student:`🧑‍🎓`,man_student:`👨‍🎓`,woman_student:`👩‍🎓`,teacher:`🧑‍🏫`,man_teacher:`👨‍🏫`,woman_teacher:`👩‍🏫`,judge:`🧑‍⚖️`,man_judge:`👨‍⚖️`,woman_judge:`👩‍⚖️`,farmer:`🧑‍🌾`,man_farmer:`👨‍🌾`,woman_farmer:`👩‍🌾`,cook:`🧑‍🍳`,man_cook:`👨‍🍳`,woman_cook:`👩‍🍳`,mechanic:`🧑‍🔧`,man_mechanic:`👨‍🔧`,woman_mechanic:`👩‍🔧`,factory_worker:`🧑‍🏭`,man_factory_worker:`👨‍🏭`,woman_factory_worker:`👩‍🏭`,office_worker:`🧑‍💼`,man_office_worker:`👨‍💼`,woman_office_worker:`👩‍💼`,scientist:`🧑‍🔬`,man_scientist:`👨‍🔬`,woman_scientist:`👩‍🔬`,technologist:`🧑‍💻`,man_technologist:`👨‍💻`,woman_technologist:`👩‍💻`,singer:`🧑‍🎤`,man_singer:`👨‍🎤`,woman_singer:`👩‍🎤`,artist:`🧑‍🎨`,man_artist:`👨‍🎨`,woman_artist:`👩‍🎨`,pilot:`🧑‍✈️`,man_pilot:`👨‍✈️`,woman_pilot:`👩‍✈️`,astronaut:`🧑‍🚀`,man_astronaut:`👨‍🚀`,woman_astronaut:`👩‍🚀`,firefighter:`🧑‍🚒`,man_firefighter:`👨‍🚒`,woman_firefighter:`👩‍🚒`,police_officer:`👮`,cop:`👮`,policeman:`👮‍♂️`,policewoman:`👮‍♀️`,detective:`🕵️`,male_detective:`🕵️‍♂️`,female_detective:`🕵️‍♀️`,guard:`💂`,guardsman:`💂‍♂️`,guardswoman:`💂‍♀️`,ninja:`🥷`,construction_worker:`👷`,construction_worker_man:`👷‍♂️`,construction_worker_woman:`👷‍♀️`,person_with_crown:`🫅`,prince:`🤴`,princess:`👸`,person_with_turban:`👳`,man_with_turban:`👳‍♂️`,woman_with_turban:`👳‍♀️`,man_with_gua_pi_mao:`👲`,woman_with_headscarf:`🧕`,person_in_tuxedo:`🤵`,man_in_tuxedo:`🤵‍♂️`,woman_in_tuxedo:`🤵‍♀️`,person_with_veil:`👰`,man_with_veil:`👰‍♂️`,woman_with_veil:`👰‍♀️`,bride_with_veil:`👰‍♀️`,pregnant_woman:`🤰`,pregnant_man:`🫃`,pregnant_person:`🫄`,breast_feeding:`🤱`,woman_feeding_baby:`👩‍🍼`,man_feeding_baby:`👨‍🍼`,person_feeding_baby:`🧑‍🍼`,angel:`👼`,santa:`🎅`,mrs_claus:`🤶`,mx_claus:`🧑‍🎄`,superhero:`🦸`,superhero_man:`🦸‍♂️`,superhero_woman:`🦸‍♀️`,supervillain:`🦹`,supervillain_man:`🦹‍♂️`,supervillain_woman:`🦹‍♀️`,mage:`🧙`,mage_man:`🧙‍♂️`,mage_woman:`🧙‍♀️`,fairy:`🧚`,fairy_man:`🧚‍♂️`,fairy_woman:`🧚‍♀️`,vampire:`🧛`,vampire_man:`🧛‍♂️`,vampire_woman:`🧛‍♀️`,merperson:`🧜`,merman:`🧜‍♂️`,mermaid:`🧜‍♀️`,elf:`🧝`,elf_man:`🧝‍♂️`,elf_woman:`🧝‍♀️`,genie:`🧞`,genie_man:`🧞‍♂️`,genie_woman:`🧞‍♀️`,zombie:`🧟`,zombie_man:`🧟‍♂️`,zombie_woman:`🧟‍♀️`,troll:`🧌`,massage:`💆`,massage_man:`💆‍♂️`,massage_woman:`💆‍♀️`,haircut:`💇`,haircut_man:`💇‍♂️`,haircut_woman:`💇‍♀️`,walking:`🚶`,walking_man:`🚶‍♂️`,walking_woman:`🚶‍♀️`,standing_person:`🧍`,standing_man:`🧍‍♂️`,standing_woman:`🧍‍♀️`,kneeling_person:`🧎`,kneeling_man:`🧎‍♂️`,kneeling_woman:`🧎‍♀️`,person_with_probing_cane:`🧑‍🦯`,man_with_probing_cane:`👨‍🦯`,woman_with_probing_cane:`👩‍🦯`,person_in_motorized_wheelchair:`🧑‍🦼`,man_in_motorized_wheelchair:`👨‍🦼`,woman_in_motorized_wheelchair:`👩‍🦼`,person_in_manual_wheelchair:`🧑‍🦽`,man_in_manual_wheelchair:`👨‍🦽`,woman_in_manual_wheelchair:`👩‍🦽`,runner:`🏃`,running:`🏃`,running_man:`🏃‍♂️`,running_woman:`🏃‍♀️`,woman_dancing:`💃`,dancer:`💃`,man_dancing:`🕺`,business_suit_levitating:`🕴️`,dancers:`👯`,dancing_men:`👯‍♂️`,dancing_women:`👯‍♀️`,sauna_person:`🧖`,sauna_man:`🧖‍♂️`,sauna_woman:`🧖‍♀️`,climbing:`🧗`,climbing_man:`🧗‍♂️`,climbing_woman:`🧗‍♀️`,person_fencing:`🤺`,horse_racing:`🏇`,skier:`⛷️`,snowboarder:`🏂`,golfing:`🏌️`,golfing_man:`🏌️‍♂️`,golfing_woman:`🏌️‍♀️`,surfer:`🏄`,surfing_man:`🏄‍♂️`,surfing_woman:`🏄‍♀️`,rowboat:`🚣`,rowing_man:`🚣‍♂️`,rowing_woman:`🚣‍♀️`,swimmer:`🏊`,swimming_man:`🏊‍♂️`,swimming_woman:`🏊‍♀️`,bouncing_ball_person:`⛹️`,bouncing_ball_man:`⛹️‍♂️`,basketball_man:`⛹️‍♂️`,bouncing_ball_woman:`⛹️‍♀️`,basketball_woman:`⛹️‍♀️`,weight_lifting:`🏋️`,weight_lifting_man:`🏋️‍♂️`,weight_lifting_woman:`🏋️‍♀️`,bicyclist:`🚴`,biking_man:`🚴‍♂️`,biking_woman:`🚴‍♀️`,mountain_bicyclist:`🚵`,mountain_biking_man:`🚵‍♂️`,mountain_biking_woman:`🚵‍♀️`,cartwheeling:`🤸`,man_cartwheeling:`🤸‍♂️`,woman_cartwheeling:`🤸‍♀️`,wrestling:`🤼`,men_wrestling:`🤼‍♂️`,women_wrestling:`🤼‍♀️`,water_polo:`🤽`,man_playing_water_polo:`🤽‍♂️`,woman_playing_water_polo:`🤽‍♀️`,handball_person:`🤾`,man_playing_handball:`🤾‍♂️`,woman_playing_handball:`🤾‍♀️`,juggling_person:`🤹`,man_juggling:`🤹‍♂️`,woman_juggling:`🤹‍♀️`,lotus_position:`🧘`,lotus_position_man:`🧘‍♂️`,lotus_position_woman:`🧘‍♀️`,bath:`🛀`,sleeping_bed:`🛌`,people_holding_hands:`🧑‍🤝‍🧑`,two_women_holding_hands:`👭`,couple:`👫`,two_men_holding_hands:`👬`,couplekiss:`💏`,couplekiss_man_woman:`👩‍❤️‍💋‍👨`,couplekiss_man_man:`👨‍❤️‍💋‍👨`,couplekiss_woman_woman:`👩‍❤️‍💋‍👩`,couple_with_heart:`💑`,couple_with_heart_woman_man:`👩‍❤️‍👨`,couple_with_heart_man_man:`👨‍❤️‍👨`,couple_with_heart_woman_woman:`👩‍❤️‍👩`,family:`👪`,family_man_woman_boy:`👨‍👩‍👦`,family_man_woman_girl:`👨‍👩‍👧`,family_man_woman_girl_boy:`👨‍👩‍👧‍👦`,family_man_woman_boy_boy:`👨‍👩‍👦‍👦`,family_man_woman_girl_girl:`👨‍👩‍👧‍👧`,family_man_man_boy:`👨‍👨‍👦`,family_man_man_girl:`👨‍👨‍👧`,family_man_man_girl_boy:`👨‍👨‍👧‍👦`,family_man_man_boy_boy:`👨‍👨‍👦‍👦`,family_man_man_girl_girl:`👨‍👨‍👧‍👧`,family_woman_woman_boy:`👩‍👩‍👦`,family_woman_woman_girl:`👩‍👩‍👧`,family_woman_woman_girl_boy:`👩‍👩‍👧‍👦`,family_woman_woman_boy_boy:`👩‍👩‍👦‍👦`,family_woman_woman_girl_girl:`👩‍👩‍👧‍👧`,family_man_boy:`👨‍👦`,family_man_boy_boy:`👨‍👦‍👦`,family_man_girl:`👨‍👧`,family_man_girl_boy:`👨‍👧‍👦`,family_man_girl_girl:`👨‍👧‍👧`,family_woman_boy:`👩‍👦`,family_woman_boy_boy:`👩‍👦‍👦`,family_woman_girl:`👩‍👧`,family_woman_girl_boy:`👩‍👧‍👦`,family_woman_girl_girl:`👩‍👧‍👧`,speaking_head:`🗣️`,bust_in_silhouette:`👤`,busts_in_silhouette:`👥`,people_hugging:`🫂`,footprints:`👣`,monkey_face:`🐵`,monkey:`🐒`,gorilla:`🦍`,orangutan:`🦧`,dog:`🐶`,dog2:`🐕`,guide_dog:`🦮`,service_dog:`🐕‍🦺`,poodle:`🐩`,wolf:`🐺`,fox_face:`🦊`,raccoon:`🦝`,cat:`🐱`,cat2:`🐈`,black_cat:`🐈‍⬛`,lion:`🦁`,tiger:`🐯`,tiger2:`🐅`,leopard:`🐆`,horse:`🐴`,moose:`🫎`,donkey:`🫏`,racehorse:`🐎`,unicorn:`🦄`,zebra:`🦓`,deer:`🦌`,bison:`🦬`,cow:`🐮`,ox:`🐂`,water_buffalo:`🐃`,cow2:`🐄`,pig:`🐷`,pig2:`🐖`,boar:`🐗`,pig_nose:`🐽`,ram:`🐏`,sheep:`🐑`,goat:`🐐`,dromedary_camel:`🐪`,camel:`🐫`,llama:`🦙`,giraffe:`🦒`,elephant:`🐘`,mammoth:`🦣`,rhinoceros:`🦏`,hippopotamus:`🦛`,mouse:`🐭`,mouse2:`🐁`,rat:`🐀`,hamster:`🐹`,rabbit:`🐰`,rabbit2:`🐇`,chipmunk:`🐿️`,beaver:`🦫`,hedgehog:`🦔`,bat:`🦇`,bear:`🐻`,polar_bear:`🐻‍❄️`,koala:`🐨`,panda_face:`🐼`,sloth:`🦥`,otter:`🦦`,skunk:`🦨`,kangaroo:`🦘`,badger:`🦡`,feet:`🐾`,paw_prints:`🐾`,turkey:`🦃`,chicken:`🐔`,rooster:`🐓`,hatching_chick:`🐣`,baby_chick:`🐤`,hatched_chick:`🐥`,bird:`🐦`,penguin:`🐧`,dove:`🕊️`,eagle:`🦅`,duck:`🦆`,swan:`🦢`,owl:`🦉`,dodo:`🦤`,feather:`🪶`,flamingo:`🦩`,peacock:`🦚`,parrot:`🦜`,wing:`🪽`,black_bird:`🐦‍⬛`,goose:`🪿`,frog:`🐸`,crocodile:`🐊`,turtle:`🐢`,lizard:`🦎`,snake:`🐍`,dragon_face:`🐲`,dragon:`🐉`,sauropod:`🦕`,"t-rex":`🦖`,whale:`🐳`,whale2:`🐋`,dolphin:`🐬`,flipper:`🐬`,seal:`🦭`,fish:`🐟`,tropical_fish:`🐠`,blowfish:`🐡`,shark:`🦈`,octopus:`🐙`,shell:`🐚`,coral:`🪸`,jellyfish:`🪼`,snail:`🐌`,butterfly:`🦋`,bug:`🐛`,ant:`🐜`,bee:`🐝`,honeybee:`🐝`,beetle:`🪲`,lady_beetle:`🐞`,cricket:`🦗`,cockroach:`🪳`,spider:`🕷️`,spider_web:`🕸️`,scorpion:`🦂`,mosquito:`🦟`,fly:`🪰`,worm:`🪱`,microbe:`🦠`,bouquet:`💐`,cherry_blossom:`🌸`,white_flower:`💮`,lotus:`🪷`,rosette:`🏵️`,rose:`🌹`,wilted_flower:`🥀`,hibiscus:`🌺`,sunflower:`🌻`,blossom:`🌼`,tulip:`🌷`,hyacinth:`🪻`,seedling:`🌱`,potted_plant:`🪴`,evergreen_tree:`🌲`,deciduous_tree:`🌳`,palm_tree:`🌴`,cactus:`🌵`,ear_of_rice:`🌾`,herb:`🌿`,shamrock:`☘️`,four_leaf_clover:`🍀`,maple_leaf:`🍁`,fallen_leaf:`🍂`,leaves:`🍃`,empty_nest:`🪹`,nest_with_eggs:`🪺`,mushroom:`🍄`,grapes:`🍇`,melon:`🍈`,watermelon:`🍉`,tangerine:`🍊`,orange:`🍊`,mandarin:`🍊`,lemon:`🍋`,banana:`🍌`,pineapple:`🍍`,mango:`🥭`,apple:`🍎`,green_apple:`🍏`,pear:`🍐`,peach:`🍑`,cherries:`🍒`,strawberry:`🍓`,blueberries:`🫐`,kiwi_fruit:`🥝`,tomato:`🍅`,olive:`🫒`,coconut:`🥥`,avocado:`🥑`,eggplant:`🍆`,potato:`🥔`,carrot:`🥕`,corn:`🌽`,hot_pepper:`🌶️`,bell_pepper:`🫑`,cucumber:`🥒`,leafy_green:`🥬`,broccoli:`🥦`,garlic:`🧄`,onion:`🧅`,peanuts:`🥜`,beans:`🫘`,chestnut:`🌰`,ginger_root:`🫚`,pea_pod:`🫛`,bread:`🍞`,croissant:`🥐`,baguette_bread:`🥖`,flatbread:`🫓`,pretzel:`🥨`,bagel:`🥯`,pancakes:`🥞`,waffle:`🧇`,cheese:`🧀`,meat_on_bone:`🍖`,poultry_leg:`🍗`,cut_of_meat:`🥩`,bacon:`🥓`,hamburger:`🍔`,fries:`🍟`,pizza:`🍕`,hotdog:`🌭`,sandwich:`🥪`,taco:`🌮`,burrito:`🌯`,tamale:`🫔`,stuffed_flatbread:`🥙`,falafel:`🧆`,egg:`🥚`,fried_egg:`🍳`,shallow_pan_of_food:`🥘`,stew:`🍲`,fondue:`🫕`,bowl_with_spoon:`🥣`,green_salad:`🥗`,popcorn:`🍿`,butter:`🧈`,salt:`🧂`,canned_food:`🥫`,bento:`🍱`,rice_cracker:`🍘`,rice_ball:`🍙`,rice:`🍚`,curry:`🍛`,ramen:`🍜`,spaghetti:`🍝`,sweet_potato:`🍠`,oden:`🍢`,sushi:`🍣`,fried_shrimp:`🍤`,fish_cake:`🍥`,moon_cake:`🥮`,dango:`🍡`,dumpling:`🥟`,fortune_cookie:`🥠`,takeout_box:`🥡`,crab:`🦀`,lobster:`🦞`,shrimp:`🦐`,squid:`🦑`,oyster:`🦪`,icecream:`🍦`,shaved_ice:`🍧`,ice_cream:`🍨`,doughnut:`🍩`,cookie:`🍪`,birthday:`🎂`,cake:`🍰`,cupcake:`🧁`,pie:`🥧`,chocolate_bar:`🍫`,candy:`🍬`,lollipop:`🍭`,custard:`🍮`,honey_pot:`🍯`,baby_bottle:`🍼`,milk_glass:`🥛`,coffee:`☕`,teapot:`🫖`,tea:`🍵`,sake:`🍶`,champagne:`🍾`,wine_glass:`🍷`,cocktail:`🍸`,tropical_drink:`🍹`,beer:`🍺`,beers:`🍻`,clinking_glasses:`🥂`,tumbler_glass:`🥃`,pouring_liquid:`🫗`,cup_with_straw:`🥤`,bubble_tea:`🧋`,beverage_box:`🧃`,mate:`🧉`,ice_cube:`🧊`,chopsticks:`🥢`,plate_with_cutlery:`🍽️`,fork_and_knife:`🍴`,spoon:`🥄`,hocho:`🔪`,knife:`🔪`,jar:`🫙`,amphora:`🏺`,earth_africa:`🌍`,earth_americas:`🌎`,earth_asia:`🌏`,globe_with_meridians:`🌐`,world_map:`🗺️`,japan:`🗾`,compass:`🧭`,mountain_snow:`🏔️`,mountain:`⛰️`,volcano:`🌋`,mount_fuji:`🗻`,camping:`🏕️`,beach_umbrella:`🏖️`,desert:`🏜️`,desert_island:`🏝️`,national_park:`🏞️`,stadium:`🏟️`,classical_building:`🏛️`,building_construction:`🏗️`,bricks:`🧱`,rock:`🪨`,wood:`🪵`,hut:`🛖`,houses:`🏘️`,derelict_house:`🏚️`,house:`🏠`,house_with_garden:`🏡`,office:`🏢`,post_office:`🏣`,european_post_office:`🏤`,hospital:`🏥`,bank:`🏦`,hotel:`🏨`,love_hotel:`🏩`,convenience_store:`🏪`,school:`🏫`,department_store:`🏬`,factory:`🏭`,japanese_castle:`🏯`,european_castle:`🏰`,wedding:`💒`,tokyo_tower:`🗼`,statue_of_liberty:`🗽`,church:`⛪`,mosque:`🕌`,hindu_temple:`🛕`,synagogue:`🕍`,shinto_shrine:`⛩️`,kaaba:`🕋`,fountain:`⛲`,tent:`⛺`,foggy:`🌁`,night_with_stars:`🌃`,cityscape:`🏙️`,sunrise_over_mountains:`🌄`,sunrise:`🌅`,city_sunset:`🌆`,city_sunrise:`🌇`,bridge_at_night:`🌉`,hotsprings:`♨️`,carousel_horse:`🎠`,playground_slide:`🛝`,ferris_wheel:`🎡`,roller_coaster:`🎢`,barber:`💈`,circus_tent:`🎪`,steam_locomotive:`🚂`,railway_car:`🚃`,bullettrain_side:`🚄`,bullettrain_front:`🚅`,train2:`🚆`,metro:`🚇`,light_rail:`🚈`,station:`🚉`,tram:`🚊`,monorail:`🚝`,mountain_railway:`🚞`,train:`🚋`,bus:`🚌`,oncoming_bus:`🚍`,trolleybus:`🚎`,minibus:`🚐`,ambulance:`🚑`,fire_engine:`🚒`,police_car:`🚓`,oncoming_police_car:`🚔`,taxi:`🚕`,oncoming_taxi:`🚖`,car:`🚗`,red_car:`🚗`,oncoming_automobile:`🚘`,blue_car:`🚙`,pickup_truck:`🛻`,truck:`🚚`,articulated_lorry:`🚛`,tractor:`🚜`,racing_car:`🏎️`,motorcycle:`🏍️`,motor_scooter:`🛵`,manual_wheelchair:`🦽`,motorized_wheelchair:`🦼`,auto_rickshaw:`🛺`,bike:`🚲`,kick_scooter:`🛴`,skateboard:`🛹`,roller_skate:`🛼`,busstop:`🚏`,motorway:`🛣️`,railway_track:`🛤️`,oil_drum:`🛢️`,fuelpump:`⛽`,wheel:`🛞`,rotating_light:`🚨`,traffic_light:`🚥`,vertical_traffic_light:`🚦`,stop_sign:`🛑`,construction:`🚧`,anchor:`⚓`,ring_buoy:`🛟`,boat:`⛵`,sailboat:`⛵`,canoe:`🛶`,speedboat:`🚤`,passenger_ship:`🛳️`,ferry:`⛴️`,motor_boat:`🛥️`,ship:`🚢`,airplane:`✈️`,small_airplane:`🛩️`,flight_departure:`🛫`,flight_arrival:`🛬`,parachute:`🪂`,seat:`💺`,helicopter:`🚁`,suspension_railway:`🚟`,mountain_cableway:`🚠`,aerial_tramway:`🚡`,artificial_satellite:`🛰️`,rocket:`🚀`,flying_saucer:`🛸`,bellhop_bell:`🛎️`,luggage:`🧳`,hourglass:`⌛`,hourglass_flowing_sand:`⏳`,watch:`⌚`,alarm_clock:`⏰`,stopwatch:`⏱️`,timer_clock:`⏲️`,mantelpiece_clock:`🕰️`,clock12:`🕛`,clock1230:`🕧`,clock1:`🕐`,clock130:`🕜`,clock2:`🕑`,clock230:`🕝`,clock3:`🕒`,clock330:`🕞`,clock4:`🕓`,clock430:`🕟`,clock5:`🕔`,clock530:`🕠`,clock6:`🕕`,clock630:`🕡`,clock7:`🕖`,clock730:`🕢`,clock8:`🕗`,clock830:`🕣`,clock9:`🕘`,clock930:`🕤`,clock10:`🕙`,clock1030:`🕥`,clock11:`🕚`,clock1130:`🕦`,new_moon:`🌑`,waxing_crescent_moon:`🌒`,first_quarter_moon:`🌓`,moon:`🌔`,waxing_gibbous_moon:`🌔`,full_moon:`🌕`,waning_gibbous_moon:`🌖`,last_quarter_moon:`🌗`,waning_crescent_moon:`🌘`,crescent_moon:`🌙`,new_moon_with_face:`🌚`,first_quarter_moon_with_face:`🌛`,last_quarter_moon_with_face:`🌜`,thermometer:`🌡️`,sunny:`☀️`,full_moon_with_face:`🌝`,sun_with_face:`🌞`,ringed_planet:`🪐`,star:`⭐`,star2:`🌟`,stars:`🌠`,milky_way:`🌌`,cloud:`☁️`,partly_sunny:`⛅`,cloud_with_lightning_and_rain:`⛈️`,sun_behind_small_cloud:`🌤️`,sun_behind_large_cloud:`🌥️`,sun_behind_rain_cloud:`🌦️`,cloud_with_rain:`🌧️`,cloud_with_snow:`🌨️`,cloud_with_lightning:`🌩️`,tornado:`🌪️`,fog:`🌫️`,wind_face:`🌬️`,cyclone:`🌀`,rainbow:`🌈`,closed_umbrella:`🌂`,open_umbrella:`☂️`,umbrella:`☔`,parasol_on_ground:`⛱️`,zap:`⚡`,snowflake:`❄️`,snowman_with_snow:`☃️`,snowman:`⛄`,comet:`☄️`,fire:`🔥`,droplet:`💧`,ocean:`🌊`,jack_o_lantern:`🎃`,christmas_tree:`🎄`,fireworks:`🎆`,sparkler:`🎇`,firecracker:`🧨`,sparkles:`✨`,balloon:`🎈`,tada:`🎉`,confetti_ball:`🎊`,tanabata_tree:`🎋`,bamboo:`🎍`,dolls:`🎎`,flags:`🎏`,wind_chime:`🎐`,rice_scene:`🎑`,red_envelope:`🧧`,ribbon:`🎀`,gift:`🎁`,reminder_ribbon:`🎗️`,tickets:`🎟️`,ticket:`🎫`,medal_military:`🎖️`,trophy:`🏆`,medal_sports:`🏅`,"1st_place_medal":`🥇`,"2nd_place_medal":`🥈`,"3rd_place_medal":`🥉`,soccer:`⚽`,baseball:`⚾`,softball:`🥎`,basketball:`🏀`,volleyball:`🏐`,football:`🏈`,rugby_football:`🏉`,tennis:`🎾`,flying_disc:`🥏`,bowling:`🎳`,cricket_game:`🏏`,field_hockey:`🏑`,ice_hockey:`🏒`,lacrosse:`🥍`,ping_pong:`🏓`,badminton:`🏸`,boxing_glove:`🥊`,martial_arts_uniform:`🥋`,goal_net:`🥅`,golf:`⛳`,ice_skate:`⛸️`,fishing_pole_and_fish:`🎣`,diving_mask:`🤿`,running_shirt_with_sash:`🎽`,ski:`🎿`,sled:`🛷`,curling_stone:`🥌`,dart:`🎯`,yo_yo:`🪀`,kite:`🪁`,gun:`🔫`,"8ball":`🎱`,crystal_ball:`🔮`,magic_wand:`🪄`,video_game:`🎮`,joystick:`🕹️`,slot_machine:`🎰`,game_die:`🎲`,jigsaw:`🧩`,teddy_bear:`🧸`,pinata:`🪅`,mirror_ball:`🪩`,nesting_dolls:`🪆`,spades:`♠️`,hearts:`♥️`,diamonds:`♦️`,clubs:`♣️`,chess_pawn:`♟️`,black_joker:`🃏`,mahjong:`🀄`,flower_playing_cards:`🎴`,performing_arts:`🎭`,framed_picture:`🖼️`,art:`🎨`,thread:`🧵`,sewing_needle:`🪡`,yarn:`🧶`,knot:`🪢`,eyeglasses:`👓`,dark_sunglasses:`🕶️`,goggles:`🥽`,lab_coat:`🥼`,safety_vest:`🦺`,necktie:`👔`,shirt:`👕`,tshirt:`👕`,jeans:`👖`,scarf:`🧣`,gloves:`🧤`,coat:`🧥`,socks:`🧦`,dress:`👗`,kimono:`👘`,sari:`🥻`,one_piece_swimsuit:`🩱`,swim_brief:`🩲`,shorts:`🩳`,bikini:`👙`,womans_clothes:`👚`,folding_hand_fan:`🪭`,purse:`👛`,handbag:`👜`,pouch:`👝`,shopping:`🛍️`,school_satchel:`🎒`,thong_sandal:`🩴`,mans_shoe:`👞`,shoe:`👞`,athletic_shoe:`👟`,hiking_boot:`🥾`,flat_shoe:`🥿`,high_heel:`👠`,sandal:`👡`,ballet_shoes:`🩰`,boot:`👢`,hair_pick:`🪮`,crown:`👑`,womans_hat:`👒`,tophat:`🎩`,mortar_board:`🎓`,billed_cap:`🧢`,military_helmet:`🪖`,rescue_worker_helmet:`⛑️`,prayer_beads:`📿`,lipstick:`💄`,ring:`💍`,gem:`💎`,mute:`🔇`,speaker:`🔈`,sound:`🔉`,loud_sound:`🔊`,loudspeaker:`📢`,mega:`📣`,postal_horn:`📯`,bell:`🔔`,no_bell:`🔕`,musical_score:`🎼`,musical_note:`🎵`,notes:`🎶`,studio_microphone:`🎙️`,level_slider:`🎚️`,control_knobs:`🎛️`,microphone:`🎤`,headphones:`🎧`,radio:`📻`,saxophone:`🎷`,accordion:`🪗`,guitar:`🎸`,musical_keyboard:`🎹`,trumpet:`🎺`,violin:`🎻`,banjo:`🪕`,drum:`🥁`,long_drum:`🪘`,maracas:`🪇`,flute:`🪈`,iphone:`📱`,calling:`📲`,phone:`☎️`,telephone:`☎️`,telephone_receiver:`📞`,pager:`📟`,fax:`📠`,battery:`🔋`,low_battery:`🪫`,electric_plug:`🔌`,computer:`💻`,desktop_computer:`🖥️`,printer:`🖨️`,keyboard:`⌨️`,computer_mouse:`🖱️`,trackball:`🖲️`,minidisc:`💽`,floppy_disk:`💾`,cd:`💿`,dvd:`📀`,abacus:`🧮`,movie_camera:`🎥`,film_strip:`🎞️`,film_projector:`📽️`,clapper:`🎬`,tv:`📺`,camera:`📷`,camera_flash:`📸`,video_camera:`📹`,vhs:`📼`,mag:`🔍`,mag_right:`🔎`,candle:`🕯️`,bulb:`💡`,flashlight:`🔦`,izakaya_lantern:`🏮`,lantern:`🏮`,diya_lamp:`🪔`,notebook_with_decorative_cover:`📔`,closed_book:`📕`,book:`📖`,open_book:`📖`,green_book:`📗`,blue_book:`📘`,orange_book:`📙`,books:`📚`,notebook:`📓`,ledger:`📒`,page_with_curl:`📃`,scroll:`📜`,page_facing_up:`📄`,newspaper:`📰`,newspaper_roll:`🗞️`,bookmark_tabs:`📑`,bookmark:`🔖`,label:`🏷️`,moneybag:`💰`,coin:`🪙`,yen:`💴`,dollar:`💵`,euro:`💶`,pound:`💷`,money_with_wings:`💸`,credit_card:`💳`,receipt:`🧾`,chart:`💹`,envelope:`✉️`,email:`📧`,"e-mail":`📧`,incoming_envelope:`📨`,envelope_with_arrow:`📩`,outbox_tray:`📤`,inbox_tray:`📥`,package:`📦`,mailbox:`📫`,mailbox_closed:`📪`,mailbox_with_mail:`📬`,mailbox_with_no_mail:`📭`,postbox:`📮`,ballot_box:`🗳️`,pencil2:`✏️`,black_nib:`✒️`,fountain_pen:`🖋️`,pen:`🖊️`,paintbrush:`🖌️`,crayon:`🖍️`,memo:`📝`,pencil:`📝`,briefcase:`💼`,file_folder:`📁`,open_file_folder:`📂`,card_index_dividers:`🗂️`,date:`📅`,calendar:`📆`,spiral_notepad:`🗒️`,spiral_calendar:`🗓️`,card_index:`📇`,chart_with_upwards_trend:`📈`,chart_with_downwards_trend:`📉`,bar_chart:`📊`,clipboard:`📋`,pushpin:`📌`,round_pushpin:`📍`,paperclip:`📎`,paperclips:`🖇️`,straight_ruler:`📏`,triangular_ruler:`📐`,scissors:`✂️`,card_file_box:`🗃️`,file_cabinet:`🗄️`,wastebasket:`🗑️`,lock:`🔒`,unlock:`🔓`,lock_with_ink_pen:`🔏`,closed_lock_with_key:`🔐`,key:`🔑`,old_key:`🗝️`,hammer:`🔨`,axe:`🪓`,pick:`⛏️`,hammer_and_pick:`⚒️`,hammer_and_wrench:`🛠️`,dagger:`🗡️`,crossed_swords:`⚔️`,bomb:`💣`,boomerang:`🪃`,bow_and_arrow:`🏹`,shield:`🛡️`,carpentry_saw:`🪚`,wrench:`🔧`,screwdriver:`🪛`,nut_and_bolt:`🔩`,gear:`⚙️`,clamp:`🗜️`,balance_scale:`⚖️`,probing_cane:`🦯`,link:`🔗`,chains:`⛓️`,hook:`🪝`,toolbox:`🧰`,magnet:`🧲`,ladder:`🪜`,alembic:`⚗️`,test_tube:`🧪`,petri_dish:`🧫`,dna:`🧬`,microscope:`🔬`,telescope:`🔭`,satellite:`📡`,syringe:`💉`,drop_of_blood:`🩸`,pill:`💊`,adhesive_bandage:`🩹`,crutch:`🩼`,stethoscope:`🩺`,x_ray:`🩻`,door:`🚪`,elevator:`🛗`,mirror:`🪞`,window:`🪟`,bed:`🛏️`,couch_and_lamp:`🛋️`,chair:`🪑`,toilet:`🚽`,plunger:`🪠`,shower:`🚿`,bathtub:`🛁`,mouse_trap:`🪤`,razor:`🪒`,lotion_bottle:`🧴`,safety_pin:`🧷`,broom:`🧹`,basket:`🧺`,roll_of_paper:`🧻`,bucket:`🪣`,soap:`🧼`,bubbles:`🫧`,toothbrush:`🪥`,sponge:`🧽`,fire_extinguisher:`🧯`,shopping_cart:`🛒`,smoking:`🚬`,coffin:`⚰️`,headstone:`🪦`,funeral_urn:`⚱️`,nazar_amulet:`🧿`,hamsa:`🪬`,moyai:`🗿`,placard:`🪧`,identification_card:`🪪`,atm:`🏧`,put_litter_in_its_place:`🚮`,potable_water:`🚰`,wheelchair:`♿`,mens:`🚹`,womens:`🚺`,restroom:`🚻`,baby_symbol:`🚼`,wc:`🚾`,passport_control:`🛂`,customs:`🛃`,baggage_claim:`🛄`,left_luggage:`🛅`,warning:`⚠️`,children_crossing:`🚸`,no_entry:`⛔`,no_entry_sign:`🚫`,no_bicycles:`🚳`,no_smoking:`🚭`,do_not_litter:`🚯`,"non-potable_water":`🚱`,no_pedestrians:`🚷`,no_mobile_phones:`📵`,underage:`🔞`,radioactive:`☢️`,biohazard:`☣️`,arrow_up:`⬆️`,arrow_upper_right:`↗️`,arrow_right:`➡️`,arrow_lower_right:`↘️`,arrow_down:`⬇️`,arrow_lower_left:`↙️`,arrow_left:`⬅️`,arrow_upper_left:`↖️`,arrow_up_down:`↕️`,left_right_arrow:`↔️`,leftwards_arrow_with_hook:`↩️`,arrow_right_hook:`↪️`,arrow_heading_up:`⤴️`,arrow_heading_down:`⤵️`,arrows_clockwise:`🔃`,arrows_counterclockwise:`🔄`,back:`🔙`,end:`🔚`,on:`🔛`,soon:`🔜`,top:`🔝`,place_of_worship:`🛐`,atom_symbol:`⚛️`,om:`🕉️`,star_of_david:`✡️`,wheel_of_dharma:`☸️`,yin_yang:`☯️`,latin_cross:`✝️`,orthodox_cross:`☦️`,star_and_crescent:`☪️`,peace_symbol:`☮️`,menorah:`🕎`,six_pointed_star:`🔯`,khanda:`🪯`,aries:`♈`,taurus:`♉`,gemini:`♊`,cancer:`♋`,leo:`♌`,virgo:`♍`,libra:`♎`,scorpius:`♏`,sagittarius:`♐`,capricorn:`♑`,aquarius:`♒`,pisces:`♓`,ophiuchus:`⛎`,twisted_rightwards_arrows:`🔀`,repeat:`🔁`,repeat_one:`🔂`,arrow_forward:`▶️`,fast_forward:`⏩`,next_track_button:`⏭️`,play_or_pause_button:`⏯️`,arrow_backward:`◀️`,rewind:`⏪`,previous_track_button:`⏮️`,arrow_up_small:`🔼`,arrow_double_up:`⏫`,arrow_down_small:`🔽`,arrow_double_down:`⏬`,pause_button:`⏸️`,stop_button:`⏹️`,record_button:`⏺️`,eject_button:`⏏️`,cinema:`🎦`,low_brightness:`🔅`,high_brightness:`🔆`,signal_strength:`📶`,wireless:`🛜`,vibration_mode:`📳`,mobile_phone_off:`📴`,female_sign:`♀️`,male_sign:`♂️`,transgender_symbol:`⚧️`,heavy_multiplication_x:`✖️`,heavy_plus_sign:`➕`,heavy_minus_sign:`➖`,heavy_division_sign:`➗`,heavy_equals_sign:`🟰`,infinity:`♾️`,bangbang:`‼️`,interrobang:`⁉️`,question:`❓`,grey_question:`❔`,grey_exclamation:`❕`,exclamation:`❗`,heavy_exclamation_mark:`❗`,wavy_dash:`〰️`,currency_exchange:`💱`,heavy_dollar_sign:`💲`,medical_symbol:`⚕️`,recycle:`♻️`,fleur_de_lis:`⚜️`,trident:`🔱`,name_badge:`📛`,beginner:`🔰`,o:`⭕`,white_check_mark:`✅`,ballot_box_with_check:`☑️`,heavy_check_mark:`✔️`,x:`❌`,negative_squared_cross_mark:`❎`,curly_loop:`➰`,loop:`➿`,part_alternation_mark:`〽️`,eight_spoked_asterisk:`✳️`,eight_pointed_black_star:`✴️`,sparkle:`❇️`,copyright:`©️`,registered:`®️`,tm:`™️`,hash:`#️⃣`,asterisk:`*️⃣`,zero:`0️⃣`,one:`1️⃣`,two:`2️⃣`,three:`3️⃣`,four:`4️⃣`,five:`5️⃣`,six:`6️⃣`,seven:`7️⃣`,eight:`8️⃣`,nine:`9️⃣`,keycap_ten:`🔟`,capital_abcd:`🔠`,abcd:`🔡`,symbols:`🔣`,abc:`🔤`,a:`🅰️`,ab:`🆎`,b:`🅱️`,cl:`🆑`,cool:`🆒`,free:`🆓`,information_source:`ℹ️`,id:`🆔`,m:`Ⓜ️`,new:`🆕`,ng:`🆖`,o2:`🅾️`,ok:`🆗`,parking:`🅿️`,sos:`🆘`,up:`🆙`,vs:`🆚`,koko:`🈁`,sa:`🈂️`,u6708:`🈷️`,u6709:`🈶`,u6307:`🈯`,ideograph_advantage:`🉐`,u5272:`🈹`,u7121:`🈚`,u7981:`🈲`,accept:`🉑`,u7533:`🈸`,u5408:`🈴`,u7a7a:`🈳`,congratulations:`㊗️`,secret:`㊙️`,u55b6:`🈺`,u6e80:`🈵`,red_circle:`🔴`,orange_circle:`🟠`,yellow_circle:`🟡`,green_circle:`🟢`,large_blue_circle:`🔵`,purple_circle:`🟣`,brown_circle:`🟤`,black_circle:`⚫`,white_circle:`⚪`,red_square:`🟥`,orange_square:`🟧`,yellow_square:`🟨`,green_square:`🟩`,blue_square:`🟦`,purple_square:`🟪`,brown_square:`🟫`,black_large_square:`⬛`,white_large_square:`⬜`,black_medium_square:`◼️`,white_medium_square:`◻️`,black_medium_small_square:`◾`,white_medium_small_square:`◽`,black_small_square:`▪️`,white_small_square:`▫️`,large_orange_diamond:`🔶`,large_blue_diamond:`🔷`,small_orange_diamond:`🔸`,small_blue_diamond:`🔹`,small_red_triangle:`🔺`,small_red_triangle_down:`🔻`,diamond_shape_with_a_dot_inside:`💠`,radio_button:`🔘`,white_square_button:`🔳`,black_square_button:`🔲`,checkered_flag:`🏁`,triangular_flag_on_post:`🚩`,crossed_flags:`🎌`,black_flag:`🏴`,white_flag:`🏳️`,rainbow_flag:`🏳️‍🌈`,transgender_flag:`🏳️‍⚧️`,pirate_flag:`🏴‍☠️`,ascension_island:`🇦🇨`,andorra:`🇦🇩`,united_arab_emirates:`🇦🇪`,afghanistan:`🇦🇫`,antigua_barbuda:`🇦🇬`,anguilla:`🇦🇮`,albania:`🇦🇱`,armenia:`🇦🇲`,angola:`🇦🇴`,antarctica:`🇦🇶`,argentina:`🇦🇷`,american_samoa:`🇦🇸`,austria:`🇦🇹`,australia:`🇦🇺`,aruba:`🇦🇼`,aland_islands:`🇦🇽`,azerbaijan:`🇦🇿`,bosnia_herzegovina:`🇧🇦`,barbados:`🇧🇧`,bangladesh:`🇧🇩`,belgium:`🇧🇪`,burkina_faso:`🇧🇫`,bulgaria:`🇧🇬`,bahrain:`🇧🇭`,burundi:`🇧🇮`,benin:`🇧🇯`,st_barthelemy:`🇧🇱`,bermuda:`🇧🇲`,brunei:`🇧🇳`,bolivia:`🇧🇴`,caribbean_netherlands:`🇧🇶`,brazil:`🇧🇷`,bahamas:`🇧🇸`,bhutan:`🇧🇹`,bouvet_island:`🇧🇻`,botswana:`🇧🇼`,belarus:`🇧🇾`,belize:`🇧🇿`,canada:`🇨🇦`,cocos_islands:`🇨🇨`,congo_kinshasa:`🇨🇩`,central_african_republic:`🇨🇫`,congo_brazzaville:`🇨🇬`,switzerland:`🇨🇭`,cote_divoire:`🇨🇮`,cook_islands:`🇨🇰`,chile:`🇨🇱`,cameroon:`🇨🇲`,cn:`🇨🇳`,colombia:`🇨🇴`,clipperton_island:`🇨🇵`,costa_rica:`🇨🇷`,cuba:`🇨🇺`,cape_verde:`🇨🇻`,curacao:`🇨🇼`,christmas_island:`🇨🇽`,cyprus:`🇨🇾`,czech_republic:`🇨🇿`,de:`🇩🇪`,diego_garcia:`🇩🇬`,djibouti:`🇩🇯`,denmark:`🇩🇰`,dominica:`🇩🇲`,dominican_republic:`🇩🇴`,algeria:`🇩🇿`,ceuta_melilla:`🇪🇦`,ecuador:`🇪🇨`,estonia:`🇪🇪`,egypt:`🇪🇬`,western_sahara:`🇪🇭`,eritrea:`🇪🇷`,es:`🇪🇸`,ethiopia:`🇪🇹`,eu:`🇪🇺`,european_union:`🇪🇺`,finland:`🇫🇮`,fiji:`🇫🇯`,falkland_islands:`🇫🇰`,micronesia:`🇫🇲`,faroe_islands:`🇫🇴`,fr:`🇫🇷`,gabon:`🇬🇦`,gb:`🇬🇧`,uk:`🇬🇧`,grenada:`🇬🇩`,georgia:`🇬🇪`,french_guiana:`🇬🇫`,guernsey:`🇬🇬`,ghana:`🇬🇭`,gibraltar:`🇬🇮`,greenland:`🇬🇱`,gambia:`🇬🇲`,guinea:`🇬🇳`,guadeloupe:`🇬🇵`,equatorial_guinea:`🇬🇶`,greece:`🇬🇷`,south_georgia_south_sandwich_islands:`🇬🇸`,guatemala:`🇬🇹`,guam:`🇬🇺`,guinea_bissau:`🇬🇼`,guyana:`🇬🇾`,hong_kong:`🇭🇰`,heard_mcdonald_islands:`🇭🇲`,honduras:`🇭🇳`,croatia:`🇭🇷`,haiti:`🇭🇹`,hungary:`🇭🇺`,canary_islands:`🇮🇨`,indonesia:`🇮🇩`,ireland:`🇮🇪`,israel:`🇮🇱`,isle_of_man:`🇮🇲`,india:`🇮🇳`,british_indian_ocean_territory:`🇮🇴`,iraq:`🇮🇶`,iran:`🇮🇷`,iceland:`🇮🇸`,it:`🇮🇹`,jersey:`🇯🇪`,jamaica:`🇯🇲`,jordan:`🇯🇴`,jp:`🇯🇵`,kenya:`🇰🇪`,kyrgyzstan:`🇰🇬`,cambodia:`🇰🇭`,kiribati:`🇰🇮`,comoros:`🇰🇲`,st_kitts_nevis:`🇰🇳`,north_korea:`🇰🇵`,kr:`🇰🇷`,kuwait:`🇰🇼`,cayman_islands:`🇰🇾`,kazakhstan:`🇰🇿`,laos:`🇱🇦`,lebanon:`🇱🇧`,st_lucia:`🇱🇨`,liechtenstein:`🇱🇮`,sri_lanka:`🇱🇰`,liberia:`🇱🇷`,lesotho:`🇱🇸`,lithuania:`🇱🇹`,luxembourg:`🇱🇺`,latvia:`🇱🇻`,libya:`🇱🇾`,morocco:`🇲🇦`,monaco:`🇲🇨`,moldova:`🇲🇩`,montenegro:`🇲🇪`,st_martin:`🇲🇫`,madagascar:`🇲🇬`,marshall_islands:`🇲🇭`,macedonia:`🇲🇰`,mali:`🇲🇱`,myanmar:`🇲🇲`,mongolia:`🇲🇳`,macau:`🇲🇴`,northern_mariana_islands:`🇲🇵`,martinique:`🇲🇶`,mauritania:`🇲🇷`,montserrat:`🇲🇸`,malta:`🇲🇹`,mauritius:`🇲🇺`,maldives:`🇲🇻`,malawi:`🇲🇼`,mexico:`🇲🇽`,malaysia:`🇲🇾`,mozambique:`🇲🇿`,namibia:`🇳🇦`,new_caledonia:`🇳🇨`,niger:`🇳🇪`,norfolk_island:`🇳🇫`,nigeria:`🇳🇬`,nicaragua:`🇳🇮`,netherlands:`🇳🇱`,norway:`🇳🇴`,nepal:`🇳🇵`,nauru:`🇳🇷`,niue:`🇳🇺`,new_zealand:`🇳🇿`,oman:`🇴🇲`,panama:`🇵🇦`,peru:`🇵🇪`,french_polynesia:`🇵🇫`,papua_new_guinea:`🇵🇬`,philippines:`🇵🇭`,pakistan:`🇵🇰`,poland:`🇵🇱`,st_pierre_miquelon:`🇵🇲`,pitcairn_islands:`🇵🇳`,puerto_rico:`🇵🇷`,palestinian_territories:`🇵🇸`,portugal:`🇵🇹`,palau:`🇵🇼`,paraguay:`🇵🇾`,qatar:`🇶🇦`,reunion:`🇷🇪`,romania:`🇷🇴`,serbia:`🇷🇸`,ru:`🇷🇺`,rwanda:`🇷🇼`,saudi_arabia:`🇸🇦`,solomon_islands:`🇸🇧`,seychelles:`🇸🇨`,sudan:`🇸🇩`,sweden:`🇸🇪`,singapore:`🇸🇬`,st_helena:`🇸🇭`,slovenia:`🇸🇮`,svalbard_jan_mayen:`🇸🇯`,slovakia:`🇸🇰`,sierra_leone:`🇸🇱`,san_marino:`🇸🇲`,senegal:`🇸🇳`,somalia:`🇸🇴`,suriname:`🇸🇷`,south_sudan:`🇸🇸`,sao_tome_principe:`🇸🇹`,el_salvador:`🇸🇻`,sint_maarten:`🇸🇽`,syria:`🇸🇾`,swaziland:`🇸🇿`,tristan_da_cunha:`🇹🇦`,turks_caicos_islands:`🇹🇨`,chad:`🇹🇩`,french_southern_territories:`🇹🇫`,togo:`🇹🇬`,thailand:`🇹🇭`,tajikistan:`🇹🇯`,tokelau:`🇹🇰`,timor_leste:`🇹🇱`,turkmenistan:`🇹🇲`,tunisia:`🇹🇳`,tonga:`🇹🇴`,tr:`🇹🇷`,trinidad_tobago:`🇹🇹`,tuvalu:`🇹🇻`,taiwan:`🇹🇼`,tanzania:`🇹🇿`,ukraine:`🇺🇦`,uganda:`🇺🇬`,us_outlying_islands:`🇺🇲`,united_nations:`🇺🇳`,us:`🇺🇸`,uruguay:`🇺🇾`,uzbekistan:`🇺🇿`,vatican_city:`🇻🇦`,st_vincent_grenadines:`🇻🇨`,venezuela:`🇻🇪`,british_virgin_islands:`🇻🇬`,us_virgin_islands:`🇻🇮`,vietnam:`🇻🇳`,vanuatu:`🇻🇺`,wallis_futuna:`🇼🇫`,samoa:`🇼🇸`,kosovo:`🇽🇰`,yemen:`🇾🇪`,mayotte:`🇾🇹`,south_africa:`🇿🇦`,zambia:`🇿🇲`,zimbabwe:`🇿🇼`,england:`🏴󠁧󠁢󠁥󠁮󠁧󠁿`,scotland:`🏴󠁧󠁢󠁳󠁣󠁴󠁿`,wales:`🏴󠁧󠁢󠁷󠁬󠁳󠁿`};function Wo(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Go=Wo();function Ko(e){Go=e}var qo={exec:()=>null};function Jo(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function K(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(Xo.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Yo=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),Xo={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Jo(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Jo(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:Jo(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Jo(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Jo(e=>RegExp(`^ {0,${e}}(?:</?(?:${ds})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,`i`)),blockquoteBeginRegex:Jo(e=>RegExp(`^ {0,${e}}>`))},Zo=/^(?:[ \t]*(?:\n|$))+/,Qo=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,$o=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,es=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ts=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ns=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,rs=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,is=K(rs).replace(/bull/g,ns).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),as=K(rs).replace(/bull/g,ns).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),os=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,ss=/^[^\n]+/,cs=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ls=K(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,cs).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),us=K(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,ns).getRegex(),ds=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,fs=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ps=K(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,fs).replace(`tag`,ds).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ms=e=>K(os).replace(`hr`,es).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ds).getRegex(),hs=ms(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),gs=ms(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),_s={blockquote:K(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,gs).getRegex(),code:Qo,def:ls,fences:$o,heading:ts,hr:es,html:ps,lheading:is,list:us,newline:Zo,paragraph:hs,table:qo,text:ss},vs=K(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,es).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ds).getRegex(),ys={..._s,lheading:as,table:vs,paragraph:K(os).replace(`hr`,es).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,vs).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ds).getRegex()},bs={..._s,html:K(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,fs).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:qo,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:K(os).replace(`hr`,es).replace(`heading`,` *#{1,6} *[^
23
23
  ]`).replace(`lheading`,is).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},xs=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Ss=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Cs=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,ws=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Ts=/[\p{P}\p{S}]/u,Es=/[\s\p{P}\p{S}]/u,Ds=/[^\s\p{P}\p{S}]/u,Os=K(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,Es).getRegex(),ks=/[\p{Pi}\p{Ps}"']/u,As=/(?!~)[\p{P}\p{S}]/u,js=/(?!~)[\s\p{P}\p{S}]/u,Ms=/(?:[^\s\p{P}\p{S}]|~)/u,Ns=K(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Yo?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Ps=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Fs=K(Ps,`u`).replace(/punct/g,Ts).getRegex(),Is=K(Ps,`u`).replace(/punct/g,As).getRegex(),Ls=K(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,ks).replace(/punct/g,Ts).getRegex(),Rs=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,zs=K(Rs,`gu`).replace(/notPunctSpace/g,Ds).replace(/punctSpace/g,Es).replace(/punct/g,Ts).getRegex(),Bs=K(Rs,`gu`).replace(/notPunctSpace/g,Ms).replace(/punctSpace/g,js).replace(/punct/g,As).getRegex(),Vs=K(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Ds).replace(/punctSpace/g,Es).replace(/punct/g,Ts).getRegex(),Hs=K(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Ds).replace(/punctSpace/g,Es).replace(/punct/g,Ts).getRegex(),Us=K(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Ds).replace(/punctSpace/g,Es).replace(/punct/g,Ts).getRegex(),Ws=K(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,Ts).getRegex(),Gs=K(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Ds).replace(/punctSpace/g,Es).replace(/punct/g,Ts).getRegex(),Ks=K(/\\(punct)/,`gu`).replace(/punct/g,Ts).getRegex(),qs=K(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Js=K(fs).replace(`(?:-->|$)`,`-->`).getRegex(),Ys=K(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Js).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Xs=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,Zs=K(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,Xs).getRegex(),Qs=K(/^!?\[(label)\]\([ \t\n]*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?[ \t\n]*\)/).replace(`label`,Zs).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),$s=K(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Zs).replace(`ref`,cs).getRegex(),ec=K(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,cs).getRegex(),tc=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,nc=K(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,Xs).getRegex(),rc=K(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,K(/^!?\[(label)\]\[(ref)\]/).replace(`label`,nc).replace(`ref`,tc).getRegex()).replace(`nolink`,K(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,tc).getRegex()).getRegex(),ic=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ac=K(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),oc={_backpedal:qo,anyPunctuation:Ks,autolink:qs,blockSkip:Ns,br:Cs,code:Ss,del:qo,delLDelim:qo,delRDelim:qo,emStrongLDelim:Fs,emStrongRDelimAst:zs,emStrongRDelimUnd:Hs,escape:xs,link:Qs,nolink:ec,punctuation:Os,reflink:$s,reflinkSearch:rc,tag:Ys,text:ws,url:qo},sc={...oc,emStrongLDelim:Ls,emStrongRDelimAst:Vs,emStrongRDelimUnd:Us,link:K(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Zs).getRegex(),reflink:K(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Zs).getRegex()},cc={...oc,emStrongRDelimAst:Bs,emStrongLDelim:Is,delLDelim:Ws,delRDelim:Gs,url:K(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,ac).replace(`protocol`,ic).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:K(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace(`protocol`,ic).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},lc={...cc,br:K(Cs).replace(`{2,}`,`*`).getRegex(),text:K(cc.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},uc={normal:_s,gfm:ys,pedantic:bs},dc={normal:oc,gfm:cc,breaks:lc,pedantic:sc},fc={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},pc=e=>fc[e];function mc(e,t){if(t){if(Xo.escapeTest.test(e))return e.replace(Xo.escapeReplace,pc)}else if(Xo.escapeTestNoEncode.test(e))return e.replace(Xo.escapeReplaceNoEncode,pc);return e}function hc(e){return e.replace(Xo.numericCharacterReference,(e,t,n)=>{let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:String.fromCodePoint(r)})}function gc(e){try{e=encodeURI(e).replace(Xo.percentDecode,`%`)}catch{return null}return e}function _c(e,t){let n=e.replace(Xo.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(Xo.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(Xo.slashPipe,`|`);return n}function vc(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function yc(e){let t=e.split(`
@@ -97,6 +97,6 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
97
97
  `).map(e=>`> ${e}`).join(`
98
98
  `),af=e=>e.split(`
99
99
  `).find(e=>e.trim()!==``)??``,of=e=>`${e.author}:${e.createdAt}:${e.body}`,sf=({comment:e,buildImageProxyUrl:t,renderReferenceLink:n,repoContext:r,onCommentCheckboxToggle:i})=>{let a=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>e.stopPropagation();return e.addEventListener(`click`,t),()=>e.removeEventListener(`click`,t)},[]);let o=(0,y.useMemo)(()=>i===void 0?void 0:t=>i(e,t),[e,i]);return(0,x.jsx)(`div`,{ref:a,className:`console-comment-body-expanded`,children:(0,x.jsx)(Ld,{body:e.body,buildImageProxyUrl:t,renderReferenceLink:n,repoContext:r,onCheckboxToggle:o})})},cf=({comments:e,isLoading:t,error:n,now:r,buildImageProxyUrl:i,renderReferenceLink:a,repoContext:o,persistenceKey:s=null,issueUrl:c,issueTitle:l,storyEntries:u,agentOptions:d,onCreateIssueFromComment:f,onCommentCheckboxToggle:p})=>{let[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(()=>s==null?new Set:Zn(s)),S=e.length>0?of(e[e.length-1]):null;(0,y.useEffect)(()=>{S!==null&&b(e=>new Set([...e,S]))},[S]),(0,y.useEffect)(()=>{s!=null&&Qn(s,v)},[s,v]);let ee=e=>{b(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};if(n!==null)return(0,x.jsx)(`p`,{className:`console-comment-notloaded`,children:`Not loaded.`});if(t)return(0,x.jsx)(`p`,{className:`console-comment-loading`,children:`Loading comments...`});if(e.length===0)return(0,x.jsx)(`p`,{className:`console-comment-empty`,children:`No comments.`});let C=!m&&e.length>1;return(0,x.jsxs)(`div`,{className:`console-comment-list`,children:[C&&(0,x.jsxs)(`button`,{type:`button`,className:`console-comment-show-all`,onClick:()=>{h(!0),b(t=>new Set([...t,...e.map(of)]))},children:[`Show all `,e.length]}),e.map(e=>{let t=of(e),n=v.has(t);return(0,x.jsxs)(`article`,{className:`console-comment${n?` is-expanded`:C?` console-comment--expandable`:``}`,children:[(0,x.jsxs)(`button`,{type:`button`,className:`console-comment-toggle`,onClick:()=>ee(t),"aria-expanded":n,children:[(0,x.jsx)(`span`,{className:`console-comment-author`,children:e.author}),(0,x.jsx)(`span`,{className:`console-comment-time`,children:k(e.createdAt,r)}),!n&&(0,x.jsx)(`span`,{className:`console-comment-body-preview`,children:af(e.body)})]}),f!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-comment-create-workflow-issue`,onClick:t=>{t.stopPropagation(),_(e)},title:`Create workflow improvement issue from this comment`,children:`+`}),n&&(0,x.jsx)(sf,{comment:e,buildImageProxyUrl:i,renderReferenceLink:a,repoContext:o,onCommentCheckboxToggle:p})]},t)}),g!==null&&f!==void 0&&(0,x.jsx)(he,{storyEntries:u??[],agentOptions:d??[],initialDestination:`workflow`,onSubmitProject:f.onSubmitProject,onSubmitWorkflow:f.onSubmitWorkflow,onClose:()=>_(null),initialDraft:{title:``,body:(()=>{let e=rf(g.body);return c!=null&&l!=null?`${c}\n\n${l}\n\n\n\n\n\n${e}`:l==null?e:`${l}\n\n\n\n\n\n${e}`})(),storyName:null,agentOptionId:null}})]})},lf=e=>e.slice(0,7),uf=e=>e.split(`
100
- `)[0],df=({commits:e,isLoading:t,error:n,now:r})=>n===null?t?(0,x.jsx)(`p`,{className:`console-commits-loading`,children:`Loading commits...`}):e.length===0?(0,x.jsx)(`p`,{className:`console-commits-empty`,children:`No commits.`}):(0,x.jsx)(`ul`,{className:`console-commits`,children:e.map(e=>(0,x.jsxs)(`li`,{className:`console-commit`,children:[(0,x.jsx)(`span`,{className:`console-commit-message`,children:uf(e.message)}),(0,x.jsx)(`span`,{className:`console-commit-sha`,children:lf(e.sha)}),(0,x.jsx)(`span`,{className:`console-commit-author`,children:e.author}),(0,x.jsx)(`span`,{className:`console-commit-time`,children:k(e.authoredAt,r)})]},e.sha))}):(0,x.jsx)(`p`,{className:`console-commits-notloaded`,children:`Not loaded.`}),ff=({url:e,label:t=`Copy URL`})=>(0,x.jsx)(fd,{value:e,idleText:`Copy URL`,idleAriaLabel:t,copiedAriaLabel:`URL copied to clipboard`,className:`console-copy-url-button`}),pf=e=>{let t=new Map;for(let n of e){let e=t.get(n.message);if(e===void 0){t.set(n.message,[n.section]);continue}e.push(n.section)}return Array.from(t,([e,t])=>({message:e,sections:t}))},mf=e=>e.length<=1?e.join(``):`${e.slice(0,-1).join(`, `)} and ${e[e.length-1]}`,hf=({failures:e})=>e.length===0?null:(0,x.jsx)(`div`,{role:`alert`,className:`console-detail-fetch-error`,children:pf(e).map(e=>(0,x.jsxs)(`p`,{className:`console-detail-fetch-error-line`,children:[`Failed to load `,mf(e.sections),`:`,` `,e.message]},e.message))}),gf=({title:e,onTitleRename:t})=>{let[n,r]=(0,y.useState)(e),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(e),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(e);(0,y.useEffect)(()=>{let t=e!==f.current;f.current=e,!i&&t&&r(e)},[e,i]);let p=()=>{s(n),d(null),a(!0)},m=()=>{a(!1),d(null)},h=async()=>{let e=o.trim();if(e===``||e===n){a(!1);return}l(!0),d(null);try{await t(e),r(e),a(!1)}catch(e){d(e instanceof Error?e.message:`Failed to rename`)}finally{l(!1)}};return i?(0,x.jsxs)(`span`,{className:`console-detail-title-text console-detail-title-text--editing`,children:[(0,x.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`?h():e.key===`Escape`&&m()},disabled:c,className:`console-detail-title-input`,"aria-label":`Edit title`}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>void h(),disabled:c,className:`console-detail-title-save`,children:`Save`}),(0,x.jsx)(`button`,{type:`button`,onClick:m,disabled:c,className:`console-detail-title-cancel`,children:`Cancel`}),u!==null&&(0,x.jsx)(`span`,{className:`console-detail-title-error`,role:`alert`,children:u})]}):(0,x.jsxs)(`span`,{className:`console-detail-title-text`,children:[n,(0,x.jsx)(`button`,{type:`button`,onClick:p,className:`console-detail-title-edit`,"aria-label":`Edit title`,children:`Edit`})]})},_f={MERGEABLE:{color:`GREEN`,label:`No conflict`,title:`This pull request has no merge conflicts`,modifier:`console-detail-mergeable-chip-ok`},CONFLICTING:{color:`RED`,label:`Conflict`,title:`This pull request has merge conflicts`,modifier:`console-detail-mergeable-chip-conflict`},UNKNOWN:{color:`GRAY`,label:`Checking merge status`,title:`GitHub has not finished computing the merge status yet`,modifier:`console-detail-mergeable-chip-unknown`}},vf=({mergeableStatus:e})=>{let t=_f[e],n=R(t.color);return(0,x.jsx)(`span`,{className:`console-detail-status-chip console-detail-mergeable-chip ${t.modifier}`,style:{color:n.fg,borderColor:n.border,backgroundColor:n.bg},title:t.title,children:t.label})},yf=e=>{let t=R(e);return{color:t.fg,borderColor:t.border,backgroundColor:t.bg}},bf=({isPassedAllCiJob:e,isCiStateSuccess:t,isBranchOutOfDate:n,missingRequiredCheckNames:r})=>{let i=e&&t,a=i?`GREEN`:`RED`,o=i?`CI passing`:`CI failing`,s=!i&&r.length>0?`missing: ${r.join(`, `)}`:null;return(0,x.jsxs)(`span`,{className:`console-detail-pr-status`,children:[(0,x.jsxs)(`span`,{className:`console-detail-status-chip console-detail-ci-chip`,style:yf(a),title:s??o,children:[o,s!==null&&(0,x.jsxs)(`span`,{className:`console-detail-ci-missing`,children:[` `,`(`,s,`)`]})]}),n&&(0,x.jsx)(`span`,{className:`console-detail-status-chip console-detail-outofdate-chip`,style:yf(`YELLOW`),title:`This branch is out of date with the base branch`,children:`Out of date`})]})},xf=({pullRequest:e,body:t,bodyIsLoading:n,files:r,filesAreLoading:i,filesError:a,commits:o,commitsAreLoading:s,commitsError:c,now:l,buildImageProxyUrl:u,renderReferenceLink:d,onAddInlineComment:f})=>{let p=e.summary,m=ua(e.url),h=m===null?void 0:{owner:m.owner,repo:m.repo},g=i||a!==null?null:r.length,_=s||c!==null?null:o.length;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`console-pr-header`,children:[(0,x.jsx)(`a`,{href:e.url,className:`console-pr-section-title`,target:`_blank`,rel:`noopener noreferrer`,children:p?.title??e.url}),e.isDraft&&(0,x.jsx)(`span`,{className:`console-pr-section-state`,children:`draft`}),(0,x.jsx)(vf,{mergeableStatus:e.mergeableStatus}),(0,x.jsx)(bf,{isPassedAllCiJob:e.isPassedAllCiJob,isCiStateSuccess:e.isCiStateSuccess,isBranchOutOfDate:e.isBranchOutOfDate,missingRequiredCheckNames:e.missingRequiredCheckNames}),(0,x.jsx)(`a`,{href:e.url,className:`console-panel-open-link`,target:`_blank`,rel:`noopener noreferrer`,children:`open`}),(0,x.jsx)(ff,{url:e.url,label:`Copy PR URL`}),(0,x.jsxs)(`div`,{className:`console-pr-statbar`,children:[m!==null&&(0,x.jsxs)(`span`,{className:`console-pr-repo`,children:[m.owner,`/`,m.repo]}),e.branchName!==null&&(0,x.jsx)(`span`,{className:`console-pr-branch`,children:e.branchName}),p!==null&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`span`,{className:`console-pr-add`,children:[`+`,p.additions]}),(0,x.jsxs)(`span`,{className:`console-pr-del`,children:[`-`,p.deletions]}),(0,x.jsxs)(`span`,{className:`console-pr-files-count`,children:[p.changedFiles,` files`]})]})]})]}),(0,x.jsx)(Rd,{title:`Description`,children:n?(0,x.jsx)(`p`,{className:`console-pr-body-loading`,children:`Loading description...`}):(0,x.jsx)(Ld,{body:p?.body??t,buildImageProxyUrl:u,renderReferenceLink:d,repoContext:h})}),(0,x.jsx)(Rd,{title:`Changed files`,count:g,children:(0,x.jsx)(nf,{files:r,isLoading:i,error:a,buildImageProxyUrl:u,onAddInlineComment:f})}),(0,x.jsx)(Rd,{title:`Commits`,count:_,defaultCollapsed:!0,children:(0,x.jsx)(df,{commits:o,isLoading:s,error:c,now:l})})]})},Sf=({item:e,storyName:t,storyColorEnum:n,overlayStatus:r,statusOptions:i,state:a,body:o,bodyIsLoading:s,bodyError:c,comments:l,commentsAreLoading:u,commentsError:d,files:f,filesAreLoading:p,filesError:m,commits:h,commitsAreLoading:g,commitsError:_,stateError:v,pullRequestStatus:y,pullRequestStatusError:b,relatedPullRequests:S,relatedPullRequestsError:ee,now:C,commentComposer:w,operationBar:T,buildImageProxyUrl:E,renderReferenceLink:te,onAddInlineComment:D,onTitleRename:ne,onBodyCheckboxToggle:O,onCommentCheckboxToggle:re,storyEntries:A,agentOptions:j,onCreateIssueFromComment:ae})=>{let oe=a?.state??`open`,se=a?.merged??!1,M=!e.isPr&&oe===`closed`?`Closed`:null,N=da(e.nameWithOwner)??void 0,P=R(n),ce=r===null?e.status===null?null:{name:e.status,color:i.find(t=>t.name===e.status)?.color??`GRAY`}:r,le=ce===null?null:R(ce.color),F=p||m!==null?null:f.length,ue=u||d!==null?null:l.length,de=g||_!==null?null:h.length,fe=!u&&d===null&&l.length>0,pe=(e,t)=>{let n=ua(e);return n===null?e:`${t}#${n.number}`},I=e=>pe(e,`PR `),L=[],me=new Map;for(let t of e.dependedIssueUrls){let e=me.get(t)??0;me.set(t,e+1),L.push({url:t,occurrenceKey:`${t}#${e}`})}let he=[{section:`item state`,message:v},{section:`pull request status`,message:e.isPr?b:null},{section:`description`,message:c},{section:`comments`,message:d},{section:`changed files`,message:e.isPr?m:null},{section:`commits`,message:e.isPr?_:null},{section:`related pull requests`,message:e.isPr?null:ee},...S.flatMap(e=>[{section:`changed files of ${I(e.pullRequest.url)}`,message:e.filesError},{section:`commits of ${I(e.pullRequest.url)}`,message:e.commitsError}])].flatMap(e=>e.message===null?[]:[{section:e.section,message:e.message}]),z=e.isPr&&y?.found?[{url:e.url,mergeableStatus:y.mergeableStatus}]:[];return(0,x.jsxs)(`article`,{className:`console-detail`,children:[(0,x.jsxs)(`div`,{className:`console-detail-header`,children:[(0,x.jsxs)(`h2`,{className:`console-detail-title`,children:[(0,x.jsx)(Ne,{isPr:e.isPr,state:oe,merged:se,isDraft:!1,stateReason:``}),ne==null?(0,x.jsx)(`span`,{className:`console-detail-title-text`,children:e.title}):(0,x.jsx)(gf,{title:e.title,onTitleRename:ne}),(0,x.jsx)(`span`,{className:`console-detail-number`,children:e.isPr?`PR #${e.number}`:`#${e.number}`})]}),(0,x.jsxs)(`div`,{className:`console-detail-topline`,children:[ce!==null&&le!==null&&(0,x.jsx)(`span`,{className:`console-detail-status-chip`,style:{color:le.fg,borderColor:le.border,backgroundColor:le.bg},children:ce.name}),e.agent!==null&&e.agent!==``&&(0,x.jsx)(`span`,{className:`console-detail-agent-chip`,children:e.agent}),t!==null&&(0,x.jsxs)(`span`,{className:`console-storytag`,children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:P.dot}}),t]}),e.isPr&&y?.found&&(0,x.jsx)(bf,{isPassedAllCiJob:y.isPassedAllCiJob,isCiStateSuccess:y.isCiStateSuccess,isBranchOutOfDate:y.isBranchOutOfDate,missingRequiredCheckNames:y.missingRequiredCheckNames}),!e.isPr&&S.map(e=>(0,x.jsxs)(`span`,{className:`console-related-pr-group`,children:[S.length>1&&(0,x.jsx)(`span`,{className:`console-related-pr-label`,children:I(e.pullRequest.url)}),(0,x.jsx)(bf,{isPassedAllCiJob:e.pullRequest.isPassedAllCiJob,isCiStateSuccess:e.pullRequest.isCiStateSuccess,isBranchOutOfDate:e.pullRequest.isBranchOutOfDate,missingRequiredCheckNames:e.pullRequest.missingRequiredCheckNames}),(0,x.jsx)(vf,{mergeableStatus:e.pullRequest.mergeableStatus})]},e.pullRequest.url)),z.map(e=>(0,x.jsx)(vf,{mergeableStatus:e.mergeableStatus},e.url)),M!==null&&(0,x.jsx)(`span`,{className:`console-detail-closed-label`,children:M})]}),e.dependedIssueUrls.length>0&&(0,x.jsxs)(`div`,{className:`console-detail-depended-issue-url`,children:[(0,x.jsx)(`span`,{className:`console-detail-depended-issue-url-label`,children:`Depended Issue URL`}),L.map(({url:e,occurrenceKey:t})=>{let n=pe(e,``);return(0,x.jsx)(`span`,{className:`console-detail-depended-issue-url-link`,children:te?.(e,n)??(0,x.jsx)(`a`,{className:`console-markdown-reference console-markdown-reference-plain`,href:e,target:`_blank`,rel:`noopener noreferrer`,children:n})},t)})]}),(0,x.jsx)(hf,{failures:he}),(0,x.jsxs)(`div`,{className:`console-detail-subbar`,children:[(0,x.jsxs)(`a`,{href:e.url,className:`console-detail-link`,target:`_blank`,rel:`noopener noreferrer`,children:[`#`,e.number]}),(0,x.jsx)(`span`,{className:`console-detail-repo`,children:e.repo}),(0,x.jsxs)(`span`,{className:`console-detail-createdat`,title:ie(e.createdAt),children:[`opened `,k(e.createdAt,C)]}),(0,x.jsx)(ff,{url:e.url}),e.labels.map(e=>(0,x.jsx)(`span`,{className:`console-label-chip`,children:e},e))]})]}),(0,x.jsxs)(`div`,{className:`console-detail-body`,children:[(0,x.jsx)(Rd,{title:`Description`,defaultCollapsed:fe,headerAction:(0,x.jsx)(`a`,{href:e.url,className:`console-panel-open-link`,target:`_blank`,rel:`noopener noreferrer`,children:`open`}),children:c===null?s?(0,x.jsx)(`p`,{className:`console-detail-body-loading`,children:`Loading description...`}):(0,x.jsx)(Ld,{body:o,buildImageProxyUrl:E,renderReferenceLink:te,repoContext:N,onCheckboxToggle:O}):(0,x.jsx)(`p`,{className:`console-detail-body-notloaded`,children:`Not loaded.`})},fe?`desc-collapsed`:`desc-open`),e.isPr&&(0,x.jsx)(Rd,{title:`Changed files`,count:F,children:(0,x.jsx)(nf,{files:f,isLoading:p,error:m,onAddInlineComment:D})}),(0,x.jsx)(Rd,{title:`Comments`,count:ue,children:(0,x.jsx)(cf,{comments:l,isLoading:u,error:d,now:C,buildImageProxyUrl:E,renderReferenceLink:te,repoContext:N,persistenceKey:e.url,issueUrl:e.url,issueTitle:e.title,storyEntries:A,agentOptions:j,onCreateIssueFromComment:ae,onCommentCheckboxToggle:re})}),e.isPr&&(0,x.jsx)(Rd,{title:`Commits`,count:de,defaultCollapsed:!0,children:(0,x.jsx)(df,{commits:h,isLoading:g,error:_,now:C})}),!e.isPr&&S.map(e=>(0,x.jsx)(xf,{pullRequest:e.pullRequest,body:e.pullRequest.summary?.body??``,bodyIsLoading:!1,files:e.files,filesAreLoading:e.filesAreLoading,filesError:e.filesError,commits:e.commits,commitsAreLoading:e.commitsAreLoading,commitsError:e.commitsError,now:C,buildImageProxyUrl:E,renderReferenceLink:te,onAddInlineComment:D},e.pullRequest.url))]}),(0,x.jsxs)(`div`,{className:`console-detail-dock`,children:[(0,x.jsx)(`div`,{className:`console-detail-dock-composer`,children:w}),(0,x.jsx)(`div`,{className:`console-actionbar`,children:T})]})]})},Cf=({className:e,ariaLabel:t,placeholder:n,currentOption:r,options:i,onSelect:a})=>{let o=(0,y.useRef)({ready:!1,currentOptionId:r?.id??null});return(0,y.useLayoutEffect)(()=>{o.current.ready=!0,o.current.currentOptionId=r?.id??null}),(0,x.jsxs)(`select`,{className:e,defaultValue:r?.id??``,onChange:e=>{if(!o.current.ready||e.target.value===(o.current.currentOptionId??``))return;let t=i.find(t=>t.id===e.target.value);t!==void 0&&a(t)},"aria-label":t,children:[(0,x.jsx)(`option`,{value:``,children:n}),i.map(e=>(0,x.jsx)(`option`,{value:e.id,children:e.name},e.id))]})},wf=({agentOptions:e,currentAgentName:t,currentAgentOptionId:n,onSetAgent:r})=>{if(e.length===0)return null;let i=n==null?t===null?null:e.find(e=>e.name===t)??null:e.find(e=>e.id===n)??null;return(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(Cf,{className:`console-agent-select`,ariaLabel:`Set agent`,placeholder:`— agent —`,currentOption:i,options:e,onSelect:r},i?.id??`none`)})},Tf=({onClose:e,onCommentAndClose:t,onOkAndClose:n,isDraftEmpty:r})=>{let[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=async e=>{if(!(e===void 0||i)){a(!0),s(null);try{await e()}catch(e){s(e instanceof Error?e.message:`failed to post`)}finally{a(!1)}}};return(0,x.jsxs)(`div`,{className:`console-op-group`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>e(`close_not_planned`),children:`Close as not planned`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>e(`close`),children:`Close`}),n!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,disabled:i,onClick:()=>{c(n)},children:`OK & Close`}),t!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,disabled:i||r===!0,onClick:()=>{c(t)},children:`Comment & Close`}),o!==null&&(0,x.jsx)(`span`,{role:`alert`,className:`console-op-comment-close-error`,children:o})]})},Ef=({onDeleteAllComments:e,onDeleteStory:t,storyNameForDeletion:n})=>{let[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=()=>{e(),i(!1)},f=()=>{o(!0),u(null)},p=async e=>{if(t){c(!0),u(null);try{await t(e)}catch(e){u(e instanceof Error?e.message:String(e)),c(!1)}}};return(0,x.jsxs)(`div`,{className:`console-op-group`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>i(e=>!e),children:`⚠`}),r&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:d,children:`Delete All Comments`}),t!=null&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:f,disabled:a,children:`Delete Story`})]}),a&&(0,x.jsxs)(`div`,{className:`console-story-delete-confirm`,role:`dialog`,"aria-modal":`true`,"aria-label":`Confirm story deletion`,children:[(0,x.jsxs)(`p`,{className:`console-story-delete-confirm-message`,children:[`Delete story option "`,n,`" from the GitHub custom field?`]}),l!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:l}),(0,x.jsxs)(`div`,{className:`console-story-delete-confirm-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>void p(!0),disabled:s,children:s?`Deleting…`:`Delete with child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>void p(!1),disabled:s,children:s?`Deleting…`:`Keep child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>{o(!1),u(null)},disabled:s,children:`Cancel`})]})]})]})},Df=({isManualTriage:e,onSetNextActionDate:t})=>(0,x.jsxs)(`div`,{className:`console-op-group`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1hour`),children:`+1h`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_3hours`),children:`+3h`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_6hours`),children:`+6h`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1day`),children:`+1d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_2days`),children:`+2d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_3days`),children:`+3d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_5days`),children:`+5d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1week`),children:e?`+1w skip`:`+1w`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1month`),children:`+1mo`})]}),Of=[{action:`unnecessary`,label:`Unnecessary`,variant:`unneeded`},{action:`totally_wrong`,label:`Totally wrong`,variant:`wrong`},{action:`request_changes`,label:`Reject`,variant:`reject`},{action:`approve_and_merge`,label:`Approve & Merge`,variant:`approve`}],kf=`Reject needs an inline comment on the diff.`,Af=({onReview:e,rejectEnabled:t})=>(0,x.jsxs)(`div`,{className:`console-op-group console-op-group-review`,children:[!t&&(0,x.jsx)(`p`,{className:`console-op-requirement`,children:kf}),Of.map(n=>{let r=n.action===`request_changes`&&!t;return(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-${n.variant}`,disabled:r,onClick:()=>e(n.action),children:n.label},n.action)})]}),jf=({onSetDependedIssueUrl:e})=>{let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null);return(0,x.jsxs)(`div`,{className:`console-op-group console-op-group-rare-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>{n(e=>!e),c(null)},title:`Rare actions`,children:`⋯`}),t&&e!==null&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`input`,{type:`url`,className:`console-settings-modal-input`,placeholder:`Depended issue URL`,value:r,onChange:e=>i(e.target.value),disabled:a}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:async()=>{if(e!==null&&r.trim()!==``){o(!0),c(null);try{await e(r.trim()),i(``),n(!1)}catch(e){c(e instanceof Error?e.message:`Failed to set depended issue URL`)}finally{o(!1)}}},disabled:a||r.trim()===``,children:a?`...`:`Set Depended Issue`})]}),s!==null&&(0,x.jsx)(`p`,{className:`console-settings-modal-error`,children:s})]})},Mf=(e,t)=>{let n=t.toLowerCase();return e.find(e=>e.name.toLowerCase()===n)??null},Nf=({statusOptions:e,onSetStatus:t,onSetInTmuxByHuman:n})=>{let r=Oe.map(t=>({name:t,option:Mf(e,t)})).filter(e=>e.option!==null);return r.length===0?null:(0,x.jsx)(`div`,{className:`console-op-group`,children:r.map(({name:e,option:r})=>{let i=R(r.color),a=e===Ee;return(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,style:{color:i.fg,borderColor:i.border,backgroundColor:i.bg},onClick:()=>a?n(r):t(r),children:r.name},r.id)})})},Pf=({storyOptions:e,currentStoryName:t,currentStoryOptionId:n,onSetStory:r})=>{if(e.length===0)return null;let i=n===null?t===null?null:e.find(e=>e.name===t)??null:e.find(e=>e.id===n)??null;return(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(Cf,{className:`console-story-select`,ariaLabel:`Set story`,placeholder:`— story —`,currentOption:i,options:e,onSelect:r},i?.id??`none`)})},Ff=({tab:e,hasPullRequest:t,rejectEnabled:n,statusOptions:r,storyOptions:i,currentStoryName:a,currentStoryOptionId:o,agentOptions:s,currentAgentName:c,currentAgentOptionId:l,handlers:u,storyNameForDeletion:d,onCommentAndClose:f,onOkAndClose:p,isDraftEmpty:m,isVisible:h})=>{let[g,_]=(0,y.useState)(!1);return h?(0,x.jsxs)(`div`,{className:`console-operation-bar`,children:[t&&(0,x.jsx)(Af,{onReview:u.onReview,rejectEnabled:n}),(0,x.jsx)(Df,{isManualTriage:ke(e),onSetNextActionDate:u.onSetNextActionDate}),(0,x.jsx)(Nf,{statusOptions:r,onSetStatus:u.onSetStatus,onSetInTmuxByHuman:u.onSetInTmuxByHuman}),g&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Pf,{storyOptions:i,currentStoryName:a,currentStoryOptionId:o,onSetStory:u.onSetStory}),(0,x.jsx)(wf,{agentOptions:s,currentAgentName:c,currentAgentOptionId:l,onSetAgent:u.onSetAgent})]}),(0,x.jsxs)(`div`,{className:`console-op-group-bottom-row`,children:[(0,x.jsxs)(`div`,{className:`console-op-group-left-pair`,children:[(i.length>0||s.length>0)&&(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>_(e=>!e),title:`Change agent or story`,children:`⚙`})}),(0,x.jsx)(jf,{onSetDependedIssueUrl:u.onSetDependedIssueUrl}),(0,x.jsx)(Ef,{onDeleteAllComments:u.onDeleteAllComments,onDeleteStory:u.onDeleteStory,storyNameForDeletion:d})]}),(0,x.jsx)(Tf,{onClose:u.onClose,onCommentAndClose:f,onOkAndClose:p,isDraftEmpty:m})]})]}):null},If=(e,t,n,r)=>{let i=t===null?void 0:e.peek(t),[a,o]=(0,y.useState)(i??r),[s,c]=(0,y.useState)(t!==null&&i===void 0),[l,u]=(0,y.useState)(null);return(0,y.useEffect)(()=>{if(t===null||n===null)return;let r=e.peek(t);if(r!==void 0){o(r),c(!1),u(null);return}let i=!1;return c(!0),u(null),e.load(t,n).then(e=>{i||(o(e),c(!1))}).catch(e=>{i||(u(e instanceof Error?e.message:String(e)),c(!1))}),()=>{i=!0}},[e,t,n]),{data:a,isLoading:s,error:l}},Lf=[],Rf=[],zf=[],Bf=[],$={state:`open`,merged:!1,isPullRequest:!1,title:``},Vf={found:!1,isConflicted:!1,mergeableStatus:`UNKNOWN`,isPassedAllCiJob:!1,isCiStateSuccess:!1,isBranchOutOfDate:!1,missingRequiredCheckNames:[]},Hf=(e,t,n)=>{let r=t===null?null:`${t.repo}#${t.number}`,i=t===null?null:t.url,a=t?.isPr??!1,o=If(e.body,r,i,``),s=If(e.state,r,i,$),c=If(e.comments,r,i,Lf),l=If(e.files,a?r:null,a?i:null,Rf),u=If(e.commits,a?r:null,a?i:null,zf),d=If(e.prStatus,a?r:null,a?i:null,Vf),f=!a&&((t?.relatedOpenPullRequestUrls.length??0)>0||n===`prs`),p=If(e.relatedPrs,f?r:null,f?i:null,Bf),[m,h]=(0,y.useState)([]);return(0,y.useEffect)(()=>{if(a||p.data.length===0){h([]);return}let t=!1,n=p.data.map(e=>({pullRequest:e,files:Rf,filesAreLoading:!0,filesError:null,commits:zf,commitsAreLoading:!0,commitsError:null}));h(n);let r=(e,n)=>{t||h(t=>t.map(t=>t.pullRequest.url===e?{...t,...n}:t))};for(let t of p.data){let n=t.url;e.files.load(n,t.url).then(e=>r(t.url,{files:e,filesAreLoading:!1})).catch(e=>r(t.url,{filesAreLoading:!1,filesError:e instanceof Error?e.message:String(e)})),e.commits.load(n,t.url).then(e=>r(t.url,{commits:e,commitsAreLoading:!1})).catch(e=>r(t.url,{commitsAreLoading:!1,commitsError:e instanceof Error?e.message:String(e)}))}return()=>{t=!0}},[e,a,p.data]),{state:s.data,body:o.data,bodyIsLoading:o.isLoading,bodyError:o.error,comments:c.data,commentsAreLoading:c.isLoading,commentsError:c.error,files:l.data,filesAreLoading:l.isLoading,filesError:l.error,commits:u.data,commitsAreLoading:u.isLoading,commitsError:u.error,stateError:s.error,pullRequestStatus:a?d.data:null,pullRequestStatusError:a?d.error:null,relatedPullRequests:m,relatedPullRequestsError:a?null:p.error}},Uf=e=>JSON.stringify([e.author,e.createdAt,e.body]),Wf=(e,t)=>{let n=new Set(e.map(Uf));return[...e,...t.filter(e=>!n.has(Uf(e)))]},Gf=({href:e,fallbackText:t,state:n})=>{if(n===null||n.title.trim()===``)return(0,x.jsx)(`a`,{className:`console-markdown-reference console-markdown-reference-plain`,href:e,target:`_blank`,rel:`noopener noreferrer`,children:t});let r=ua(e);return(0,x.jsxs)(`a`,{className:`console-markdown-reference`,href:e,target:`_blank`,rel:`noopener noreferrer`,children:[(0,x.jsx)(Ne,{...fa(n)}),(0,x.jsx)(`span`,{className:`console-markdown-reference-title`,children:n.title}),r!==null&&(0,x.jsxs)(`span`,{className:`console-markdown-reference-number`,children:[`#`,r.number]})]})},Kf=(e,t)=>{let[n,r]=(0,y.useState)(()=>e.peek(t)??null);return(0,y.useEffect)(()=>{let n=e.peek(t);if(n!==void 0){r(n);return}let i=!1;return r(null),e.load(t,t).then(e=>{i||r(e)}).catch(()=>{i||r(null)}),()=>{i=!0}},[e,t]),n},qf=({cache:e,href:t,fallbackText:n})=>{let r=Kf(e,t);return(0,x.jsx)(Gf,{href:t,fallbackText:n,state:r})},Jf=e=>({itemUrl:e.url,projectItemId:e.projectItemId,itemNumber:e.number,repo:e.repo,nameWithOwner:e.nameWithOwner,isPr:e.isPr}),Yf=(e,t,n,r,i)=>({...Jf(t),apiPath:si,requestBody:ui(e,t,n,r,i)}),Xf=(e,t,n,r)=>({...Jf(t),apiPath:ci,requestBody:di(e,t,n,r)}),Zf=(e,t)=>({...Jf(t),apiPath:li,requestBody:fi(e,t)}),Qf=(e,t,n)=>({...Jf(t),apiPath:un,requestBody:pi(e,t,n)}),$f=(e,t,n)=>({...Jf(t),apiPath:Kn,requestBody:{pjcode:e,issueUrl:t.url,dependedIssueUrl:n}}),ep=e=>({...Jf(e),apiPath:En,requestBody:mi(e)}),tp=(e,t,n)=>[Qf(e,t,`ok`),Xf(e,t,`set_status`,{statusName:n.name})],np=`blue`,rp=e=>`Commented — ${et(e)}`,ip=`ok`,ap=(e,t,n)=>{e===void 0?console.error(t,n):e(t,String(n))},op=(e,t,n)=>il(e,t)===n?e:al(e,t),sp=({tab:e,item:t,caches:n,operations:r,pjcode:i,isAirplaneModeOn:a,onOfflineActionsCreate:o,statusOptions:s,storyOptions:c,agentOptions:l,storyColors:u,storyName:d,storyOptionId:f,overlayStatus:p,now:m,initialCommentDraft:h,onCommentDraftChange:g,onQueueAction:_,onCommentError:v,onDeleteStory:b,storyNameForDeletion:S,storyEntries:ee,onCreateIssueFromComment:C})=>{let w=Hf(n,t,e),T=(0,y.useCallback)(e=>ha(e,t.url),[t.url]),E=(0,y.useCallback)((e,t)=>(0,x.jsx)(qf,{cache:n.state,href:e,fallbackText:t}),[n.state]),te=t.isPr||t.relatedOpenPullRequestUrls.length>0||w.relatedPullRequests.length>0,[D,ne]=(0,y.useState)([]),O=(0,y.useCallback)(async(e,t,n,r)=>{ne(i=>[...i,{path:e,line:t,side:n,body:r}])},[]),[k,re]=(0,y.useState)([]),[ie,A]=(0,y.useState)(null),[j,ae]=(0,y.useState)({}),oe=(0,y.useRef)({}),se=(0,y.useRef)({}),M=(0,y.useCallback)(async e=>{let n=n=>(o({payloads:[Qf(n,t,e)],message:rp(t),color:np}),`held_offline`);if(a&&i!=null)return n(i);try{let n=await r.addComment(t,e);return re(e=>[...e,n]),n}catch(e){if(or(e)&&i!=null)return n(i);throw e}},[a,t,o,r,i]),N={onReview:e=>{let n=t.isPr?t.url:w.relatedPullRequests[0]?.pullRequest.url??t.relatedOpenPullRequestUrls[0]??t.url,a=e===`request_changes`?D:[];_({kind:{type:`review`,action:e},item:t,commit:()=>r.reviewPullRequest(t,n,e,a),offline:i==null?void 0:[Yf(i,t,n,e,a)],overlayPatch:{done:!0}})},onSetNextActionDate:e=>{_({kind:{type:`next_action_date`,action:e},item:t,commit:()=>r.setNextActionDate(t,e),offline:i==null?void 0:[Xf(i,t,e)],overlayPatch:{done:!0}})},onSetStory:e=>{_({kind:{type:`set_story`,optionName:e.name},item:t,commit:()=>r.setStory(t,e),offline:i==null?void 0:[Xf(i,t,`set_story`,{storyOptionId:e.id})],overlayPatch:{done:!0,story:{id:e.id,name:e.name,color:e.color}}})},onSetAgent:e=>{_({kind:{type:`set_agent`,optionName:e.name},item:t,commit:()=>r.setAgent(t,e),offline:i==null?void 0:[Xf(i,t,`set_agent`,{agentOptionId:e.id})],overlayPatch:{done:!0}})},onSetStatus:e=>{_({kind:{type:`set_status`,optionName:e.name},item:t,commit:()=>r.setStatus(t,e),offline:i==null?void 0:[Xf(i,t,`set_status`,{statusName:e.name})],overlayPatch:{done:!0,status:{name:e.name,color:e.color}}})},onSetInTmuxByHuman:e=>{_({kind:{type:`set_in_tmux_by_human`,optionName:e.name},item:t,commit:()=>r.setInTmuxByHuman(t,e),offline:i==null?void 0:[Zf(i,t)],overlayPatch:{done:!0,status:{name:e.name,color:e.color}}})},onClose:e=>{_({kind:{type:`close`,action:e},item:t,commit:()=>r.closeIssue(t,e),offline:i==null?void 0:[Xf(i,t,e)],overlayPatch:{done:!0}})},onOkAndAwaitingWorkspace:e=>{_({kind:{type:`ok_and_awaiting_workspace`},item:t,commit:n=>r.okAndMoveToAwaitingWorkspace(t,e,n),offline:i==null?void 0:tp(i,t,e),overlayPatch:{done:!0,status:{name:e.name,color:e.color}}})},onDeleteAllComments:()=>{_({kind:{type:`delete_all_comments`},item:t,commit:()=>r.deleteAllComments(t),offline:[ep(t)]})},onDeleteStory:b??null,onSetDependedIssueUrl:i==null?null:async e=>{if(F===null){await r.setDependedIssueUrl(t,e);return}let n=F;_({kind:{type:`set_status`,optionName:n.name},item:t,commit:i=>cr([()=>r.setDependedIssueUrl(t,e),()=>r.setStatus(t,n)],i),offline:[$f(i,t,e),Xf(i,t,`set_status`,{statusName:n.name})],overlayPatch:{done:!0,status:{name:n.name,color:n.color}}})}},P=(0,y.useCallback)(async e=>{await r.issueRename(t,e)},[t,r]),ce=(0,y.useCallback)(e=>{let n=al(ie??w.body,e),i=il(n,e);A(n);let a=()=>{let t=oe.current[e]??il(w.body,e);A(n=>op(n??w.body,e,t))};r.issueBodyUpdate?.(t,n).then(()=>{oe.current[e]=i,a()},e=>{a(),console.error(`Failed to persist description checkbox toggle`,e)})},[ie,w.body,t,r]),le=(0,y.useCallback)((e,n)=>{let i=al(j[e.id]??e.body,n),a=il(i,n);ae(t=>({...t,[e.id]:i}));let o=`${e.id}:${n}`,s=()=>{let t=se.current[o]??il(e.body,n);ae(r=>({...r,[e.id]:op(r[e.id]??e.body,n,t)}))};r.issueCommentBodyUpdate?.(t,e.id,i).then(()=>{se.current[o]=a,s()},e=>{s(),console.error(`Failed to persist comment checkbox toggle`,e)})},[j,t,r]),F=s.find(e=>e.name===`Awaiting Workspace`)??null,ue=F===null?void 0:async e=>(g?.(``),await new Promise((n,o)=>{let s=!1,c=(e,t)=>{throw ap(v,e,t),o(t),t};_({kind:{type:`set_status`,optionName:F.name},item:t,commit:async a=>{if(a>0||s){try{await r.setStatus(t,F)}catch(e){if(or(e)&&i!=null)throw new sr(1,e);c(`Comment already posted, but retrying the move to Awaiting Workspace status failed: ${String(e)}`,e)}try{await r.onAfterMoveToAwaitingWorkspace?.()}catch(e){ap(v,`Comment posted and status set to Awaiting Workspace, but a post-success refresh action failed: ${String(e)}`,e)}return}try{let i=await r.addCommentAndMoveToAwaitingWorkspace(t,e,F);re(e=>[...e,i]),n(i)}catch(e){let t=e instanceof sr;if(or(t?e.cause:e)&&i!=null)throw n(`held_offline`),e;if(s=!0,t)throw o(e),e;c(`Comment may already be posted; moving to Awaiting Workspace status failed: ${String(e)}`,e)}},offline:i==null?void 0:[Qf(i,t,e),Xf(i,t,`set_status`,{statusName:F.name})],revertAdvance:()=>g?.(e),overlayPatch:{done:!0,status:{name:F.name,color:F.color}}}),a&&i!=null&&n(`held_offline`)})),de=(0,y.useRef)(``),[fe,pe]=(0,y.useState)((h??``).trim().length===0),[I,L]=(0,y.useState)(!0),R=(0,y.useCallback)(e=>{de.current=e,pe(e.trim().length===0),g?.(e)},[g]),me=async e=>{if(i==null){await M(e),N.onClose(`close`);return}_({kind:{type:`close`,action:`close`},item:t,commit:n=>cr([async()=>{let n=await r.addComment(t,e);re(e=>[...e,n])},()=>r.closeIssue(t,`close`)],n),offline:[Qf(i,t,e),Xf(i,t,`close`)],overlayPatch:{done:!0}})},he=async()=>{let e=de.current.trim();e.length!==0&&await me(e)},z=async()=>{_({kind:{type:`ok_and_close`},item:t,commit:e=>cr([async()=>{await r.addComment(t,ip)},()=>r.closeIssue(t,`close`)],e),offline:i==null?void 0:[Qf(i,t,ip),Xf(i,t,`close`)],overlayPatch:{done:!0}})},_e=d??(t.story.trim()===``?null:t.story),ve=f==null?null:ge(u,f),ye=f??t.storyOptionId??null,be=ie??w.body,xe=Wf(w.comments,k).map(e=>j[e.id]===void 0?e:{...e,body:j[e.id]});return(0,x.jsx)(Sf,{item:t,storyName:_e,storyColorEnum:ve,overlayStatus:p,statusOptions:s,state:w.state,stateError:w.stateError,body:be,bodyIsLoading:w.bodyIsLoading,bodyError:w.bodyError,comments:xe,commentsAreLoading:w.commentsAreLoading,commentsError:w.commentsError,files:w.files,filesAreLoading:w.filesAreLoading,filesError:w.filesError,commits:w.commits,commitsAreLoading:w.commitsAreLoading,commitsError:w.commitsError,pullRequestStatus:w.pullRequestStatus,pullRequestStatusError:w.pullRequestStatusError,relatedPullRequests:w.relatedPullRequests,relatedPullRequestsError:w.relatedPullRequestsError,now:m,buildImageProxyUrl:T,renderReferenceLink:E,onAddInlineComment:O,onTitleRename:P,onBodyCheckboxToggle:ce,onCommentCheckboxToggle:le,storyEntries:ee,agentOptions:l,onCreateIssueFromComment:C,commentComposer:(0,x.jsx)(ca,{initiallyOpen:!0,initialDraft:h,onSubmit:M,onDraftChange:R,onOkAndAwaitingWorkspace:F===null?void 0:()=>N.onOkAndAwaitingWorkspace(F),onSubmitAndMoveToAwaitingWorkspace:ue,onUploadFile:e=>r.uploadAttachment(t,e),onOpenChange:L}),operationBar:(0,x.jsx)(Ff,{tab:e,item:t,hasPullRequest:te,rejectEnabled:D.length>0,statusOptions:s,storyOptions:c,currentStoryName:_e,currentStoryOptionId:ye,agentOptions:l,currentAgentName:t.agent,currentAgentOptionId:t.agentOptionId??null,handlers:N,storyNameForDeletion:S,onCommentAndClose:he,onOkAndClose:z,isDraftEmpty:fe,isVisible:I})})},cp=()=>{let e={};for(let t of A)e[t.name]=0;return e},lp=`console`,up=()=>({issueUrl:null,uploadedMarkdownByFileName:new Map,commentedFileNames:new Set}),dp=(e,t,n)=>{let r=[];return t.length>0&&r.push(`${t.length} file(s) failed to upload: ${t.join(`, `)}`),n!==null&&r.push(`the summary comment failed to post: ${n}`),`Task ${e} was created, but ${r.join(`; and `)}.`},fp=(e,t)=>e.title!==t.title||e.body!==t.body||e.storyName!==t.storyName||e.agentOptionId!==t.agentOptionId,pp=async(e,t,{title:n,storyName:r,agentOptionId:i,body:a,files:o},s)=>{let c=s.issueUrl;if(c===null){try{c=await Cn({pjcode:e,title:n,storyName:r??``,nameWithOwner:t,agentOptionId:i??null,body:a??null})}catch(e){throw console.error(`createIssueWithAttachments: failed to create issue`,e),Error(`Failed to create the task. Please try again.`)}s.issueUrl=c}let l=o.filter(e=>!s.uploadedMarkdownByFileName.has(e.name)),u=await Promise.allSettled(l.map(async t=>{let n=mn(new Uint8Array(await t.arrayBuffer())),r=await hn({pjcode:e,url:c,fileName:t.name,contentBase64:n});return{fileName:t.name,markdown:r}})),d=[];u.forEach((e,t)=>{e.status===`fulfilled`?s.uploadedMarkdownByFileName.set(e.value.fileName,e.value.markdown):d.push(l[t].name)});let f=Array.from(s.uploadedMarkdownByFileName.keys()).filter(e=>!s.commentedFileNames.has(e)),p=null;if(f.length>0)try{let t=await fn({pjcode:e,url:c,body:f.map(e=>s.uploadedMarkdownByFileName.get(e)).join(`
100
+ `)[0],df=({commits:e,isLoading:t,error:n,now:r})=>n===null?t?(0,x.jsx)(`p`,{className:`console-commits-loading`,children:`Loading commits...`}):e.length===0?(0,x.jsx)(`p`,{className:`console-commits-empty`,children:`No commits.`}):(0,x.jsx)(`ul`,{className:`console-commits`,children:e.map(e=>(0,x.jsxs)(`li`,{className:`console-commit`,children:[(0,x.jsx)(`span`,{className:`console-commit-message`,children:uf(e.message)}),(0,x.jsx)(`span`,{className:`console-commit-sha`,children:lf(e.sha)}),(0,x.jsx)(`span`,{className:`console-commit-author`,children:e.author}),(0,x.jsx)(`span`,{className:`console-commit-time`,children:k(e.authoredAt,r)})]},e.sha))}):(0,x.jsx)(`p`,{className:`console-commits-notloaded`,children:`Not loaded.`}),ff=({url:e,label:t=`Copy URL`})=>(0,x.jsx)(fd,{value:e,idleText:`Copy URL`,idleAriaLabel:t,copiedAriaLabel:`URL copied to clipboard`,className:`console-copy-url-button`}),pf=e=>{let t=new Map;for(let n of e){let e=t.get(n.message);if(e===void 0){t.set(n.message,[n.section]);continue}e.push(n.section)}return Array.from(t,([e,t])=>({message:e,sections:t}))},mf=e=>e.length<=1?e.join(``):`${e.slice(0,-1).join(`, `)} and ${e[e.length-1]}`,hf=({failures:e})=>e.length===0?null:(0,x.jsx)(`div`,{role:`alert`,className:`console-detail-fetch-error`,children:pf(e).map(e=>(0,x.jsxs)(`p`,{className:`console-detail-fetch-error-line`,children:[`Failed to load `,mf(e.sections),`:`,` `,e.message]},e.message))}),gf=({title:e,onTitleRename:t})=>{let[n,r]=(0,y.useState)(e),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(e),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(e);(0,y.useEffect)(()=>{let t=e!==f.current;f.current=e,!i&&t&&r(e)},[e,i]);let p=()=>{s(n),d(null),a(!0)},m=()=>{a(!1),d(null)},h=async()=>{let e=o.trim();if(e===``||e===n){a(!1);return}l(!0),d(null);try{await t(e),r(e),a(!1)}catch(e){d(e instanceof Error?e.message:`Failed to rename`)}finally{l(!1)}};return i?(0,x.jsxs)(`span`,{className:`console-detail-title-text console-detail-title-text--editing`,children:[(0,x.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`?h():e.key===`Escape`&&m()},disabled:c,className:`console-detail-title-input`,"aria-label":`Edit title`}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>void h(),disabled:c,className:`console-detail-title-save`,children:`Save`}),(0,x.jsx)(`button`,{type:`button`,onClick:m,disabled:c,className:`console-detail-title-cancel`,children:`Cancel`}),u!==null&&(0,x.jsx)(`span`,{className:`console-detail-title-error`,role:`alert`,children:u})]}):(0,x.jsxs)(`span`,{className:`console-detail-title-text`,children:[n,(0,x.jsx)(`button`,{type:`button`,onClick:p,className:`console-detail-title-edit`,"aria-label":`Edit title`,children:`Edit`})]})},_f={MERGEABLE:{color:`GREEN`,label:`No conflict`,title:`This pull request has no merge conflicts`,modifier:`console-detail-mergeable-chip-ok`},CONFLICTING:{color:`RED`,label:`Conflict`,title:`This pull request has merge conflicts`,modifier:`console-detail-mergeable-chip-conflict`},UNKNOWN:{color:`GRAY`,label:`Checking merge status`,title:`GitHub has not finished computing the merge status yet`,modifier:`console-detail-mergeable-chip-unknown`}},vf=({mergeableStatus:e})=>{let t=_f[e],n=R(t.color);return(0,x.jsx)(`span`,{className:`console-detail-status-chip console-detail-mergeable-chip ${t.modifier}`,style:{color:n.fg,borderColor:n.border,backgroundColor:n.bg},title:t.title,children:t.label})},yf=e=>{let t=R(e);return{color:t.fg,borderColor:t.border,backgroundColor:t.bg}},bf=({isPassedAllCiJob:e,isCiStateSuccess:t,isBranchOutOfDate:n,missingRequiredCheckNames:r})=>{let i=e&&t,a=i?`GREEN`:`RED`,o=i?`CI passing`:`CI failing`,s=!i&&r.length>0?`missing: ${r.join(`, `)}`:null;return(0,x.jsxs)(`span`,{className:`console-detail-pr-status`,children:[(0,x.jsxs)(`span`,{className:`console-detail-status-chip console-detail-ci-chip`,style:yf(a),title:s??o,children:[o,s!==null&&(0,x.jsxs)(`span`,{className:`console-detail-ci-missing`,children:[` `,`(`,s,`)`]})]}),n&&(0,x.jsx)(`span`,{className:`console-detail-status-chip console-detail-outofdate-chip`,style:yf(`YELLOW`),title:`This branch is out of date with the base branch`,children:`Out of date`})]})},xf=({pullRequest:e,body:t,bodyIsLoading:n,files:r,filesAreLoading:i,filesError:a,commits:o,commitsAreLoading:s,commitsError:c,now:l,buildImageProxyUrl:u,renderReferenceLink:d,onAddInlineComment:f})=>{let p=e.summary,m=ua(e.url),h=m===null?void 0:{owner:m.owner,repo:m.repo},g=i||a!==null?null:r.length,_=s||c!==null?null:o.length;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`console-pr-header`,children:[(0,x.jsx)(`a`,{href:e.url,className:`console-pr-section-title`,target:`_blank`,rel:`noopener noreferrer`,children:p?.title??e.url}),e.isDraft&&(0,x.jsx)(`span`,{className:`console-pr-section-state`,children:`draft`}),(0,x.jsx)(vf,{mergeableStatus:e.mergeableStatus}),(0,x.jsx)(bf,{isPassedAllCiJob:e.isPassedAllCiJob,isCiStateSuccess:e.isCiStateSuccess,isBranchOutOfDate:e.isBranchOutOfDate,missingRequiredCheckNames:e.missingRequiredCheckNames}),(0,x.jsx)(`a`,{href:e.url,className:`console-panel-open-link`,target:`_blank`,rel:`noopener noreferrer`,children:`open`}),(0,x.jsx)(ff,{url:e.url,label:`Copy PR URL`}),(0,x.jsxs)(`div`,{className:`console-pr-statbar`,children:[m!==null&&(0,x.jsxs)(`span`,{className:`console-pr-repo`,children:[m.owner,`/`,m.repo]}),e.branchName!==null&&(0,x.jsx)(`span`,{className:`console-pr-branch`,children:e.branchName}),p!==null&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`span`,{className:`console-pr-add`,children:[`+`,p.additions]}),(0,x.jsxs)(`span`,{className:`console-pr-del`,children:[`-`,p.deletions]}),(0,x.jsxs)(`span`,{className:`console-pr-files-count`,children:[p.changedFiles,` files`]})]})]})]}),(0,x.jsx)(Rd,{title:`Description`,children:n?(0,x.jsx)(`p`,{className:`console-pr-body-loading`,children:`Loading description...`}):(0,x.jsx)(Ld,{body:p?.body??t,buildImageProxyUrl:u,renderReferenceLink:d,repoContext:h})}),(0,x.jsx)(Rd,{title:`Changed files`,count:g,children:(0,x.jsx)(nf,{files:r,isLoading:i,error:a,buildImageProxyUrl:u,onAddInlineComment:f})}),(0,x.jsx)(Rd,{title:`Commits`,count:_,defaultCollapsed:!0,children:(0,x.jsx)(df,{commits:o,isLoading:s,error:c,now:l})})]})},Sf=({item:e,storyName:t,storyColorEnum:n,overlayStatus:r,statusOptions:i,state:a,body:o,bodyIsLoading:s,bodyError:c,comments:l,commentsAreLoading:u,commentsError:d,files:f,filesAreLoading:p,filesError:m,commits:h,commitsAreLoading:g,commitsError:_,stateError:v,pullRequestStatus:y,pullRequestStatusError:b,relatedPullRequests:S,relatedPullRequestsError:ee,now:C,commentComposer:w,operationBar:T,buildImageProxyUrl:E,renderReferenceLink:te,onAddInlineComment:D,onTitleRename:ne,onBodyCheckboxToggle:O,onCommentCheckboxToggle:re,storyEntries:A,agentOptions:j,onCreateIssueFromComment:ae})=>{let oe=a?.state??`open`,se=a?.merged??!1,M=a?.stateReason??``,N=!e.isPr&&oe===`closed`?`Closed`:null,P=da(e.nameWithOwner)??void 0,ce=R(n),le=r===null?e.status===null?null:{name:e.status,color:i.find(t=>t.name===e.status)?.color??`GRAY`}:r,F=le===null?null:R(le.color),ue=p||m!==null?null:f.length,de=u||d!==null?null:l.length,fe=g||_!==null?null:h.length,pe=!u&&d===null&&l.length>0,I=(e,t)=>{let n=ua(e);return n===null?e:`${t}#${n.number}`},L=e=>I(e,`PR `),me=[],he=new Map;for(let t of e.dependedIssueUrls){let e=he.get(t)??0;he.set(t,e+1),me.push({url:t,occurrenceKey:`${t}#${e}`})}let z=[{section:`item state`,message:v},{section:`pull request status`,message:e.isPr?b:null},{section:`description`,message:c},{section:`comments`,message:d},{section:`changed files`,message:e.isPr?m:null},{section:`commits`,message:e.isPr?_:null},{section:`related pull requests`,message:e.isPr?null:ee},...S.flatMap(e=>[{section:`changed files of ${L(e.pullRequest.url)}`,message:e.filesError},{section:`commits of ${L(e.pullRequest.url)}`,message:e.commitsError}])].flatMap(e=>e.message===null?[]:[{section:e.section,message:e.message}]),ge=e.isPr&&y?.found?[{url:e.url,mergeableStatus:y.mergeableStatus}]:[];return(0,x.jsxs)(`article`,{className:`console-detail`,children:[(0,x.jsxs)(`div`,{className:`console-detail-header`,children:[(0,x.jsxs)(`h2`,{className:`console-detail-title`,children:[(0,x.jsx)(Ne,{isPr:e.isPr,state:oe,merged:se,isDraft:!1,stateReason:M}),ne==null?(0,x.jsx)(`span`,{className:`console-detail-title-text`,children:e.title}):(0,x.jsx)(gf,{title:e.title,onTitleRename:ne}),(0,x.jsx)(`span`,{className:`console-detail-number`,children:e.isPr?`PR #${e.number}`:`#${e.number}`})]}),(0,x.jsxs)(`div`,{className:`console-detail-topline`,children:[le!==null&&F!==null&&(0,x.jsx)(`span`,{className:`console-detail-status-chip`,style:{color:F.fg,borderColor:F.border,backgroundColor:F.bg},children:le.name}),e.agent!==null&&e.agent!==``&&(0,x.jsx)(`span`,{className:`console-detail-agent-chip`,children:e.agent}),t!==null&&(0,x.jsxs)(`span`,{className:`console-storytag`,children:[(0,x.jsx)(`span`,{className:`console-story-dot`,style:{backgroundColor:ce.dot}}),t]}),e.isPr&&y?.found&&(0,x.jsx)(bf,{isPassedAllCiJob:y.isPassedAllCiJob,isCiStateSuccess:y.isCiStateSuccess,isBranchOutOfDate:y.isBranchOutOfDate,missingRequiredCheckNames:y.missingRequiredCheckNames}),!e.isPr&&S.map(e=>(0,x.jsxs)(`span`,{className:`console-related-pr-group`,children:[S.length>1&&(0,x.jsx)(`span`,{className:`console-related-pr-label`,children:L(e.pullRequest.url)}),(0,x.jsx)(bf,{isPassedAllCiJob:e.pullRequest.isPassedAllCiJob,isCiStateSuccess:e.pullRequest.isCiStateSuccess,isBranchOutOfDate:e.pullRequest.isBranchOutOfDate,missingRequiredCheckNames:e.pullRequest.missingRequiredCheckNames}),(0,x.jsx)(vf,{mergeableStatus:e.pullRequest.mergeableStatus})]},e.pullRequest.url)),ge.map(e=>(0,x.jsx)(vf,{mergeableStatus:e.mergeableStatus},e.url)),N!==null&&(0,x.jsx)(`span`,{className:`console-detail-closed-label`,children:N})]}),e.dependedIssueUrls.length>0&&(0,x.jsxs)(`div`,{className:`console-detail-depended-issue-url`,children:[(0,x.jsx)(`span`,{className:`console-detail-depended-issue-url-label`,children:`Depended Issue URL`}),me.map(({url:e,occurrenceKey:t})=>{let n=I(e,``);return(0,x.jsx)(`span`,{className:`console-detail-depended-issue-url-link`,children:te?.(e,n)??(0,x.jsx)(`a`,{className:`console-markdown-reference console-markdown-reference-plain`,href:e,target:`_blank`,rel:`noopener noreferrer`,children:n})},t)})]}),(0,x.jsx)(hf,{failures:z}),(0,x.jsxs)(`div`,{className:`console-detail-subbar`,children:[(0,x.jsxs)(`a`,{href:e.url,className:`console-detail-link`,target:`_blank`,rel:`noopener noreferrer`,children:[`#`,e.number]}),(0,x.jsx)(`span`,{className:`console-detail-repo`,children:e.repo}),(0,x.jsxs)(`span`,{className:`console-detail-createdat`,title:ie(e.createdAt),children:[`opened `,k(e.createdAt,C)]}),(0,x.jsx)(ff,{url:e.url}),e.labels.map(e=>(0,x.jsx)(`span`,{className:`console-label-chip`,children:e},e))]})]}),(0,x.jsxs)(`div`,{className:`console-detail-body`,children:[(0,x.jsx)(Rd,{title:`Description`,defaultCollapsed:pe,headerAction:(0,x.jsx)(`a`,{href:e.url,className:`console-panel-open-link`,target:`_blank`,rel:`noopener noreferrer`,children:`open`}),children:c===null?s?(0,x.jsx)(`p`,{className:`console-detail-body-loading`,children:`Loading description...`}):(0,x.jsx)(Ld,{body:o,buildImageProxyUrl:E,renderReferenceLink:te,repoContext:P,onCheckboxToggle:O}):(0,x.jsx)(`p`,{className:`console-detail-body-notloaded`,children:`Not loaded.`})},pe?`desc-collapsed`:`desc-open`),e.isPr&&(0,x.jsx)(Rd,{title:`Changed files`,count:ue,children:(0,x.jsx)(nf,{files:f,isLoading:p,error:m,onAddInlineComment:D})}),(0,x.jsx)(Rd,{title:`Comments`,count:de,children:(0,x.jsx)(cf,{comments:l,isLoading:u,error:d,now:C,buildImageProxyUrl:E,renderReferenceLink:te,repoContext:P,persistenceKey:e.url,issueUrl:e.url,issueTitle:e.title,storyEntries:A,agentOptions:j,onCreateIssueFromComment:ae,onCommentCheckboxToggle:re})}),e.isPr&&(0,x.jsx)(Rd,{title:`Commits`,count:fe,defaultCollapsed:!0,children:(0,x.jsx)(df,{commits:h,isLoading:g,error:_,now:C})}),!e.isPr&&S.map(e=>(0,x.jsx)(xf,{pullRequest:e.pullRequest,body:e.pullRequest.summary?.body??``,bodyIsLoading:!1,files:e.files,filesAreLoading:e.filesAreLoading,filesError:e.filesError,commits:e.commits,commitsAreLoading:e.commitsAreLoading,commitsError:e.commitsError,now:C,buildImageProxyUrl:E,renderReferenceLink:te,onAddInlineComment:D},e.pullRequest.url))]}),(0,x.jsxs)(`div`,{className:`console-detail-dock`,children:[(0,x.jsx)(`div`,{className:`console-detail-dock-composer`,children:w}),(0,x.jsx)(`div`,{className:`console-actionbar`,children:T})]})]})},Cf=({className:e,ariaLabel:t,placeholder:n,currentOption:r,options:i,onSelect:a})=>{let o=(0,y.useRef)({ready:!1,currentOptionId:r?.id??null});return(0,y.useLayoutEffect)(()=>{o.current.ready=!0,o.current.currentOptionId=r?.id??null}),(0,x.jsxs)(`select`,{className:e,defaultValue:r?.id??``,onChange:e=>{if(!o.current.ready||e.target.value===(o.current.currentOptionId??``))return;let t=i.find(t=>t.id===e.target.value);t!==void 0&&a(t)},"aria-label":t,children:[(0,x.jsx)(`option`,{value:``,children:n}),i.map(e=>(0,x.jsx)(`option`,{value:e.id,children:e.name},e.id))]})},wf=({agentOptions:e,currentAgentName:t,currentAgentOptionId:n,onSetAgent:r})=>{if(e.length===0)return null;let i=n==null?t===null?null:e.find(e=>e.name===t)??null:e.find(e=>e.id===n)??null;return(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(Cf,{className:`console-agent-select`,ariaLabel:`Set agent`,placeholder:`— agent —`,currentOption:i,options:e,onSelect:r},i?.id??`none`)})},Tf=({onClose:e,onCommentAndClose:t,onOkAndClose:n,isDraftEmpty:r})=>{let[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=async e=>{if(!(e===void 0||i)){a(!0),s(null);try{await e()}catch(e){s(e instanceof Error?e.message:`failed to post`)}finally{a(!1)}}};return(0,x.jsxs)(`div`,{className:`console-op-group`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>e(`close_not_planned`),children:`Close as not planned`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>e(`close`),children:`Close`}),n!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,disabled:i,onClick:()=>{c(n)},children:`OK & Close`}),t!==void 0&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,disabled:i||r===!0,onClick:()=>{c(t)},children:`Comment & Close`}),o!==null&&(0,x.jsx)(`span`,{role:`alert`,className:`console-op-comment-close-error`,children:o})]})},Ef=({onDeleteAllComments:e,onDeleteStory:t,storyNameForDeletion:n})=>{let[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=()=>{e(),i(!1)},f=()=>{o(!0),u(null)},p=async e=>{if(t){c(!0),u(null);try{await t(e)}catch(e){u(e instanceof Error?e.message:String(e)),c(!1)}}};return(0,x.jsxs)(`div`,{className:`console-op-group`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>i(e=>!e),children:`⚠`}),r&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:d,children:`Delete All Comments`}),t!=null&&(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:f,disabled:a,children:`Delete Story`})]}),a&&(0,x.jsxs)(`div`,{className:`console-story-delete-confirm`,role:`dialog`,"aria-modal":`true`,"aria-label":`Confirm story deletion`,children:[(0,x.jsxs)(`p`,{className:`console-story-delete-confirm-message`,children:[`Delete story option "`,n,`" from the GitHub custom field?`]}),l!==null&&(0,x.jsx)(`p`,{role:`alert`,className:`console-list-error`,children:l}),(0,x.jsxs)(`div`,{className:`console-story-delete-confirm-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>void p(!0),disabled:s,children:s?`Deleting…`:`Delete with child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-danger`,onClick:()=>void p(!1),disabled:s,children:s?`Deleting…`:`Keep child tasks`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>{o(!1),u(null)},disabled:s,children:`Cancel`})]})]})]})},Df=({isManualTriage:e,onSetNextActionDate:t})=>(0,x.jsxs)(`div`,{className:`console-op-group`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1hour`),children:`+1h`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_3hours`),children:`+3h`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_6hours`),children:`+6h`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1day`),children:`+1d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_2days`),children:`+2d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_3days`),children:`+3d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_5days`),children:`+5d`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1week`),children:e?`+1w skip`:`+1w`}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-snooze`,onClick:()=>t(`snooze_1month`),children:`+1mo`})]}),Of=[{action:`unnecessary`,label:`Unnecessary`,variant:`unneeded`},{action:`totally_wrong`,label:`Totally wrong`,variant:`wrong`},{action:`request_changes`,label:`Reject`,variant:`reject`},{action:`approve_and_merge`,label:`Approve & Merge`,variant:`approve`}],kf=`Reject needs an inline comment on the diff.`,Af=({onReview:e,rejectEnabled:t})=>(0,x.jsxs)(`div`,{className:`console-op-group console-op-group-review`,children:[!t&&(0,x.jsx)(`p`,{className:`console-op-requirement`,children:kf}),Of.map(n=>{let r=n.action===`request_changes`&&!t;return(0,x.jsx)(`button`,{type:`button`,className:`console-op-button console-op-button-${n.variant}`,disabled:r,onClick:()=>e(n.action),children:n.label},n.action)})]}),jf=({onSetDependedIssueUrl:e})=>{let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null);return(0,x.jsxs)(`div`,{className:`console-op-group console-op-group-rare-actions`,children:[(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>{n(e=>!e),c(null)},title:`Rare actions`,children:`⋯`}),t&&e!==null&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`input`,{type:`url`,className:`console-settings-modal-input`,placeholder:`Depended issue URL`,value:r,onChange:e=>i(e.target.value),disabled:a}),(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:async()=>{if(e!==null&&r.trim()!==``){o(!0),c(null);try{await e(r.trim()),i(``),n(!1)}catch(e){c(e instanceof Error?e.message:`Failed to set depended issue URL`)}finally{o(!1)}}},disabled:a||r.trim()===``,children:a?`...`:`Set Depended Issue`})]}),s!==null&&(0,x.jsx)(`p`,{className:`console-settings-modal-error`,children:s})]})},Mf=(e,t)=>{let n=t.toLowerCase();return e.find(e=>e.name.toLowerCase()===n)??null},Nf=({statusOptions:e,onSetStatus:t,onSetInTmuxByHuman:n})=>{let r=Oe.map(t=>({name:t,option:Mf(e,t)})).filter(e=>e.option!==null);return r.length===0?null:(0,x.jsx)(`div`,{className:`console-op-group`,children:r.map(({name:e,option:r})=>{let i=R(r.color),a=e===Ee;return(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,style:{color:i.fg,borderColor:i.border,backgroundColor:i.bg},onClick:()=>a?n(r):t(r),children:r.name},r.id)})})},Pf=({storyOptions:e,currentStoryName:t,currentStoryOptionId:n,onSetStory:r})=>{if(e.length===0)return null;let i=n===null?t===null?null:e.find(e=>e.name===t)??null:e.find(e=>e.id===n)??null;return(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(Cf,{className:`console-story-select`,ariaLabel:`Set story`,placeholder:`— story —`,currentOption:i,options:e,onSelect:r},i?.id??`none`)})},Ff=({tab:e,hasPullRequest:t,rejectEnabled:n,statusOptions:r,storyOptions:i,currentStoryName:a,currentStoryOptionId:o,agentOptions:s,currentAgentName:c,currentAgentOptionId:l,handlers:u,storyNameForDeletion:d,onCommentAndClose:f,onOkAndClose:p,isDraftEmpty:m,isVisible:h})=>{let[g,_]=(0,y.useState)(!1);return h?(0,x.jsxs)(`div`,{className:`console-operation-bar`,children:[t&&(0,x.jsx)(Af,{onReview:u.onReview,rejectEnabled:n}),(0,x.jsx)(Df,{isManualTriage:ke(e),onSetNextActionDate:u.onSetNextActionDate}),(0,x.jsx)(Nf,{statusOptions:r,onSetStatus:u.onSetStatus,onSetInTmuxByHuman:u.onSetInTmuxByHuman}),g&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Pf,{storyOptions:i,currentStoryName:a,currentStoryOptionId:o,onSetStory:u.onSetStory}),(0,x.jsx)(wf,{agentOptions:s,currentAgentName:c,currentAgentOptionId:l,onSetAgent:u.onSetAgent})]}),(0,x.jsxs)(`div`,{className:`console-op-group-bottom-row`,children:[(0,x.jsxs)(`div`,{className:`console-op-group-left-pair`,children:[(i.length>0||s.length>0)&&(0,x.jsx)(`div`,{className:`console-op-group`,children:(0,x.jsx)(`button`,{type:`button`,className:`console-op-button`,onClick:()=>_(e=>!e),title:`Change agent or story`,children:`⚙`})}),(0,x.jsx)(jf,{onSetDependedIssueUrl:u.onSetDependedIssueUrl}),(0,x.jsx)(Ef,{onDeleteAllComments:u.onDeleteAllComments,onDeleteStory:u.onDeleteStory,storyNameForDeletion:d})]}),(0,x.jsx)(Tf,{onClose:u.onClose,onCommentAndClose:f,onOkAndClose:p,isDraftEmpty:m})]})]}):null},If=(e,t,n,r)=>{let i=t===null?void 0:e.peek(t),[a,o]=(0,y.useState)(i??r),[s,c]=(0,y.useState)(t!==null&&i===void 0),[l,u]=(0,y.useState)(null);return(0,y.useEffect)(()=>{if(t===null||n===null)return;let r=e.peek(t);if(r!==void 0){o(r),c(!1),u(null);return}let i=!1;return c(!0),u(null),e.load(t,n).then(e=>{i||(o(e),c(!1))}).catch(e=>{i||(u(e instanceof Error?e.message:String(e)),c(!1))}),()=>{i=!0}},[e,t,n]),{data:a,isLoading:s,error:l}},Lf=[],Rf=[],zf=[],Bf=[],$={state:`open`,merged:!1,isPullRequest:!1,title:``,stateReason:``},Vf={found:!1,isConflicted:!1,mergeableStatus:`UNKNOWN`,isPassedAllCiJob:!1,isCiStateSuccess:!1,isBranchOutOfDate:!1,missingRequiredCheckNames:[]},Hf=(e,t,n)=>{let r=t===null?null:`${t.repo}#${t.number}`,i=t===null?null:t.url,a=t?.isPr??!1,o=If(e.body,r,i,``),s=If(e.state,r,i,$),c=If(e.comments,r,i,Lf),l=If(e.files,a?r:null,a?i:null,Rf),u=If(e.commits,a?r:null,a?i:null,zf),d=If(e.prStatus,a?r:null,a?i:null,Vf),f=!a&&((t?.relatedOpenPullRequestUrls.length??0)>0||n===`prs`),p=If(e.relatedPrs,f?r:null,f?i:null,Bf),[m,h]=(0,y.useState)([]);return(0,y.useEffect)(()=>{if(a||p.data.length===0){h([]);return}let t=!1,n=p.data.map(e=>({pullRequest:e,files:Rf,filesAreLoading:!0,filesError:null,commits:zf,commitsAreLoading:!0,commitsError:null}));h(n);let r=(e,n)=>{t||h(t=>t.map(t=>t.pullRequest.url===e?{...t,...n}:t))};for(let t of p.data){let n=t.url;e.files.load(n,t.url).then(e=>r(t.url,{files:e,filesAreLoading:!1})).catch(e=>r(t.url,{filesAreLoading:!1,filesError:e instanceof Error?e.message:String(e)})),e.commits.load(n,t.url).then(e=>r(t.url,{commits:e,commitsAreLoading:!1})).catch(e=>r(t.url,{commitsAreLoading:!1,commitsError:e instanceof Error?e.message:String(e)}))}return()=>{t=!0}},[e,a,p.data]),{state:s.data,body:o.data,bodyIsLoading:o.isLoading,bodyError:o.error,comments:c.data,commentsAreLoading:c.isLoading,commentsError:c.error,files:l.data,filesAreLoading:l.isLoading,filesError:l.error,commits:u.data,commitsAreLoading:u.isLoading,commitsError:u.error,stateError:s.error,pullRequestStatus:a?d.data:null,pullRequestStatusError:a?d.error:null,relatedPullRequests:m,relatedPullRequestsError:a?null:p.error}},Uf=e=>JSON.stringify([e.author,e.createdAt,e.body]),Wf=(e,t)=>{let n=new Set(e.map(Uf));return[...e,...t.filter(e=>!n.has(Uf(e)))]},Gf=({href:e,fallbackText:t,state:n})=>{if(n===null||n.title.trim()===``)return(0,x.jsx)(`a`,{className:`console-markdown-reference console-markdown-reference-plain`,href:e,target:`_blank`,rel:`noopener noreferrer`,children:t});let r=ua(e);return(0,x.jsxs)(`a`,{className:`console-markdown-reference`,href:e,target:`_blank`,rel:`noopener noreferrer`,children:[(0,x.jsx)(Ne,{...fa(n)}),(0,x.jsx)(`span`,{className:`console-markdown-reference-title`,children:n.title}),r!==null&&(0,x.jsxs)(`span`,{className:`console-markdown-reference-number`,children:[`#`,r.number]})]})},Kf=(e,t)=>{let[n,r]=(0,y.useState)(()=>e.peek(t)??null);return(0,y.useEffect)(()=>{let n=e.peek(t);if(n!==void 0){r(n);return}let i=!1;return r(null),e.load(t,t).then(e=>{i||r(e)}).catch(()=>{i||r(null)}),()=>{i=!0}},[e,t]),n},qf=({cache:e,href:t,fallbackText:n})=>{let r=Kf(e,t);return(0,x.jsx)(Gf,{href:t,fallbackText:n,state:r})},Jf=e=>({itemUrl:e.url,projectItemId:e.projectItemId,itemNumber:e.number,repo:e.repo,nameWithOwner:e.nameWithOwner,isPr:e.isPr}),Yf=(e,t,n,r,i)=>({...Jf(t),apiPath:si,requestBody:ui(e,t,n,r,i)}),Xf=(e,t,n,r)=>({...Jf(t),apiPath:ci,requestBody:di(e,t,n,r)}),Zf=(e,t)=>({...Jf(t),apiPath:li,requestBody:fi(e,t)}),Qf=(e,t,n)=>({...Jf(t),apiPath:un,requestBody:pi(e,t,n)}),$f=(e,t,n)=>({...Jf(t),apiPath:Kn,requestBody:{pjcode:e,issueUrl:t.url,dependedIssueUrl:n}}),ep=e=>({...Jf(e),apiPath:En,requestBody:mi(e)}),tp=(e,t,n)=>[Qf(e,t,`ok`),Xf(e,t,`set_status`,{statusName:n.name})],np=`blue`,rp=e=>`Commented — ${et(e)}`,ip=`ok`,ap=(e,t,n)=>{e===void 0?console.error(t,n):e(t,String(n))},op=(e,t,n)=>il(e,t)===n?e:al(e,t),sp=({tab:e,item:t,caches:n,operations:r,pjcode:i,isAirplaneModeOn:a,onOfflineActionsCreate:o,statusOptions:s,storyOptions:c,agentOptions:l,storyColors:u,storyName:d,storyOptionId:f,overlayStatus:p,now:m,initialCommentDraft:h,onCommentDraftChange:g,onQueueAction:_,onCommentError:v,onDeleteStory:b,storyNameForDeletion:S,storyEntries:ee,onCreateIssueFromComment:C})=>{let w=Hf(n,t,e),T=(0,y.useCallback)(e=>ha(e,t.url),[t.url]),E=(0,y.useCallback)((e,t)=>(0,x.jsx)(qf,{cache:n.state,href:e,fallbackText:t}),[n.state]),te=t.isPr||t.relatedOpenPullRequestUrls.length>0||w.relatedPullRequests.length>0,[D,ne]=(0,y.useState)([]),O=(0,y.useCallback)(async(e,t,n,r)=>{ne(i=>[...i,{path:e,line:t,side:n,body:r}])},[]),[k,re]=(0,y.useState)([]),[ie,A]=(0,y.useState)(null),[j,ae]=(0,y.useState)({}),oe=(0,y.useRef)({}),se=(0,y.useRef)({}),M=(0,y.useCallback)(async e=>{let n=n=>(o({payloads:[Qf(n,t,e)],message:rp(t),color:np}),`held_offline`);if(a&&i!=null)return n(i);try{let n=await r.addComment(t,e);return re(e=>[...e,n]),n}catch(e){if(or(e)&&i!=null)return n(i);throw e}},[a,t,o,r,i]),N={onReview:e=>{let n=t.isPr?t.url:w.relatedPullRequests[0]?.pullRequest.url??t.relatedOpenPullRequestUrls[0]??t.url,a=e===`request_changes`?D:[];_({kind:{type:`review`,action:e},item:t,commit:()=>r.reviewPullRequest(t,n,e,a),offline:i==null?void 0:[Yf(i,t,n,e,a)],overlayPatch:{done:!0}})},onSetNextActionDate:e=>{_({kind:{type:`next_action_date`,action:e},item:t,commit:()=>r.setNextActionDate(t,e),offline:i==null?void 0:[Xf(i,t,e)],overlayPatch:{done:!0}})},onSetStory:e=>{_({kind:{type:`set_story`,optionName:e.name},item:t,commit:()=>r.setStory(t,e),offline:i==null?void 0:[Xf(i,t,`set_story`,{storyOptionId:e.id})],overlayPatch:{done:!0,story:{id:e.id,name:e.name,color:e.color}}})},onSetAgent:e=>{_({kind:{type:`set_agent`,optionName:e.name},item:t,commit:()=>r.setAgent(t,e),offline:i==null?void 0:[Xf(i,t,`set_agent`,{agentOptionId:e.id})],overlayPatch:{done:!0}})},onSetStatus:e=>{_({kind:{type:`set_status`,optionName:e.name},item:t,commit:()=>r.setStatus(t,e),offline:i==null?void 0:[Xf(i,t,`set_status`,{statusName:e.name})],overlayPatch:{done:!0,status:{name:e.name,color:e.color}}})},onSetInTmuxByHuman:e=>{_({kind:{type:`set_in_tmux_by_human`,optionName:e.name},item:t,commit:()=>r.setInTmuxByHuman(t,e),offline:i==null?void 0:[Zf(i,t)],overlayPatch:{done:!0,status:{name:e.name,color:e.color}}})},onClose:e=>{_({kind:{type:`close`,action:e},item:t,commit:()=>r.closeIssue(t,e),offline:i==null?void 0:[Xf(i,t,e)],overlayPatch:{done:!0}})},onOkAndAwaitingWorkspace:e=>{_({kind:{type:`ok_and_awaiting_workspace`},item:t,commit:n=>r.okAndMoveToAwaitingWorkspace(t,e,n),offline:i==null?void 0:tp(i,t,e),overlayPatch:{done:!0,status:{name:e.name,color:e.color}}})},onDeleteAllComments:()=>{_({kind:{type:`delete_all_comments`},item:t,commit:()=>r.deleteAllComments(t),offline:[ep(t)]})},onDeleteStory:b??null,onSetDependedIssueUrl:i==null?null:async e=>{if(F===null){await r.setDependedIssueUrl(t,e);return}let n=F;_({kind:{type:`set_status`,optionName:n.name},item:t,commit:i=>cr([()=>r.setDependedIssueUrl(t,e),()=>r.setStatus(t,n)],i),offline:[$f(i,t,e),Xf(i,t,`set_status`,{statusName:n.name})],overlayPatch:{done:!0,status:{name:n.name,color:n.color}}})}},P=(0,y.useCallback)(async e=>{await r.issueRename(t,e)},[t,r]),ce=(0,y.useCallback)(e=>{let n=al(ie??w.body,e),i=il(n,e);A(n);let a=()=>{let t=oe.current[e]??il(w.body,e);A(n=>op(n??w.body,e,t))};r.issueBodyUpdate?.(t,n).then(()=>{oe.current[e]=i,a()},e=>{a(),console.error(`Failed to persist description checkbox toggle`,e)})},[ie,w.body,t,r]),le=(0,y.useCallback)((e,n)=>{let i=al(j[e.id]??e.body,n),a=il(i,n);ae(t=>({...t,[e.id]:i}));let o=`${e.id}:${n}`,s=()=>{let t=se.current[o]??il(e.body,n);ae(r=>({...r,[e.id]:op(r[e.id]??e.body,n,t)}))};r.issueCommentBodyUpdate?.(t,e.id,i).then(()=>{se.current[o]=a,s()},e=>{s(),console.error(`Failed to persist comment checkbox toggle`,e)})},[j,t,r]),F=s.find(e=>e.name===`Awaiting Workspace`)??null,ue=F===null?void 0:async e=>(g?.(``),await new Promise((n,o)=>{let s=!1,c=(e,t)=>{throw ap(v,e,t),o(t),t};_({kind:{type:`set_status`,optionName:F.name},item:t,commit:async a=>{if(a>0||s){try{await r.setStatus(t,F)}catch(e){if(or(e)&&i!=null)throw new sr(1,e);c(`Comment already posted, but retrying the move to Awaiting Workspace status failed: ${String(e)}`,e)}try{await r.onAfterMoveToAwaitingWorkspace?.()}catch(e){ap(v,`Comment posted and status set to Awaiting Workspace, but a post-success refresh action failed: ${String(e)}`,e)}return}try{let i=await r.addCommentAndMoveToAwaitingWorkspace(t,e,F);re(e=>[...e,i]),n(i)}catch(e){let t=e instanceof sr;if(or(t?e.cause:e)&&i!=null)throw n(`held_offline`),e;if(s=!0,t)throw o(e),e;c(`Comment may already be posted; moving to Awaiting Workspace status failed: ${String(e)}`,e)}},offline:i==null?void 0:[Qf(i,t,e),Xf(i,t,`set_status`,{statusName:F.name})],revertAdvance:()=>g?.(e),overlayPatch:{done:!0,status:{name:F.name,color:F.color}}}),a&&i!=null&&n(`held_offline`)})),de=(0,y.useRef)(``),[fe,pe]=(0,y.useState)((h??``).trim().length===0),[I,L]=(0,y.useState)(!0),R=(0,y.useCallback)(e=>{de.current=e,pe(e.trim().length===0),g?.(e)},[g]),me=async e=>{if(i==null){await M(e),N.onClose(`close`);return}_({kind:{type:`close`,action:`close`},item:t,commit:n=>cr([async()=>{let n=await r.addComment(t,e);re(e=>[...e,n])},()=>r.closeIssue(t,`close`)],n),offline:[Qf(i,t,e),Xf(i,t,`close`)],overlayPatch:{done:!0}})},he=async()=>{let e=de.current.trim();e.length!==0&&await me(e)},z=async()=>{_({kind:{type:`ok_and_close`},item:t,commit:e=>cr([async()=>{await r.addComment(t,ip)},()=>r.closeIssue(t,`close`)],e),offline:i==null?void 0:[Qf(i,t,ip),Xf(i,t,`close`)],overlayPatch:{done:!0}})},_e=d??(t.story.trim()===``?null:t.story),ve=f==null?null:ge(u,f),ye=f??t.storyOptionId??null,be=ie??w.body,xe=Wf(w.comments,k).map(e=>j[e.id]===void 0?e:{...e,body:j[e.id]});return(0,x.jsx)(Sf,{item:t,storyName:_e,storyColorEnum:ve,overlayStatus:p,statusOptions:s,state:w.state,stateError:w.stateError,body:be,bodyIsLoading:w.bodyIsLoading,bodyError:w.bodyError,comments:xe,commentsAreLoading:w.commentsAreLoading,commentsError:w.commentsError,files:w.files,filesAreLoading:w.filesAreLoading,filesError:w.filesError,commits:w.commits,commitsAreLoading:w.commitsAreLoading,commitsError:w.commitsError,pullRequestStatus:w.pullRequestStatus,pullRequestStatusError:w.pullRequestStatusError,relatedPullRequests:w.relatedPullRequests,relatedPullRequestsError:w.relatedPullRequestsError,now:m,buildImageProxyUrl:T,renderReferenceLink:E,onAddInlineComment:O,onTitleRename:P,onBodyCheckboxToggle:ce,onCommentCheckboxToggle:le,storyEntries:ee,agentOptions:l,onCreateIssueFromComment:C,commentComposer:(0,x.jsx)(ca,{initiallyOpen:!0,initialDraft:h,onSubmit:M,onDraftChange:R,onOkAndAwaitingWorkspace:F===null?void 0:()=>N.onOkAndAwaitingWorkspace(F),onSubmitAndMoveToAwaitingWorkspace:ue,onUploadFile:e=>r.uploadAttachment(t,e),onOpenChange:L}),operationBar:(0,x.jsx)(Ff,{tab:e,item:t,hasPullRequest:te,rejectEnabled:D.length>0,statusOptions:s,storyOptions:c,currentStoryName:_e,currentStoryOptionId:ye,agentOptions:l,currentAgentName:t.agent,currentAgentOptionId:t.agentOptionId??null,handlers:N,storyNameForDeletion:S,onCommentAndClose:he,onOkAndClose:z,isDraftEmpty:fe,isVisible:I})})},cp=()=>{let e={};for(let t of A)e[t.name]=0;return e},lp=`console`,up=()=>({issueUrl:null,uploadedMarkdownByFileName:new Map,commentedFileNames:new Set}),dp=(e,t,n)=>{let r=[];return t.length>0&&r.push(`${t.length} file(s) failed to upload: ${t.join(`, `)}`),n!==null&&r.push(`the summary comment failed to post: ${n}`),`Task ${e} was created, but ${r.join(`; and `)}.`},fp=(e,t)=>e.title!==t.title||e.body!==t.body||e.storyName!==t.storyName||e.agentOptionId!==t.agentOptionId,pp=async(e,t,{title:n,storyName:r,agentOptionId:i,body:a,files:o},s)=>{let c=s.issueUrl;if(c===null){try{c=await Cn({pjcode:e,title:n,storyName:r??``,nameWithOwner:t,agentOptionId:i??null,body:a??null})}catch(e){throw console.error(`createIssueWithAttachments: failed to create issue`,e),Error(`Failed to create the task. Please try again.`)}s.issueUrl=c}let l=o.filter(e=>!s.uploadedMarkdownByFileName.has(e.name)),u=await Promise.allSettled(l.map(async t=>{let n=mn(new Uint8Array(await t.arrayBuffer())),r=await hn({pjcode:e,url:c,fileName:t.name,contentBase64:n});return{fileName:t.name,markdown:r}})),d=[];u.forEach((e,t)=>{e.status===`fulfilled`?s.uploadedMarkdownByFileName.set(e.value.fileName,e.value.markdown):d.push(l[t].name)});let f=Array.from(s.uploadedMarkdownByFileName.keys()).filter(e=>!s.commentedFileNames.has(e)),p=null;if(f.length>0)try{let t=await fn({pjcode:e,url:c,body:f.map(e=>s.uploadedMarkdownByFileName.get(e)).join(`
101
101
 
102
102
  `)});if(t.posted)for(let e of f)s.commentedFileNames.add(e);else p=t.error}catch(e){console.error(`createIssueWithAttachments: comment post threw`,e),p=`posting the summary comment failed unexpectedly`}if(d.length>0||p!==null)throw Error(dp(c,d,p))},mp=()=>{let e=ji(),t=(0,y.useRef)(e);(0,y.useEffect)(()=>{t.current=e},[e]);let n=$r(),r=Wt(),i=r.status===`on`?r.snapshot:null,{snapshots:a,isLoading:o,error:s,refreshSingleTab:c}=zr(e,i),{timerMode:l,projectMinutes:u,isOpen:d,draftTimerMode:f,draftProjectMinutes:p,openSettings:m,closeSettings:h,saveSettings:g,toggleDraftTimerMode:_,changeDraftMinutes:v}=Qi(),{pjcodes:b,projectUrls:S,fleetTaskCreateUrl:C,nameWithOwnerByPjcode:w,disabledPjcodes:E,workflowStoryEntries:te,workflowAgentOptions:D,isLoading:ne}=Ni(l&&i===null,o),{isTimerExpired:O}=Li(e),k=ki(e??lp),re=Ii(b),ie=xr(re.isOpen),j=(0,y.useMemo)(()=>Ti(k.overlay,a),[k.overlay,a]),ae=(0,y.useMemo)(()=>{let e=cp();for(let t of A){let n=a[t.name];n!==null&&(t.name===`stories`?e[t.name]=n.stories.filter(e=>e.color!==`GRAY`).length:e[t.name]=bi(n.items,j,t.name))}return e},[a,j]),M=oi(e,ae,(0,y.useMemo)(()=>{let e=new Set;for(let t of A){let n=a[t.name];n!==null&&!n.fromCache&&e.add(t.name)}return e},[a]),(0,y.useMemo)(()=>{let e=cp();for(let t of A){let n=a[t.name];n!==null&&(e[t.name]=t.name===`stories`?n.stories.filter(e=>e.color!==`GRAY`).length:n.items.length)}return e},[a])),{activeTab:N,selectedItemKey:P,openItem:ce,closeItem:le}=M,ue=Xi(M.selectTab),{explicitlySelectedPjcode:de,notifyExplicitSelection:fe}=Zr(e),pe=Pi((0,y.useCallback)(e=>{fe(e),mr(`/projects/${e}`)},[fe]));Br(e,N,b,o,l&&i===null);let I=(0,y.useRef)(ea()),L=(0,y.useCallback)(e=>{P!==null&&(e?I.current.set(P,e):I.current.delete(P),ta(I.current))},[P]),R=Wr(i),me=gi(e,R,(0,y.useCallback)(()=>c(`queued`),[c])),z=pr({isAirplaneModeOn:r.status===`on`}),[ge,ye]=(0,y.useState)(()=>Date.now());(0,y.useEffect)(()=>{let e=setInterval(()=>{ye(Date.now())},1e3);return()=>{clearInterval(e)}},[]);let[be,Se]=(0,y.useState)(!1),[Ce,we]=(0,y.useState)(!1),[Te,Ee]=(0,y.useState)({title:``,body:null,storyName:null,agentOptionId:null}),[De,Oe]=(0,y.useState)({title:``,body:null,storyName:null,agentOptionId:null}),[ke,Ae]=(0,y.useState)(null),[je,Me]=(0,y.useState)(null),[Ne,Pe]=(0,y.useState)(()=>navigator.onLine);(0,y.useEffect)(()=>{let e=()=>Pe(!0),t=()=>Pe(!1);return window.addEventListener(`online`,e),window.addEventListener(`offline`,t),()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,t)}},[]);let[Fe,Re]=(0,y.useState)(new Map),[ze,Ve]=(0,y.useState)(new Map),[He,Ue]=(0,y.useState)(new Set);(0,y.useEffect)(()=>{if(Ne&&z.offlineActions.length!==0)for(let e of z.offlineActions)Fe.has(e.id)||He.has(e.id)||(Re(t=>new Map(t).set(e.id,null)),R.client.fetchIssueState(e.itemUrl).then(t=>{Re(n=>new Map(n).set(e.id,t)),e.isPr&&(Ve(t=>new Map(t).set(e.id,null)),R.client.fetchPullRequestStatus(e.itemUrl).then(t=>{Ve(n=>new Map(n).set(e.id,t))}).catch(e=>{console.warn(`Failed to fetch PR status for offline action:`,e)}))}).catch(t=>{console.warn(`Failed to fetch current state for offline action:`,t),Ue(t=>new Set(t).add(e.id))}))},[Ne,z.offlineActions,R.client,Fe,He]);let[We,Ge]=(0,y.useState)(!1),Ke=(0,y.useCallback)(async e=>{Ge(!0);try{await z.confirmOfflineAction(e)}finally{Ge(!1)}},[z]),qe=(0,y.useMemo)(()=>z.offlineActions.map(e=>{let t=Fe.get(e.id)??null,n=ze.get(e.id)??null,r=He.has(e.id);return{id:e.id,message:e.message,color:e.color,itemNumber:e.itemNumber,nameWithOwner:e.nameWithOwner,isPr:e.isPr,currentTitle:r?null:t?.title??null,currentState:r||t===null?null:t.merged?`closed`:t.state,currentPrStatus:n,fetchError:r}}),[z.offlineActions,Fe,ze,He]),Je=a[N],Ye=(0,y.useMemo)(()=>Je===null?[]:xi(Je.items,j,N),[Je,j,N]),[Xe,Qe]=(0,y.useState)(null),$e=(0,y.useMemo)(()=>{if(N!==`prs`)return{};let e={};for(let t of Ye)t.agent!==null&&t.agent!==``&&(e[t.agent]=(e[t.agent]??0)+1);return e},[Ye,N]);(0,y.useEffect)(()=>{N===`prs`&&Xe!==null&&($e[Xe]??0)===0&&Qe(null)},[$e,Xe,N]);let et=(0,y.useMemo)(()=>N!==`prs`||Xe===null?Ye:Ye.filter(e=>e.agent===Xe),[Ye,N,Xe]),tt=(0,y.useMemo)(()=>et.map(e=>vi(e)),[et]),at=Je?.storyOrder??[],ot=(0,y.useMemo)(()=>xe(et,k.overlay,at,Je?.generatedAt??null),[et,k.overlay,at,Je]),st=Je?.storyColors??{},ct=Je?.statusOptions??[],lt=Je?.agentOptions??[],ut=Je?.storyOptions??[],dt=Je?.generatedAt??null,ft=Je?.fromCache??!1,[mt,ht]=(0,y.useState)(null),gt=(0,y.useMemo)(()=>{if(P===null||Je===null)return null;let e=Je.items.find(e=>e.projectItemId===P);if(e!==void 0)return e;for(let e of Je.stories){let t=e.items.find(e=>e.projectItemId===P);if(t!==void 0)return t}return null},[P,Je]);Xr(R,gt,Ye),(0,y.useEffect)(()=>{P!==null&&window.scrollTo({top:0})},[P]),(0,y.useEffect)(()=>{if(e===null&&l&&b.length>0){let e=Object.fromEntries(b.map(e=>[e,1])),t=se(b,null,u,e,{});t!==null&&hr(`/projects/${t}/todo-by-human`)}},[e,l,b,u]),gr(l,O,ae.prs,ae[`todo-by-human`],e,b,u,a.prs!==null,a[`todo-by-human`]!==null,a.prs?.fromCache??!1,a[`todo-by-human`]?.fromCache??!1,de,z.enqueueSequence,P,be||Ce),Zi(l,e,et,P,M.openItem);let _t=ae[N],yt=(0,y.useRef)({tab:N,count:_t});(0,y.useEffect)(()=>{let e=yt.current;if(yt.current={tab:N,count:_t},e.tab===N&&e.count>0&&_t===0){let e=ei(N,ae);e!==null&&(ue(e),le())}},[N,_t,ae,ue,le]);let bt=gt===null?null:Si(k.overlay,gt,a[N]?.generatedAt??null),xt=gt===null?null:_e(gt,k.overlay,a[N]?.generatedAt??null),St=gt===null?null:ve(gt,k.overlay,a[N]?.generatedAt??null),Ct=(0,y.useCallback)(e=>{let t=na(tt,e);t===null?le():ce(t)},[tt,ce,le]),wt=(0,y.useCallback)(e=>{let t=vi(e.item),n=e.overlayPatch;z.enqueue({message:it(e.kind,e.item,N),color:nt(e.kind),commit:e.commit,offline:e.offline,revertAdvance:e.revertAdvance,optimistic:n===void 0?void 0:()=>k.patchOverlay(t,n,N),revertOptimistic:n===void 0?void 0:()=>k.revertOverlayEntry(t),advance:()=>{e.onAdvance?.(),!e.skipAdvance&&rt(e.kind,N)&&Ct(t)}})},[z,N,Ct,k]),Tt=Yi((0,y.useCallback)(e=>{if(P===null||e===null)return;let t=e===`next`?ra(tt,P):V(tt,P);t!==null&&ce(t)},[P,tt,ce])),[Et,Dt]=(0,y.useState)(()=>localStorage.getItem(`console-story-show-archived`)===`true`),Ot=(0,y.useCallback)(()=>{Dt(e=>{let t=!e;return localStorage.setItem(`console-story-show-archived`,String(t)),t})},[]),[kt,At]=(0,y.useState)(()=>localStorage.getItem(`console-story-show-done`)===`true`),jt=(0,y.useCallback)(()=>{At(e=>{let t=!e;return localStorage.setItem(`console-story-show-done`,String(t)),t})},[]),Mt=a.stories,Nt=Mt?.stories??[],Pt=mt!==null&&mt.generatedAt===Mt?.generatedAt?mt.stories:Nt,B=Mt?.defaultNameWithOwner??null,Ft=B===null?null:`https://github.com/${B}/issues/new`,It=(0,y.useMemo)(()=>gt===null||!gt.labels.includes(`story`)?null:Pt.find(e=>e.storyName===gt.story)??null,[gt,Pt]),Lt=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`No project specified in the URL path.`);if(B===null)throw Error(`No repository configured for this project.`);await Cn({pjcode:e,title:n,storyName:t,nameWithOwner:B})},[e,B]),Rt=(0,y.useCallback)(({storyName:n,agentOptionId:r,title:i,body:a,files:o})=>{if(e===null||B===null)return Promise.resolve();let s=e,c=B,l={title:i,storyName:n,agentOptionId:r,body:a,files:o},u=ke!==null&&!fp(ke.params,l)?ke.progress:up();return z.enqueue({message:`Creating task — "${i}"`,color:`blue`,commit:()=>pp(s,c,l,u).catch(e=>{throw t.current===s&&(Ae({params:l,reason:e instanceof Error?e.message:String(e),progress:u}),Se(!0)),e}),advance:()=>{}}),Oe({title:``,body:null,storyName:null,agentOptionId:null}),Promise.resolve()},[e,B,z,ke]),zt=(0,y.useCallback)(({title:n,body:r,storyName:i,agentOptionId:a,files:o})=>{if(C===null||e===null)return Promise.resolve();let s=C.match(/github\.com\/([^/]+\/[^/]+)/);if(s===null)return Promise.resolve();let c=s[1],l=e,u={title:n,storyName:i,agentOptionId:a,body:r,files:o},d=je!==null&&!fp(je.params,u)?je.progress:up();return z.enqueue({message:`Creating task — "${n}"`,color:`blue`,commit:()=>pp(l,c,u,d).catch(e=>{throw t.current===l&&(Me({params:u,reason:e instanceof Error?e.message:String(e),progress:d}),we(!0)),e}),advance:()=>{}}),Ee({title:``,body:null,storyName:null,agentOptionId:null}),Promise.resolve()},[C,e,z,je]),Bt=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`No project specified in the URL path.`);await Tn({pjcode:e,storyOptionId:t,direction:n});let r=Pt.findIndex(e=>e.storyOptionId===t);if(r!==-1){let e=r+(n===`up`?-1:1);if(e>=0&&e<Pt.length){let t=[...Pt],n=t[r];t[r]=t[e],t[e]=n,ht({generatedAt:Mt?.generatedAt,stories:t})}}},[e,Pt,Mt?.generatedAt]),Vt=(0,y.useCallback)(async t=>{if(e===null)throw Error(`No project specified in the URL path.`);let n=await _n({pjcode:e,storyName:t});if(n.length>0){let e=n.map(e=>{let t=Pt.find(t=>t.storyOptionId===e.id);return{storyOptionId:e.id,storyName:e.name,color:e.color,description:t?.description??``,openItemCount:t?.openItemCount??0,storyViewUrl:t?.storyViewUrl??null,items:t?.items??[]}});ht({generatedAt:Mt?.generatedAt,stories:e})}},[e,Pt,Mt?.generatedAt]),Ht=(0,y.useCallback)((e,t)=>{Oe({title:t,body:null,storyName:e,agentOptionId:null}),Se(!0)},[]),[Ut,Gt]=(0,y.useState)({}),[Kt,qt]=(0,y.useState)(null),[Jt,Yt]=(0,y.useState)({}),Xt=(0,y.useCallback)((t,n)=>{let r=Pt.find(e=>e.storyOptionId===t)?.color;if(qt(t),Gt(e=>({...e,[t]:n})),Yt(e=>{let n={...e};return delete n[t],n}),e===null||B===null){Gt(e=>r===void 0?e:{...e,[t]:r}),Yt(e=>({...e,[t]:`No project or repository configured.`})),qt(e=>e===t?null:e);return}Sn({pjcode:e,storyOptionId:t,newColor:n,nameWithOwner:B}).catch(e=>{Gt(e=>r===void 0?e:{...e,[t]:r}),Yt(n=>({...n,[t]:e instanceof Error?e.message:String(e)}))}).finally(()=>{qt(e=>e===t?null:e)})},[e,B,Pt]),Zt=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`No project specified in the URL path.`);await kn({pjcode:e,storyOptionId:t,deleteChildTasks:n}),ht({generatedAt:Mt?.generatedAt,stories:Pt.filter(e=>e.storyOptionId!==t)})},[e,Pt,Mt?.generatedAt]),Qt=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`No project specified in the URL path.`);await jn({pjcode:e,storyOptionId:t,newName:n});let r=Pt.map(e=>e.storyOptionId===t?{...e,storyName:n}:e);ht({generatedAt:Mt?.generatedAt,stories:r})},[e,Pt,Mt?.generatedAt]),$t=(0,y.useCallback)(async(t,n)=>{if(e===null)throw Error(`No project specified in the URL path.`);await Nn({pjcode:e,storyOptionId:t,description:n});let r=Pt.map(e=>e.storyOptionId===t?{...e,description:n}:e);ht({generatedAt:Mt?.generatedAt,stories:r})},[e,Pt,Mt?.generatedAt]),en=Wi(Ye,R.comments,N===`prs`),tn=(0,y.useCallback)((t,n)=>{wt({kind:{type:`ok_and_awaiting_workspace`},item:t,commit:e=>me.okAndMoveToAwaitingWorkspace(t,n,e),offline:e===null?void 0:tp(e,t,n),skipAdvance:!0,overlayPatch:{done:!0,status:{name:n.name,color:n.color}}})},[wt,me,e]),nn=(0,y.useCallback)(()=>{ie.save(),re.save()},[ie,re]);return(0,x.jsxs)(`main`,{className:`console-app`,children:[(0,x.jsx)(pt,{pendingEntries:z.pending,errorEntries:z.error,displayLimit:4,onUndo:z.undo,onDismiss:z.dismiss,onDismissError:z.dismissError}),(0,x.jsx)(vt,{actions:qe,isOnline:Ne,isConfirming:We,onConfirm:Ke,onDiscard:z.discardOfflineAction}),re.isOpen&&(0,x.jsx)(ee,{pjcodes:b,inputValues:re.inputValues,onChangeInput:re.changeInput,isLoading:re.isLoading,isSaving:re.isSaving,error:re.error,nameWithOwnerByPjcode:w,showExecutiveSummaryAndActionButtonOnAwaitingOwnerList:ie.draftShowExecutiveSummaryAndActionButton,onChangeShowExecutiveSummaryAndActionButtonOnAwaitingOwnerList:ie.toggleDraft,onSave:nn,onClose:re.close}),(0,x.jsx)(oe,{activeTab:N,counts:ae,pjcode:e,pjcodes:b,disabledPjcodes:E,generatedAt:dt,fromCache:ft,tabHref:M.tabHref,onSelectTab:ue,onSelectProject:pe,settingsButton:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(F,{isOpen:d,isTimerActive:l,timerMode:f,projectMinutes:p,pjcodes:b,isLoadingPjcodes:ne,onOpen:m,onToggleTimerMode:_,onChangeMinutes:v,onSave:g,onClose:h}),(0,x.jsx)(`button`,{type:`button`,className:`console-tab-settings-button`,"aria-label":`Open max settings`,onClick:re.open,children:`⚙`}),e!==null&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{type:`button`,className:`console-task-create-button`,disabled:B===null||Pt.length===0,onClick:()=>Se(!0),"aria-label":`Create new task`,title:`Create new task`,children:(0,x.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,x.jsx)(`path`,{d:`M18.375 2.625a2.121 2.121 0 0 1 3 3L7 18l-4 1 1-4Z`})]})}),be&&(0,x.jsx)(he,{storyEntries:Pt,agentOptions:lt,workflowStoryEntries:te??void 0,workflowAgentOptions:D??void 0,initialDestination:`project`,onSubmitProject:Rt,onSubmitWorkflow:C===null?void 0:zt,onClose:()=>{Se(!1),Ae(null)},initialDraft:ke===null?De:{title:ke.params.title,body:ke.params.body,storyName:ke.params.storyName,agentOptionId:ke.params.agentOptionId,files:ke.params.files},initialSubmitError:ke?.reason??null,onDraftChange:Oe,fleetTaskCreateUrl:C,newIssueUrl:Ft})]})]}),airplaneModeEnabled:n.airplaneMode||r.status!==`off`,airplaneModeStatus:r.status,airplaneModeProgress:r.progress,airplaneModeCapturedAt:i?.capturedAt??null,airplaneModeFailures:r.failures,airplaneModeRetryTargetUrls:r.retryTargetUrls,onAirplaneModeStartSync:r.startSync,onAirplaneModeTurnOff:r.turnOff,onAirplaneModeRetryFailed:r.retryFailed,projectUrl:e===null?null:S?.[e]??null,onFleetTaskCreate:C===null?null:()=>we(!0),now:ge}),Ce&&(0,x.jsx)(he,{storyEntries:Pt,agentOptions:lt,workflowStoryEntries:te??void 0,workflowAgentOptions:D??void 0,initialDraft:je===null?Te:{title:je.params.title,body:je.params.body,storyName:je.params.storyName,agentOptionId:je.params.agentOptionId,files:je.params.files},initialSubmitError:je?.reason??null,onDraftChange:Ee,initialDestination:`workflow`,onSubmitProject:Rt,onSubmitWorkflow:zt,onClose:()=>{we(!1),Me(null)},containerClassName:`console-fleet-task-create-dialog-container`}),(0,x.jsx)(T,{timerEndsAt:Je?.timerEndsAt??null,timerTotalSeconds:Je?.timerTotalSeconds??null,now:ge}),N===`stories`&&gt===null?(0,x.jsx)(`div`,{className:`console-list-screen`,children:(0,x.jsx)(Ze,{stories:Pt,isLoading:o,error:s,showArchived:Et,showDone:kt,onCreateIssue:Lt,onAddStory:Vt,onSelectColor:Xt,onToggleArchived:Ot,onToggleDone:jt,onReorderStory:Bt,onDeleteStory:Zt,onRenameStory:Qt,onUpdateDescription:$t,onStoryTaskCreateEdit:Ht,optimisticColors:Ut,colorChangeInFlight:Kt,colorErrors:Jt,onOpenItem:e=>M.openItem(e.projectItemId)})}):gt===null?N===`queued`?(0,x.jsx)(`div`,{className:`console-list-screen`,children:(0,x.jsx)(Be,{rows:ot,storyColors:st,statusOptions:ct,agentOptions:lt,activeItemId:null,isLoading:o,error:s,onSelectItem:e=>M.openItem(e.projectItemId)})}):N===`prs`?(0,x.jsxs)(`div`,{className:`console-list-screen`,children:[(0,x.jsx)(Le,{agentOptions:lt,agentCounts:$e,selectedAgent:Xe,onAgentChange:Qe}),(0,x.jsx)(Ie,{rows:ot,storyColors:st,statusOptions:ct,activeItemId:null,now:ge,isLoading:o,error:s,onSelectItem:e=>M.openItem(e.projectItemId),executiveSummaries:ie.showExecutiveSummaryAndActionButton?en:void 0,onOkAndAwaitingWorkspace:ie.showExecutiveSummaryAndActionButton?tn:void 0})]}):(0,x.jsx)(`div`,{className:`console-list-screen`,children:(0,x.jsx)(Ie,{rows:ot,storyColors:st,statusOptions:ct,activeItemId:null,now:ge,isLoading:o,error:s,onSelectItem:e=>M.openItem(e.projectItemId)})}):(0,x.jsx)(`div`,{className:`console-detail-screen`,ref:Tt,children:(0,x.jsx)(sp,{tab:N,item:gt,caches:R,operations:me,pjcode:e,isAirplaneModeOn:r.status===`on`,onOfflineActionsCreate:z.offlineActionsCreate,statusOptions:ct,storyOptions:ut,agentOptions:lt,storyEntries:Pt,storyColors:st,storyName:xt,storyOptionId:St,overlayStatus:bt,now:ge,initialCommentDraft:I.current.get(gt.projectItemId)??``,onCommentDraftChange:L,onQueueAction:wt,onCommentError:(e,t)=>z.showError(e,t),onDeleteStory:It===null?null:async e=>{await Zt(It.storyOptionId,e),P!==null&&Ct(P)},storyNameForDeletion:It?.storyName??null,onCreateIssueFromComment:C===null?void 0:{onSubmitProject:Rt,onSubmitWorkflow:zt}},gt.projectItemId)})]})};`serviceWorker`in navigator&&navigator.serviceWorker.register(`/sw.js`).catch(e=>{console.warn(`Service worker registration failed:`,e)});var hp=document.getElementById(`root`);if(hp===null)throw Error(`Root container #root not found`);(0,b.createRoot)(hp).render((0,x.jsx)(y.StrictMode,{children:(0,x.jsx)(mp,{})}));