@staff0rd/assist 0.775.2 → 0.775.4
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.
|
@@ -3973,7 +3973,7 @@ ${f.join(`
|
|
|
3973
3973
|
`))),this._register(this._terminal.onA11yTab(o=>this._handleTab(o))),this._register(this._terminal.onKey(o=>this._handleKey(o.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(En(i,"selectionchange",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(ia(()=>{Shr?this._debugRootContainer.remove():this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(" ")}_handleChar(e){this._liveRegionLineCount<Thr+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
|
|
3974
3974
|
`&&(this._liveRegionLineCount++,this._liveRegionLineCount===Thr+1&&(this._liveRegion.textContent+=uFe.get())))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){let r=this._terminal.buffer,n=r.lines.length.toString();for(let i=e;i<=t;i++){let o=r.lines.get(r.ydisp+i),a=[],s=o?.translateToString(!0,void 0,void 0,a)||"",l=(r.ydisp+i+1).toString(),u=this._rowElements[i];u&&(s.length===0?(u.textContent="\xA0",this._rowColumns.set(u,[0,1])):(u.textContent=s,this._rowColumns.set(u,a)),u.setAttribute("aria-posinset",l),u.setAttribute("aria-setsize",n),this._alignRowWidth(u))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){let r=e.target,n=this._rowElements[t===0?1:this._rowElements.length-2],i=r.getAttribute("aria-posinset"),o=t===0?"1":`${this._terminal.buffer.lines.length}`;if(i===o||e.relatedTarget!==n)return;let a,s;if(t===0?(a=r,s=this._rowElements.pop(),this._rowContainer.removeChild(s)):(a=this._rowElements.shift(),s=r,this._rowContainer.removeChild(a)),a.removeEventListener("focus",this._topBoundaryFocusListener),s.removeEventListener("focus",this._bottomBoundaryFocusListener),t===0){let l=this._createAccessibilityTreeNode();this._rowElements.unshift(l),this._rowContainer.insertAdjacentElement("afterbegin",l)}else{let l=this._createAccessibilityTreeNode();this._rowElements.push(l),this._rowContainer.appendChild(l)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(t===0?-1:1),this._rowElements[t===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let e=this._coreBrowserService.mainDocument.getSelection();if(!e)return;if(e.isCollapsed){this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection();return}if(!e.anchorNode||!e.focusNode){console.error("anchorNode and/or focusNode are null");return}let t={node:e.anchorNode,offset:e.anchorOffset},r={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(r.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===r.node&&t.offset>r.offset)&&([t,r]=[r,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;let n=this._rowElements.slice(-1)[0];if(r.node.compareDocumentPosition(n)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(r={node:n,offset:n.textContent?.length??0}),!this._rowContainer.contains(r.node))return;let i=({node:s,offset:l})=>{let u=s instanceof Text?s.parentNode:s,f=parseInt(u?.getAttribute("aria-posinset"),10)-1;if(isNaN(f))return console.warn("row is invalid. Race condition?"),null;let d=this._rowColumns.get(u);if(!d)return console.warn("columns is null. Race condition?"),null;let h=l<d.length?d[l]:d.slice(-1)[0]+1;return h>=this._terminal.cols&&(++f,h=0),{row:f,column:h}},o=i(t),a=i(r);if(!(!o||!a)){if(o.row>a.row||o.row===a.row&&o.column>=a.column)throw new Error("invalid range");this._terminal.select(o.column,o.row,(a.row-o.row)*this._terminal.cols-o.column+a.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let t=this._rowContainer.children.length;t<this._terminal.rows;t++)this._rowElements[t]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[t]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let e=this._coreBrowserService.mainDocument.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e]),this._alignRowWidth(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(e){e.style.transform="";let t=e.getBoundingClientRect().width,r=this._rowColumns.get(e)?.slice(-1)?.[0];if(!r)return;let n=r*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${n/t})`}};lge=as([Tr(1,jFe),Tr(2,R2),Tr(3,A2)],lge);var qFe=class extends Wn{constructor(e,t,r,n,i){super(),this._element=e,this._mouseService=t,this._renderService=r,this._bufferService=n,this._linkProviderService=i,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new cr),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new cr),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(ia(()=>{gR(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this._register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this._register(En(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(En(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register(En(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register(En(this._element,"mouseup",this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;let r=e.composedPath();for(let n=0;n<r.length;n++){let i=r[n];if(i.classList.contains("xterm"))break;if(i.classList.contains("xterm-hover"))return}(!this._lastBufferCell||t.x!==this._lastBufferCell.x||t.y!==this._lastBufferCell.y)&&(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized){this._clearCurrentLink(),this._askForLink(e,!1),this._wasResized=!1;return}this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){(!this._activeProviderReplies||!t)&&(this._activeProviderReplies?.forEach(n=>{n?.forEach(i=>{i.link.dispose&&i.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(let[n,i]of this._linkProviderService.linkProviders.entries())t?this._activeProviderReplies?.get(n)&&(r=this._checkLinkProviderResult(n,e,r)):i.provideLinks(e.y,o=>{if(this._isMouseOut)return;let a=o?.map(s=>({link:s}));this._activeProviderReplies?.set(n,a),r=this._checkLinkProviderResult(n,e,r),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,t){let r=new Set;for(let n=0;n<t.size;n++){let i=t.get(n);if(i)for(let o=0;o<i.length;o++){let a=i[o],s=a.link.range.start.y<e?0:a.link.range.start.x,l=a.link.range.end.y>e?this._bufferService.cols:a.link.range.end.x;for(let u=s;u<=l;u++){if(r.has(u)){i.splice(o--,1);break}r.add(u)}}}}_checkLinkProviderResult(e,t,r){if(!this._activeProviderReplies)return r;let n=this._activeProviderReplies.get(e),i=!1;for(let o=0;o<e;o++)(!this._activeProviderReplies.has(o)||this._activeProviderReplies.get(o))&&(i=!0);if(!i&&n){let o=n.find(a=>this._linkAtPosition(a.link,t));o&&(r=!0,this._handleNewLink(o))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!r)for(let o=0;o<this._activeProviderReplies.size;o++){let a=this._activeProviderReplies.get(o)?.find(s=>this._linkAtPosition(s.link,t));if(a){r=!0,this._handleNewLink(a);break}}return r}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink&&oUn(this._mouseDownLink.link,this._currentLink.link)&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){!this._currentLink||!this._lastMouseEvent||(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,gR(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0?!0:e.link.decorations.underline,pointerCursor:e.link.decorations===void 0?!0:e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:r=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==r&&(this._currentLink.state.decorations.pointerCursor=r,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",r))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:r=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==r&&(this._currentLink.state.decorations.underline=r,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,r))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(r=>{if(!this._currentLink)return;let n=r.start===0?0:r.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+r.end;if(this._currentLink.link.range.start.y>=n&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(n,i),this._lastMouseEvent)){let o=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);o&&this._askForLink(o,!1)}})))}_linkHover(e,t,r){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),t.hover&&t.hover(r,t.text)}_fireUnderlineEvent(e,t){let r=e.range,n=this._bufferService.buffer.ydisp,i=this._createLinkUnderlineEvent(r.start.x-1,r.start.y-n-1,r.end.x,r.end.y-n-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(i)}_linkLeave(e,t,r){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),t.leave&&t.leave(r,t.text)}_linkAtPosition(e,t){let r=e.range.start.y*this._bufferService.cols+e.range.start.x,n=e.range.end.y*this._bufferService.cols+e.range.end.x,i=t.y*this._bufferService.cols+t.x;return r<=i&&i<=n}_positionFromMouseEvent(e,t,r){let n=r.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(n)return{x:n[0],y:n[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,r,n,i){return{x1:e,y1:t,x2:r,y2:n,cols:this._bufferService.cols,fg:i}}};qFe=as([Tr(1,YFe),Tr(2,A2),Tr(3,Of),Tr(4,Ohr)],qFe);function oUn(e,t){return e.text===t.text&&e.range.start.x===t.range.start.x&&e.range.start.y===t.range.start.y&&e.range.end.x===t.range.end.x&&e.range.end.y===t.range.end.y}var aUn=class extends ZHn{constructor(e={}){super(e),this._linkifier=this._register(new q9),this.browser=cpr,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new q9),this._onCursorMove=this._register(new cr),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new cr),this.onKey=this._onKey.event,this._onRender=this._register(new cr),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new cr),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new cr),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new cr),this.onBell=this._onBell.event,this._onFocus=this._register(new cr),this._onBlur=this._register(new cr),this._onA11yCharEmitter=this._register(new cr),this._onA11yTabEmitter=this._register(new cr),this._onWillOpen=this._register(new cr),this._setup(),this._decorationService=this._instantiationService.createInstance(tUn),this._instantiationService.setService(qj,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(Yzn),this._instantiationService.setService(Ohr,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(dFe)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(t=>this.refresh(t?.start??0,t?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(t=>this._reportWindowsOptions(t))),this._register(this._inputHandler.onColor(t=>this._handleColorEvent(t))),this._register(ou.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(ou.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(ou.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(ou.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(t=>this._afterResize(t.cols,t.rows))),this._register(ia(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(let t of e){let r,n="";switch(t.index){case 256:r="foreground",n="10";break;case 257:r="background",n="11";break;case 258:r="cursor",n="12";break;default:r="ansi",n="4;"+t.index}switch(t.type){case 0:let i=na.toColorRGB(r==="ansi"?this._themeService.colors.ansi[t.index]:this._themeService.colors[r]);this.coreService.triggerDataEvent(`${$t.ESC}]${n};${GHn(i)}${spr.ST}`);break;case 1:if(r==="ansi")this._themeService.modifyColors(o=>o.ansi[t.index]=Js.toColor(...t.color));else{let o=r;this._themeService.modifyColors(a=>a[o]=Js.toColor(...t.color))}break;case 2:this._themeService.restoreColor(t.index);break}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(lge,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent($t.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent($t.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;let r=Math.min(this.buffer.x,this.cols-1),n=this._renderService.dimensions.css.cell.height,i=t.getWidth(r),o=this._renderService.dimensions.css.cell.width*i,a=this.buffer.y*this._renderService.dimensions.css.cell.height,s=r*this._renderService.dimensions.css.cell.width;this.textarea.style.left=s+"px",this.textarea.style.top=a+"px",this.textarea.style.width=o+"px",this.textarea.style.height=n+"px",this.textarea.style.lineHeight=n+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this._register(En(this.element,"copy",t=>{this.hasSelection()&&NFn(t,this._selectionService)}));let e=t=>BFn(t,this.textarea,this.coreService,this.optionsService);this._register(En(this.textarea,"paste",e)),this._register(En(this.element,"paste",e)),upr?this._register(En(this.element,"mousedown",t=>{t.button===2&&Cdr(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(En(this.element,"contextmenu",t=>{Cdr(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),r$e&&this._register(En(this.element,"auxclick",t=>{t.button===1&&khr(t,this.textarea,this.screenElement)}))}_bindKeys(){this._register(En(this.textarea,"keyup",e=>this._keyUp(e),!0)),this._register(En(this.textarea,"keydown",e=>this._keyDown(e),!0)),this._register(En(this.textarea,"keypress",e=>this._keyPress(e),!0)),this._register(En(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this._register(En(this.textarea,"compositionupdate",e=>this._compositionHelper.compositionupdate(e))),this._register(En(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this._register(En(this.textarea,"input",e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw new Error("Terminal requires a parent element.");if(e.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService){this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView);return}this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),e.appendChild(this.element);let t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),t.appendChild(this._viewportElement),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._register(En(this.screenElement,"mousemove",i=>this.updateCursorStyle(i))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement);let r=this.textarea=this._document.createElement("textarea");this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",cFe.get()),hpr||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange("disableStdin",()=>r.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(qzn,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(R2,this._coreBrowserService),this._register(En(this.textarea,"focus",i=>this._handleTextAreaFocus(i))),this._register(En(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(DFe,this._document,this._helperContainer),this._instantiationService.setService(uge,this._charSizeService),this._themeService=this._instantiationService.createInstance(FFe),this._instantiationService.setService(j9,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(oge),this._instantiationService.setService(Dhr,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(NFe,this.rows,this.screenElement)),this._instantiationService.setService(A2,this._renderService),this._register(this._renderService.onRenderedViewportChange(i=>this._onRender.fire(i))),this.onResize(i=>this._renderService.resize(i.cols,i.rows)),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(LFe,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(OFe),this._instantiationService.setService(YFe,this._mouseService);let n=this._linkifier.value=this._register(this._instantiationService.createInstance(qFe,this.screenElement));this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this._register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this._register(this.onBlur(()=>this._renderService.handleBlur())),this._register(this.onFocus(()=>this._renderService.handleFocus())),this._viewport=this._register(this._instantiationService.createInstance(AFe,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(i=>{super.scrollLines(i,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(BFe,this.element,this.screenElement,n)),this._instantiationService.setService(GFn,this._selectionService),this._register(this._selectionService.onRequestScrollLines(i=>this.scrollLines(i.amount,i.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(i=>this._renderService.handleSelectionChanged(i.start,i.end,i.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(i=>{this.textarea.value=i,this.textarea.focus(),this.textarea.select()})),this._register(ou.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(PFe,this.screenElement)),this._register(En(this.element,"mousedown",i=>this._selectionService.handleMouseDown(i))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(lge,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",i=>this._handleScreenReaderModeOptionChange(i))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(ige,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",i=>{!this._overviewRulerRenderer&&i&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(ige,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(IFe,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,t=this.element;function r(o){let a=e._mouseService.getMouseReportCoords(o,e.screenElement);if(!a)return!1;let s,l;switch(o.overrideType||o.type){case"mousemove":l=32,o.buttons===void 0?(s=3,o.button!==void 0&&(s=o.button<3?o.button:3)):s=o.buttons&1?0:o.buttons&4?1:o.buttons&2?2:3;break;case"mouseup":l=0,s=o.button<3?o.button:3;break;case"mousedown":l=1,s=o.button<3?o.button:3;break;case"wheel":if(e._customWheelEventHandler&&e._customWheelEventHandler(o)===!1)return!1;let u=o.deltaY;if(u===0||e.coreMouseService.consumeWheelEvent(o,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;l=u<0?0:1,s=4;break;default:return!1}return l===void 0||s===void 0||s>4?!1:e.coreMouseService.triggerMouseEvent({col:a.col,row:a.row,x:a.x,y:a.y,button:s,action:l,ctrl:o.ctrlKey,alt:o.altKey,shift:o.shiftKey})}let n={mouseup:null,wheel:null,mousedrag:null,mousemove:null},i={mouseup:o=>(r(o),o.buttons||(this._document.removeEventListener("mouseup",n.mouseup),n.mousedrag&&this._document.removeEventListener("mousemove",n.mousedrag)),this.cancel(o)),wheel:o=>(r(o),this.cancel(o,!0)),mousedrag:o=>{o.buttons&&r(o)},mousemove:o=>{o.buttons||r(o)}};this._register(this.coreMouseService.onProtocolChange(o=>{o?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(o)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),o&8?n.mousemove||(t.addEventListener("mousemove",i.mousemove),n.mousemove=i.mousemove):(t.removeEventListener("mousemove",n.mousemove),n.mousemove=null),o&16?n.wheel||(t.addEventListener("wheel",i.wheel,{passive:!1}),n.wheel=i.wheel):(t.removeEventListener("wheel",n.wheel),n.wheel=null),o&2?n.mouseup||(n.mouseup=i.mouseup):(this._document.removeEventListener("mouseup",n.mouseup),n.mouseup=null),o&4?n.mousedrag||(n.mousedrag=i.mousedrag):(this._document.removeEventListener("mousemove",n.mousedrag),n.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(En(t,"mousedown",o=>{if(o.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(o)))return r(o),n.mouseup&&this._document.addEventListener("mouseup",n.mouseup),n.mousedrag&&this._document.addEventListener("mousemove",n.mousedrag),this.cancel(o)})),this._register(En(t,"wheel",o=>{if(!n.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(o)===!1)return!1;if(!this.buffer.hasScrollback){if(o.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(o,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(o,!0);let a=$t.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(o.deltaY<0?"A":"B");return this.coreService.triggerDataEvent(a,!0),this.cancel(o,!0)}}},{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,t),this.refresh(0,this.rows-1)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){e&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}paste(e){_hr(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");let t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return this._selectionService?this._selectionService.hasSelection:!1}select(e,t,r){this._selectionService.setSelection(e,t,r)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(!(!this._selectionService||!this._selectionService.hasSelection))return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;let t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;!t&&(e.key==="Dead"||e.key==="AltGraph")&&(this._unprocessedDeadKey=!0);let r=JHn(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),r.type===3||r.type===2){let n=this.rows-1;return this.scrollLines(r.type===2?-n:n),this.cancel(e,!0)}if(r.type===1&&this.selectAll(),this._isThirdLevelShift(this.browser,e)||(r.cancel&&this.cancel(e,!0),!r.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.key.length===1&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)return!0;if(this._unprocessedDeadKey)return this._unprocessedDeadKey=!1,!0;if((r.key===$t.ETX||r.key===$t.CR)&&(this.textarea.value=""),this._onKey.fire({key:r.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(r.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)return this.cancel(e,!0);this._keyDownHandled=!0}_isThirdLevelShift(e,t){let r=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState("AltGraph");return t.type==="keypress"?r:r&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,!(this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)&&(sUn(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(e.which===null||e.which===void 0)t=e.keyCode;else if(e.which!==0&&e.charCode!==0)t=e.which;else return!1;return!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)?!1:(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&e.inputType==="insertText"&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){if(e===this.cols&&t===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,t)}_afterResize(e,t){this._charSizeService?.measure()}clear(){if(!(this.buffer.ybase===0&&this.buffer.y===0)){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(Qs));this._onScroll.fire({position:this.buffer.ydisp}),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;let e=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this._customKeyEventHandler=e,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains("focus")?this.coreService.triggerDataEvent($t.ESC+"[I"):this.coreService.triggerDataEvent($t.ESC+"[O")}_reportWindowsOptions(e){if(this._renderService)switch(e){case 0:let t=this._renderService.dimensions.css.canvas.width.toFixed(0),r=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${$t.ESC}[4;${r};${t}t`);break;case 1:let n=this._renderService.dimensions.css.cell.width.toFixed(0),i=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${$t.ESC}[6;${i};${n}t`);break}}cancel(e,t){if(!(!this.options.cancelEvents&&!t))return e.preventDefault(),e.stopPropagation(),!1}};function sUn(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var lUn=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){let r={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(r),t.dispose=()=>this._wrappedAddonDispose(r),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let r=0;r<this._addons.length;r++)if(this._addons[r]===e){t=r;break}if(t===-1)throw new Error("Could not dispose an addon that has not been loaded");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}},cUn=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new Fm)}translateToString(e,t,r){return this._line.translateToString(e,t,r)}},Chr=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){let t=this._buffer.lines.get(e);if(t)return new cUn(t)}getNullCell(){return new Fm}},uUn=class extends Wn{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new cr),this.onBufferChange=this._onBufferChange.event,this._normal=new Chr(this._core.buffers.normal,"normal"),this._alternate=new Chr(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}},fUn=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,r=>t(r.toArray()))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,(r,n)=>t(r,n.toArray()))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}},dUn=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}},hUn=["cols","rows"],W1=0,Cpr=class extends Wn{constructor(e){super(),this._core=this._register(new aUn(e)),this._addonManager=this._register(new lUn),this._publicOptions={...this._core.options};let t=n=>this._core.options[n],r=(n,i)=>{this._checkReadonlyOptions(n),this._core.options[n]=i};for(let n in this._core.options){let i={get:t.bind(this,n),set:r.bind(this,n)};Object.defineProperty(this._publicOptions,n,i)}}_checkReadonlyOptions(e){if(hUn.includes(e))throw new Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new fUn(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new dUn(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this._register(new uUn(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let e=this._core.coreService.decPrivateModes,t="none";switch(this._core.coreMouseService.activeProtocol){case"X10":t="x10";break;case"VT200":t="vt200";break;case"DRAG":t="drag";break;case"ANY":t="any";break}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,synchronizedOutputMode:e.synchronizedOutput,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(let t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,r){this._verifyIntegers(e,t,r),this._core.select(e,t,r)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(`\r
|
|
3975
3975
|
`,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return cFe.get()},set promptLabel(e){cFe.set(e)},get tooMuchOutput(){return uFe.get()},set tooMuchOutput(e){uFe.set(e)}}}_verifyIntegers(...e){for(W1 of e)if(W1===1/0||isNaN(W1)||W1%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(W1 of e)if(W1&&(W1===1/0||isNaN(W1)||W1%1!==0||W1<0))throw new Error("This API only accepts positive integers")}};var n$e=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function pUn(e){try{return!!new URL(e).host}catch{return!1}}function _pr(e,t){let r=e(t),n=e(t+1);return!!r&&!!n&&(n.isWrapped||r.isFull)}function mUn(e,t){let r=[];for(let n=t;n-t<64;n++){let i=e(n);if(!i||(r.push(i.text),!_pr(e,n)))break}return r}function wpr(e,t,r){let n=t;for(let i of e){if(r<i.length)return{x:r+1,y:n+1};r-=i.length,n++}}function gUn(e,t,r){let n=r[0],i=wpr(e,t,r.index),o=wpr(e,t,r.index+n.length-1);if(!(!pUn(n)||!i||!o))return{text:n,range:{start:i,end:o}}}function yUn(e,t,r){let n=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(n)].flatMap(o=>gUn(e,t,o)??[])}function kpr(e,t,r=n$e){if(!e(t-1))return[];let n=t-1;for(;n>0&&_pr(e,n-1);)n--;return yUn(mUn(e,n),n,r)}function Epr(e,t){let r=n=>{let i=e.buffer.active.getLine(n);if(!i)return;let o=e.cols,a=i.getCell(o-1);return{text:i.translateToString(!0,0,o),isWrapped:i.isWrapped,isFull:!!a&&a.getChars()!==""&&a.getChars()!==" "}};return{provideLinks(n,i){let o=kpr(r,n,n$e);i(o.map(a=>({range:a.range,text:a.text,activate:t})))}}}function Rpr(e){let t=new Cpr({cursorBlink:!0,fontSize:14,fontFamily:"'Cascadia Code', 'Fira Code', Consolas, monospace",theme:{background:"#1e1e1e",foreground:"#d4d4d4"},linkHandler:{activate:(o,a)=>{window.open(a,"_blank")}}}),r=new tfr;t.loadAddon(r);let n=t.registerLinkProvider(Epr(t,(o,a)=>{window.open(a,"_blank")}));t.open(e);let i;try{i=new xdr,i.onContextLoss(()=>{i?.dispose(),i=void 0}),t.loadAddon(i)}catch{i=void 0}return r.fit(),{term:t,fitAddon:r,dispose:()=>{n.dispose(),i?.dispose(),t.dispose()}}}function Apr(e,t,r,n){if(e.type!=="keydown"||!(e.ctrlKey||e.metaKey)||e.shiftKey||e.altKey)return!0;let i=e.key.toLowerCase();return i==="c"&&t.hasSelection()?(e.preventDefault(),r.writeText(t.getSelection()),!1):i==="v"?(e.preventDefault(),r.readText().then(n),!1):!0}function K9(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}var vUn=["quickOpen","newSession","navTab","shortcutsSheet","focusSidebar","focusTerminal","toggleDiff","openConfig","openMenu","focusRepoPicker","focusAddAgent","focusVsCode","focusDone"];function Ppr(e){let t=T3.get();return vUn.some(r=>lw(r,t).matches(e))}function Lpr(e,t,{sendInput:r,onOutput:n,sendResize:i,isStale:o,mayResize:a}){let s=Rpr(e);s.term.onData(d=>r(t,d)),s.term.attachCustomKeyEventHandler(d=>Ppr(d)?!1:Apr(d,s.term,navigator.clipboard,h=>s.term.paste(h)));let l=n(t,d=>{o()||s.term.write(d)}),u=new ResizeObserver(()=>{!a()||!K9(e)||(s.fitAddon.fit(),i(t,s.term.cols,s.term.rows))});return u.observe(e),{handle:s,cleanup:()=>{u.disconnect(),l(),s.dispose()}}}var Kj=L(ge(),1);function Mpr({containerRef:e,handleRef:t,staleRef:r,mayResize:n,takeOver:i},o,{visible:a,ownership:s},l){let u=(0,Kj.useCallback)(()=>{let f=t.current;!f||!n()||!K9(e.current)||(f.fitAddon.fit(),kGt()||f.term.focus(),l(o,f.term.cols,f.term.rows))},[e,t,n,o,l]);return(0,Kj.useEffect)(()=>{if(!a)return;let f=setTimeout(()=>{r.current&&Sme()?i():u()},50);return()=>clearTimeout(f)},[a,r,i,u]),(0,Kj.useEffect)(()=>{if(a)return u(),window.addEventListener("focus",u),()=>window.removeEventListener("focus",u)},[a,s,u]),u}var mge=L(ge(),1);function Ipr({containerRef:e,handleRef:t,staleRef:r},n,i,o){let a=(0,mge.useCallback)(()=>{r.current=!1;let s=t.current;s&&(s.term.reset(),K9(e.current)&&(s.fitAddon.fit(),s.term.focus(),o(n,s.term.cols,s.term.rows,!0)))},[e,t,r,n,o]);return(0,mge.useEffect)(()=>{i==="other"?r.current=!0:i==="mine"&&r.current&&a()},[r,i,a]),a}function Dpr(e,t,{visible:r,ownership:n,sendInput:i,onOutput:o,sendResize:a}){let s=(0,bR.useRef)(null),l=(0,bR.useRef)(n==="other"),u=(0,bR.useRef)({visible:r,ownership:n});u.current={visible:r,ownership:n};let f=(0,bR.useRef)(()=>Jur(u.current.ownership,u.current.visible,Sme()));(0,bR.useEffect)(()=>{let m=e.current;if(!m)return;let{handle:g,cleanup:y}=Lpr(m,t,{sendInput:i,onOutput:o,sendResize:a,isStale:()=>l.current,mayResize:f.current});return s.current=g,()=>{y(),s.current=null}},[e,t,o,i,a]);let d={containerRef:e,handleRef:s,staleRef:l},h=Ipr(d,t,n,a),p=Mpr({...d,mayResize:f.current,takeOver:h},t,{visible:r,ownership:n},a);return efr(n,h,p)}var Xj=L(z(),1);function Npr({sessionId:e,visible:t,ownership:r,activeNode:n,onOutput:i,sendInput:o,sendResize:a}){let s=(0,Opr.useRef)(null),l=r==="other",u=Dpr(s,e,{visible:t,ownership:r,sendInput:o,onOutput:i,sendResize:a});return(0,Xj.jsxs)(fe,{"data-terminal-session-id":e,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"},onPointerDownCapture:u,children:[(0,Xj.jsx)(fe,{ref:s,sx:{position:"absolute",inset:0,isolation:"isolate"}}),l&&(0,Xj.jsx)(Zur,{activeNode:n})]})}var Bpr="assist-viewer-id";function bUn(){try{return sessionStorage}catch{return}}function xUn(){let e=bUn(),t=e?.getItem(Bpr);if(t)return t;let r=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;return e?.setItem(Bpr,r),r}var Zj=xUn();var xR=L(z(),1);function TUn(e){return e===void 0?"free":e===Zj?"mine":"other"}function Fpr({sessions:e,activeId:t,activeLoading:r,onOutput:n,sendInput:i,sendResize:o}){return(0,xR.jsxs)(fe,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(a=>(0,xR.jsx)(Npr,{sessionId:a.id,visible:a.id===t,ownership:TUn(a.activeViewer),activeNode:a.activeViewerNode,onOutput:n,sendInput:i,sendResize:o},a.id)),r&&(0,xR.jsx)(Xur,{}),e.length===0&&(0,xR.jsx)(fe,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,xR.jsx)($e,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var zpr=L(z(),1);function $pr({sessions:e,activeId:t,initialized:r,onOutput:n,sendInput:i,sendResize:o}){let a=e.find(l=>l.id===t),s=a!==void 0&&kfe(a,r);return(0,zpr.jsx)(Fpr,{sessions:e,activeId:t,activeLoading:s,onOutput:n,sendInput:i,sendResize:o})}var X9=L(ge(),1),i$e=(0,X9.createContext)({userMessages:null,fetchUserMessages:()=>{}});function Hpr(e){let{userMessages:t,fetchUserMessages:r}=(0,X9.useContext)(i$e),n=(0,X9.useCallback)(()=>{e&&r(e)},[e,r]);return{history:t?.sessionId===e?t?.messages:void 0,onFetchHistory:n}}var Z9=L(z(),1),SUn={position:"relative",display:"flex",flex:1,minWidth:0,minHeight:0};function Upr({activeSession:e,sendPrDecision:t,showLastMessage:r,...n}){let{history:i,onFetchHistory:o}=Hpr(e?.id);return(0,Z9.jsxs)(fe,{sx:SUn,children:[(0,Z9.jsx)(Bur,{session:e,sendPrDecision:t,sendInput:n.sendInput,children:(0,Z9.jsx)($pr,{...n})}),r&&e!==void 0&&(0,Z9.jsx)(Kur,{message:e.lastUserMessage,history:i,onFetchHistory:o})]})}var Wpr=L(z(),1),Vpr=ft((0,Wpr.jsx)("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build");var $m=L(z(),1);function Gpr({message:e}){return e.role==="tool"?(0,$m.jsx)(CUn,{tool:e.tool,target:e.target}):(0,$m.jsx)(wUn,{role:e.role,text:e.text})}function CUn({tool:e,target:t}){return(0,$m.jsxs)(fe,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,$m.jsx)(Vpr,{sx:{fontSize:14,color:"text.disabled"}}),(0,$m.jsxs)($e,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,$m.jsx)(fe,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,$m.jsxs)(fe,{component:"span",children:[" ",t]})]})]})}function wUn({role:e,text:t}){let r=e==="user",n=r?"info.main":"success.main";return(0,$m.jsxs)(fe,{sx:{mb:1.5,pl:1.5,py:1,pr:1,borderLeft:2,borderColor:n,borderTopRightRadius:1,borderBottomRightRadius:1,bgcolor:r?"action.hover":"transparent"},children:[(0,$m.jsx)($e,{variant:"caption",sx:{color:n,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,$m.jsx)($e,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var j1=L(z(),1);function _Un(e){let t=new Map;return e.map(r=>{let n=r.role==="tool"?`tool:${r.tool}:${r.target}`:`${r.role}:${r.text.slice(0,40)}`,i=t.get(n)??0;return t.set(n,i+1),{...r,key:`${n}#${i}`}})}function jpr({messages:e,loading:t}){return t?(0,j1.jsxs)(fe,{sx:qpr,children:[(0,j1.jsx)(mo,{size:20}),(0,j1.jsx)($e,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,j1.jsx)(fe,{sx:qpr,children:(0,j1.jsx)($e,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,j1.jsx)(fe,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,j1.jsx)(fe,{sx:{maxWidth:820,mx:"auto"},children:_Un(e).map(r=>(0,j1.jsx)(Gpr,{message:r},r.key))})})}var qpr={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var o$e=L(z(),1);function Ypr({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,o$e.jsx)(fe,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,o$e.jsx)(jpr,{messages:r?t?.messages??[]:[],loading:!r})})}var C_=L(z(),1),kUn={flex:1,minHeight:0,display:"flex",flexDirection:"column"};function Kpr({viewingTranscriptSessionId:e,transcript:t,sendPrDecision:r,lifecycle:n,...i}){let o=Ld();if(e!==null)return(0,C_.jsx)(Ypr,{sessionId:e,transcript:t});let a=i.sessions.find(s=>s.id===i.activeId);return(0,C_.jsx)(Yu.Provider,{value:a?.node,children:(0,C_.jsxs)(fe,{sx:kUn,children:[(0,C_.jsx)(Usr,{shown:o,session:a,sessions:i.sessions,lifecycle:n}),(0,C_.jsx)(Gsr,{sessionId:i.activeId,sessions:i.sessions,sendInput:i.sendInput,children:(0,C_.jsx)(Upr,{...i,activeSession:a,sendPrDecision:r,showLastMessage:o})})]})})}var s$e=L(z(),1);function Xpr({socket:e}){let t=(0,a$e.useMemo)(()=>({onRetry:e.retrySession,onRestart:e.restartSession,onDismiss:e.dismissSession,onSetAutoRun:e.setAutoRun,onSetAutoAdvance:e.setAutoAdvance}),[e.retrySession,e.restartSession,e.dismissSession,e.setAutoRun,e.setAutoAdvance]),r=(0,a$e.useMemo)(()=>({userMessages:e.userMessages,fetchUserMessages:e.fetchUserMessages}),[e.userMessages,e.fetchUserMessages]);return(0,s$e.jsx)(i$e.Provider,{value:r,children:(0,s$e.jsx)(Kpr,{lifecycle:t,sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onOutput:e.onOutput,sendInput:e.sendInput,sendResize:e.sendResize,viewingTranscriptSessionId:e.viewingTranscriptSessionId,transcript:e.transcript,sendPrDecision:e.sendPrDecision})})}var gge=L(ge(),1),l$e=(0,gge.createContext)({entries:[],loading:!0,refresh:()=>{}});function yge(){return(0,gge.useContext)(l$e)}var mmr=L(ge(),1);var c$e=L(z(),1);function Zpr({open:e,label:t,onToggle:r}){return(0,c$e.jsx)(sr,{size:"small",onClick:r,"aria-expanded":e,"aria-label":t,sx:{width:28,height:28},children:(0,c$e.jsx)(Iw,{fontSize:"small",sx:{transition:"transform .2s ease",transform:e?"rotate(90deg)":"none"}})})}function vge(e){return e==="webserver"?"web server":"daemon"}var w_=L(z(),1),Qpr=e=>t=>({p:1.5,borderRadius:1,bgcolor:Ea(t.palette[e].main,.1)});function Jpr({entry:e,state:t}){let r=e.status;return r?t.kind==="ready"?(0,w_.jsx)(fe,{sx:Qpr("warning"),children:(0,w_.jsxs)($e,{variant:"body2",children:[(0,w_.jsx)("b",{children:r.running===r.built?"New code is built but not running.":`v${r.built} is built but not running.`})," ","Restart the ",r.restart.map(vge).join(" and ")," on"," ",e.name," to load it.",r.restart.includes("daemon")&&" Open sessions are restored after the daemon restarts."]})}):t.kind==="diverged"?(0,w_.jsx)(fe,{sx:Qpr("error"),children:(0,w_.jsxs)($e,{variant:"body2",children:[(0,w_.jsxs)("b",{children:[e.name,"'s install can't fast-forward to origin."]})," A Claude session",r.loop.escalationId?` (${r.loop.escalationId})`:""," is reconciling it. The update loop resumes when that session closes."]})}):null:null}var bge=L(ge(),1),u$e=L(z(),1),EUn={m:0,p:1.5,borderRadius:1,bgcolor:e=>e.palette.mode==="dark"?"#1b1b1c":"#f3f4f6",fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,lineHeight:1.7,maxHeight:320,overflow:"auto",whiteSpace:"pre"};function emr({lines:e}){let t=(0,bge.useRef)(null);return(0,bge.useLayoutEffect)(()=>{t.current&&(t.current.scrollTop=t.current.scrollHeight)},[e]),e.length===0?(0,u$e.jsx)($e,{variant:"body2",color:"text.secondary",children:"No history yet."}):(0,u$e.jsx)(fe,{component:"pre",ref:t,sx:EUn,children:e.join(`
|
|
3976
|
-
`)})}var Q9=L(z(),1);function tmr({entry:e,state:t}){return(0,Q9.jsxs)(fe,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,Q9.jsx)(Jpr,{entry:e,state:t}),(0,Q9.jsx)($e,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,Q9.jsx)(emr,{lines:e.status?.history??[]})]})}var RUn={ready:"warning",diverged:"error"},rmr=e=>t=>{let r=RUn[e];return{display:"grid",gridTemplateColumns:{xs:"28px minmax(0,1fr)",sm:"28px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.6fr)"},alignItems:"center",columnGap:1.5,rowGap:1,px:2,py:1.5,boxShadow:r?`inset 3px 0 0 ${t.palette[r].main}`:"none"}};var nmr=L(z(),1),imr=ft((0,nmr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var omr=L(z(),1),amr=ft((0,omr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96M3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4z"}),"CloudOff");var smr=L(z(),1),lmr=ft((0,smr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var cmr=L(z(),1),umr=ft((0,cmr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var P2=L(z(),1),AUn={ok:{tone:"success",icon:(0,P2.jsx)(x1,{})},ready:{tone:"warning",icon:(0,P2.jsx)(imr,{})},diverged:{tone:"error",icon:(0,P2.jsx)(umr,{})},retrying:{tone:"warning",icon:(0,P2.jsx)(ode,{})},off:{tone:"neutral",icon:(0,P2.jsx)(lmr,{})},unavailable:{tone:"neutral",icon:(0,P2.jsx)(amr,{})}};function PUn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function fmr({state:e}){let{tone:t,icon:r}=AUn[e.kind];return(0,P2.jsxs)(fe,{component:"span",sx:n=>({alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:.75,height:24,px:1.25,borderRadius:3,fontSize:12,fontWeight:500,whiteSpace:"nowrap",color:PUn(n,t),bgcolor:t==="neutral"?n.palette.action.hover:Ea(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var Y1=L(z(),1),dmr={gridColumn:{xs:"2",sm:"auto"}},LUn={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function hmr({entry:e}){let t=e.status;if(!t)return(0,Y1.jsx)($e,{variant:"caption",color:"text.secondary",sx:dmr,children:"\u2014"});let r=t.running!==t.built;return(0,Y1.jsxs)(fe,{sx:{...dmr,display:"flex",flexDirection:"column"},children:[(0,Y1.jsxs)(fe,{component:"span",sx:LUn,children:["v",t.running,r&&(0,Y1.jsxs)(Y1.Fragment,{children:[" ",(0,Y1.jsx)(fe,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,Y1.jsx)($e,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function xge(e){return(e.status?.restart.length??0)>0}function Tge(e){let{status:t}=e;if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=fa(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:xge(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(vge).join(" + ")}`}:r.phase==="off"?{kind:"off",label:"Off",line:r.reason??"not running"}:r.phase==="retrying"?{kind:"retrying",label:"Retrying",line:`${r.reason??"lap failed"} \xB7 ${n}`}:{kind:"ok",label:"Up to date",line:`watching origin since ${n}`}}var np=L(z(),1),pmr={display:"flex",flexDirection:"column",minWidth:0};function gmr({entry:e}){let[t,r]=(0,mmr.useState)(!1),n=Tge(e),i=e.local?"this machine":"linked";return(0,np.jsxs)(fe,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,np.jsxs)(fe,{sx:rmr(n.kind),children:[(0,np.jsx)(Zpr,{open:t,label:`${t?"Hide":"Show"} history for ${e.name}`,onToggle:()=>r(o=>!o)}),(0,np.jsxs)(fe,{sx:pmr,children:[(0,np.jsx)($e,{variant:"body2",sx:{fontWeight:500},children:e.name}),(0,np.jsx)($e,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.status?`${i} \xB7 ${e.status.installDir}`:i})]}),(0,np.jsx)(hmr,{entry:e}),(0,np.jsxs)(fe,{sx:{...pmr,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,np.jsx)(fmr,{state:n}),(0,np.jsx)($e,{variant:"caption",color:"text.secondary",noWrap:!0,children:n.line})]})]}),t&&(0,np.jsx)(tmr,{entry:e,state:n})]})}function ymr(e){let t=e.map(o=>Tge(o).kind),r=o=>t.filter(a=>a===o).length,n=r("ready"),i=[`${e.length} node${e.length===1?"":"s"}`];return i.push(n?`${n} ready to restart`:"all running their latest build"),r("diverged")&&i.push(`${r("diverged")} diverged`),r("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var K1=L(z(),1);function vmr(){let{entries:e,loading:t}=yge();return(0,K1.jsx)(nc,{loading:t,header:(0,K1.jsxs)(K1.Fragment,{children:[(0,K1.jsx)($e,{variant:"h5",component:"h1",children:"Updates"}),(0,K1.jsx)($e,{variant:"body2",color:"text.secondary",sx:{mb:3},children:ymr(e)})]}),children:(0,K1.jsx)(on,{variant:"outlined",component:"section","aria-label":"Nodes",children:e.map(r=>(0,K1.jsx)(gmr,{entry:r},r.name))})})}var agr=L(ge(),1);var J9=L(ge(),1);function Sge(e,t){let r=(0,J9.useRef)(null),[n,i]=(0,J9.useState)();return(0,J9.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var xmr=L(ge(),1);function Cge(e){if(e.startsWith("local:")){let n=e.slice(6).replace(/\/+$/,"").split("/").filter(Boolean);return n[n.length-1]??e}let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function wge(e){let t=o=>o.startsWith("local:"),r=o=>{let a=Cge(o),s=a.split("/");return s[s.length-1]??a},n=new Map;for(let o of new Set(e)){if(t(o))continue;let a=r(o);n.set(a,(n.get(a)??0)+1)}let i=new Map;for(let o of e){if(t(o)){i.set(o,Cge(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?Cge(o):a)}return i}var Qj={field:"lastPhase",direction:"desc"};var Jj="all",eY="all";async function bmr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==Jj&&n.set("origin",r.origin),r.status!==eY&&n.set("status",r.status),r.sort.field!==Qj.field&&n.set("sort",r.sort.field),r.sort.direction!==Qj.direction&&n.set("direction",r.sort.direction);let i=await fetch(`/api/usage/items?${n}`);if(!i.ok)throw new Error(`Failed to load item usage (HTTP ${i.status}).`);return i.json()}var tY=L(z(),1);function Tmr({origins:e,origin:t,onChange:r}){let n=(0,xmr.useMemo)(()=>wge(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,tY.jsxs)(ni,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,tY.jsx)(cn,{value:Jj,children:`All repos (${i})`}),e.map(o=>(0,tY.jsx)(cn,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var f$e=L(z(),1),MUn=[{value:eY,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function Smr({status:e,onChange:t}){return(0,f$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:MUn.map(r=>(0,f$e.jsx)(hs,{value:r.value,children:r.label},r.value))})}var eB=L(z(),1),IUn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},DUn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function Cmr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,eB.jsxs)(fe,{sx:IUn,children:[(0,eB.jsx)(Smr,{status:n,onChange:i}),(0,eB.jsx)(Tmr,{origins:e,origin:t,onChange:r}),(0,eB.jsx)($e,{variant:"caption",color:"text.disabled",children:DUn})]})}var Omr=L(ge(),1);var kge=L(z(),1),OUn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},wmr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},NUn={...wmr,fontStyle:"italic"};function _ge({total:e,perPhase:t,partial:r}){return(0,kge.jsxs)(_n,{align:"right",sx:OUn,children:[e,t?(0,kge.jsx)($e,{component:"span",sx:r?NUn:wmr,children:t}):null]})}var rY=L(z(),1),BUn={width:"100%",maxWidth:0},FUn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},$Un={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function _mr({id:e,name:t,type:r,repoLabel:n}){return(0,rY.jsxs)(_n,{sx:BUn,children:[(0,rY.jsx)(xn,{component:ys,to:BT(e),underline:"hover",color:"text.primary",title:t,sx:FUn,children:t}),(0,rY.jsxs)($e,{component:"span",sx:$Un,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function kmr(e){let t=Math.max(1,e.recordedPhases);return{active:`${sg(e.activeMs/t)} / phase`,tokens:`${Zf(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function Emr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var zUn=new Set(["done","wontdo"]);function Rmr(e){return zUn.has(e)?{label:e,color:cJ[e]}:{label:"running",color:"warning"}}var d$e=L(z(),1),HUn={height:20,fontSize:"0.6875rem"};function Amr({status:e}){let t=Rmr(e);return(0,d$e.jsx)(_n,{children:(0,d$e.jsx)(bn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:HUn})})}var a0=L(z(),1),Pmr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function Lmr({row:e,repoLabel:t}){let r=kmr(e);return(0,a0.jsxs)(Gu,{hover:!0,children:[(0,a0.jsx)(_mr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,a0.jsx)(Amr,{status:e.status}),(0,a0.jsx)(_ge,{total:String(e.phaseCount||e.recordedPhases),perPhase:Emr(e),partial:!0}),(0,a0.jsx)(_ge,{total:sg(e.activeMs),perPhase:r.active}),(0,a0.jsx)(_ge,{total:`\u2191 ${Zf(e.tokensUp)} \u2193 ${Zf(e.tokensDown)}`,perPhase:r.tokens}),(0,a0.jsx)(_n,{align:"right",sx:Pmr,children:(0,a0.jsxs)(fe,{component:"span",sx:{color:Ife(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,a0.jsx)(_n,{align:"right",sx:Pmr,children:e.lastPhaseAt?fa(e.lastPhaseAt):"\u2014"})]})}var Mmr=[{label:"Item"},{label:"Status"},{label:"Phases",sort:"phases",numeric:!0},{label:"Active",sort:"active",numeric:!0,tooltip:"Accumulated active time across the item's phases \u2014 not wall clock."},{label:"Tokens",sort:"tokens",numeric:!0},{label:"Peak ctx",sort:"peakContext",numeric:!0,tooltip:"The highest context-window usage any one phase reached."},{label:"Last phase",sort:"lastPhase",numeric:!0,tooltip:"When the item's most recent phase session started."}];var zm=L(z(),1),UUn={"& th":{whiteSpace:"nowrap"}};function Imr({column:e}){return e.tooltip?(0,zm.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,zm.jsx)("span",{children:e.label})}):(0,zm.jsx)(zm.Fragment,{children:e.label})}function Dmr({sort:e,onSort:t}){return(0,zm.jsx)(Dk,{sx:UUn,children:(0,zm.jsx)(Gu,{children:Mmr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,zm.jsx)(_n,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,zm.jsx)(Imr,{column:r}):(0,zm.jsx)(q1e,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,zm.jsx)(Imr,{column:r})})},r.label)})})})}var TR=L(z(),1),WUn={"& td, & th":{px:1.5}};function Nmr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,Omr.useMemo)(()=>wge([...t,...e.map(o=>o.origin)]),[t,e]);return(0,TR.jsx)(Ik,{component:on,children:(0,TR.jsxs)(wv,{size:"small",sx:WUn,children:[(0,TR.jsx)(Dmr,{sort:r,onSort:n}),(0,TR.jsx)(_v,{children:e.map(o=>(0,TR.jsx)(Lmr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function Bmr(e){let t=Math.max(1,e.medianPhases),r=e.repoCount===1?"repo":"repos";return{items:String(e.itemCount),itemsFoot:`across ${e.repoCount} ${r} \xB7 ${e.doneCount} done`,phases:String(Math.round(e.medianPhases*10)/10),active:sg(e.medianActiveMs),activeFoot:`${sg(e.medianActiveMs/t)} per phase`,tokens:Zf(Math.round(e.medianTokens)),tokensFoot:`${Zf(Math.round(e.medianTokens/t))} per phase`}}var tB=L(z(),1),Fmr={display:"block"},VUn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function nY({label:e,value:t,foot:r}){return(0,tB.jsxs)(fe,{children:[(0,tB.jsx)($e,{variant:"caption",color:"text.secondary",sx:Fmr,children:e}),(0,tB.jsx)($e,{variant:"h5",sx:VUn,children:t}),r?(0,tB.jsx)($e,{variant:"caption",color:"text.disabled",sx:Fmr,children:r}):null]})}var SR=L(z(),1),GUn={display:"flex",flexDirection:{xs:"column",sm:"row"},mb:3,"& > *":{flex:1,minWidth:0,p:2},"& > * + *":{borderColor:"divider",borderTop:{xs:1,sm:0},borderLeft:{xs:0,sm:1}}};function $mr({summary:e}){let t=Bmr(e);return(0,SR.jsxs)(on,{sx:GUn,children:[(0,SR.jsx)(nY,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,SR.jsx)(nY,{label:"Median phases",value:t.phases}),(0,SR.jsx)(nY,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,SR.jsx)(nY,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var ip=L(z(),1);function zmr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=Sge(r.length,o);return(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)($mr,{summary:t.summary}),(0,ip.jsx)(Cmr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,ip.jsx)($e,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)(fe,{ref:a,sx:{minHeight:s},children:(0,ip.jsx)(Nmr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,ip.jsx)(jF,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var L2=L(z(),1);function Hmr({items:e}){let{data:t}=e;return(0,L2.jsxs)(L2.Fragment,{children:[(0,L2.jsx)(fe,{sx:{height:4,mb:1},children:e.fetching&&(0,L2.jsx)(Mk,{})}),t?t.origins.length===0?(0,L2.jsx)($e,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,L2.jsx)(zmr,{items:e,data:t}):null]})}function h$e(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function Ege(e,t){let r=Math.max(0,e-t),n=Math.floor(r/86400),i=Math.floor(r%86400/3600),o=Math.floor(r%3600/60);return n>0?`${n}d ${i}h`:i>0?`${i}h ${o}m`:`${o}m`}function qUn(e,t,r,n){let i=h$e(t,r,n);if(i!=null)return e/i}function __(e,t,r,n){let i=qUn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var jUn=["five_hour","seven_day"],YUn=["claude","codex","pi"];function Umr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=YUn.find(o=>o===t),i=jUn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var Wmr={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};function rB(e){let t=Umr(e);if(!t)return Wmr.five_hour;let r=Wmr[t.window];return t.harness==="claude"?r:{...r,label:`${Lu(t.harness)} ${r.label}`}}var KUn={ok:"success.main",warn:"warning.main",over:"error.main"};function k_(e){return KUn[e]}var aY=L(z(),1),XUn={ok:"success",warn:"warning",over:"error"};function Vmr({percentage:e,level:t}){return(0,aY.jsxs)(fe,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,aY.jsx)(Mk,{variant:"determinate",value:Math.min(100,e),color:XUn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,aY.jsxs)(fe,{sx:{minWidth:40,textAlign:"right",color:k_(t)},children:[Math.round(e),"%"]})]})}function Gmr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var ZUn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function p$e(e){return ZUn.format(e)}var Rge=L(z(),1);function qmr({peak:e}){return(0,Rge.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Rge.jsx)(lr,{title:`Cycle started ${p$e(new Date(e.createdAt))}`,children:(0,Rge.jsx)("span",{children:p$e(new Date(e.resetsAt*1e3))})})})}var Ymr=L(z(),1);function jmr(){return(0,Ymr.jsx)(bn,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function Kmr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${Zf(e.tokensUp)} \u2193 ${Zf(e.tokensDown)}`}var s0=L(z(),1);function Xmr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=rB(e.window),o=__(e.usedPercentage,e.resetsAt,n,t);return(0,s0.jsxs)(Gu,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,s0.jsxs)(_n,{children:[r,e.resetDetected&&(0,s0.jsx)(jmr,{})]}),(0,s0.jsx)(_n,{sx:{minWidth:160},children:(0,s0.jsx)(Vmr,{percentage:e.usedPercentage,level:o})}),(0,s0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:Gmr(e)}),(0,s0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,s0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:Kmr(e)}),(0,s0.jsx)(qmr,{peak:e})]})}var Age=L(ge(),1);function E_(e){let[t,r]=(0,Age.useState)(()=>Math.floor(Date.now()/1e3));return(0,Age.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var pc=L(z(),1);function Zmr({peaks:e}){let t=E_(3e4);return(0,pc.jsx)(Ik,{component:on,children:(0,pc.jsxs)(wv,{size:"small",children:[(0,pc.jsx)(Dk,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,pc.jsxs)(Gu,{children:[(0,pc.jsx)(_n,{children:"Window"}),(0,pc.jsx)(_n,{children:"Peak usage"}),(0,pc.jsx)(_n,{align:"right",children:(0,pc.jsx)(lr,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,pc.jsx)("span",{children:"Avg context"})})}),(0,pc.jsx)(_n,{align:"right",children:(0,pc.jsx)(lr,{title:"Number of phase readings behind the average.",children:(0,pc.jsx)("span",{children:"Phases"})})}),(0,pc.jsx)(_n,{align:"right",children:"Tokens spent"}),(0,pc.jsx)(_n,{align:"right",children:"Cycle reset"})]})}),(0,pc.jsx)(_v,{children:e.map(r=>(0,pc.jsx)(Xmr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var R_=L(z(),1);function Qmr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=Sge(e.length,n);return(0,R_.jsxs)(R_.Fragment,{children:[(0,R_.jsx)(fe,{ref:o,sx:{minHeight:a},children:(0,R_.jsx)(Zmr,{peaks:e})}),(0,R_.jsx)(jF,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var m$e=L(z(),1),Jmr=["five_hour","seven_day"],QUn=["codex:five_hour","codex:seven_day"];function JUn(e){let t=e?[...Jmr,...QUn]:Jmr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:rB(r).label}))]}function egr({window:e,onChange:t}){let{exposeCodexActions:r}=$T();return(0,m$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:JUn(r).map(n=>(0,m$e.jsx)(hs,{value:n.value,children:n.label},n.value))})}var X1=L(z(),1);function tgr({history:e}){let{window:t,total:r}=e;return(0,X1.jsxs)(X1.Fragment,{children:[(0,X1.jsx)(egr,{window:t,onChange:e.selectWindow}),(0,X1.jsx)(fe,{sx:{height:4,my:1},children:e.fetching&&(0,X1.jsx)(Mk,{})}),r===0?(0,X1.jsx)($e,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${rB(t).label} usage peaks recorded yet.`}):(0,X1.jsx)(Qmr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var Lge=L(ge(),1);async function rgr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}var A_=L(ge(),1);function Pge(e,t,r=!0){let[n,i]=(0,A_.useState)(0),[o,a]=(0,A_.useState)(null),[s,l]=(0,A_.useState)(!1),[u,f]=(0,A_.useState)(null);(0,A_.useEffect)(()=>{if(!r)return;let p=!1;return l(!0),e(n,t).then(m=>{p||(a(m),l(!1))},m=>{p||(f(m instanceof Error?m:new Error(String(m))),l(!1))}),()=>{p=!0}},[e,n,t,r]);let d=o?.total??0;(0,A_.useEffect)(()=>{if(d===0)return;let p=Math.ceil(d/t)-1;n>p&&i(p)},[n,t,d]);let h=o?.rows??[];return{data:o,rows:h,total:d,loaded:o!==null,fetching:s,error:u,page:n,setPage:i,pageSize:t}}var eWn=30;function ngr(){let[e,t]=(0,Lge.useState)("all"),r=(0,Lge.useCallback)((o,a)=>rgr(o,a,e),[e]),n=Pge(r,eWn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var nB=L(ge(),1);function igr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var tWn=30;function ogr(e){let[t,r]=(0,nB.useState)(Jj),[n,i]=(0,nB.useState)(eY),[o,a]=(0,nB.useState)(Qj),s=(0,nB.useCallback)((h,p)=>bmr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=Pge(s,tWn,e);return{...l,origin:t,selectOrigin:h=>{r(h),l.setPage(0)},status:n,selectStatus:h=>{i(h),l.setPage(0)},sort:o,sortBy:h=>{a(p=>igr(p,h)),l.setPage(0)}}}var P_=L(z(),1),rWn={borderBottom:1,borderColor:"divider",mb:2};function sgr(){let[e,t]=(0,agr.useState)("limits"),r=ngr(),n=ogr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,P_.jsxs)(nc,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,P_.jsxs)(Nk,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:rWn,"aria-label":"Usage history views",children:[(0,P_.jsx)(Cv,{label:"Rate limits",value:"limits"}),(0,P_.jsx)(Cv,{label:"Items",value:"items"})]}),e==="limits"?(0,P_.jsx)(tgr,{history:r}):(0,P_.jsx)(Hmr,{items:n})]})}var hi=L(z(),1);function nWn({socket:e}){return(0,hi.jsx)(SF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,hi.jsx)(dGt,{socket:e})})}function lgr({socket:e}){return W0("AppRoutes"),(0,hi.jsxs)(hi.Fragment,{children:[(0,hi.jsx)(gsr,{}),(0,hi.jsx)(c5,{children:(0,hi.jsxs)(gs,{element:(0,hi.jsx)(XYt,{socket:e}),children:[(0,hi.jsx)(gs,{path:"sessions",element:(0,hi.jsx)(Xpr,{socket:e})}),(0,hi.jsx)(gs,{path:"backlog/*",element:(0,hi.jsx)(nWn,{socket:e})}),(0,hi.jsx)(gs,{path:"next",element:(0,hi.jsx)(Aar,{sessions:e.sessions,selectSession:e.selectSession})}),(0,hi.jsx)(gs,{path:"news",element:(0,hi.jsx)(zor,{})}),(0,hi.jsx)(gs,{path:"releases",element:(0,hi.jsx)(dsr,{})}),(0,hi.jsx)(gs,{path:"usage",element:(0,hi.jsx)(sgr,{})}),(0,hi.jsx)(gs,{path:"backups",element:(0,hi.jsx)(nKt,{})}),(0,hi.jsx)(gs,{path:"config",element:(0,hi.jsx)(jXt,{})}),(0,hi.jsx)(gs,{path:"updates",element:(0,hi.jsx)(vmr,{})}),(0,hi.jsx)(gs,{path:"diff",element:(0,hi.jsx)(ior,{socket:e})}),(0,hi.jsx)(gs,{path:"file",element:(0,hi.jsx)(Oor,{socket:e})}),(0,hi.jsx)(gs,{path:"*",element:(0,hi.jsx)(Qxe,{to:"/sessions",replace:!0})})]})})]})}var Nge=L(ge(),1);var Oge=L(ge(),1);function cgr(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var L_=L(z(),1),iWn={display:"flex",gap:1,alignItems:"center",minWidth:0},oWn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},aWn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},sWn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function lWn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function ugr({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,L_.jsx)(Sp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=lWn(i);return(0,L_.jsxs)(cn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:iWn,children:[(0,L_.jsx)(c9,{path:i}),(0,L_.jsxs)(fe,{sx:oWn,children:[(0,L_.jsx)($e,{component:"span",sx:aWn,children:s}),(0,L_.jsx)($e,{component:"span",color:"text.secondary",sx:sWn,children:a})]})]},i)})})}var Mge=L(z(),1),cWn={maxHeight:420,overflowY:"auto"},uWn={px:2,py:2,fontSize:13};function fgr({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Mge.jsx)(fe,{sx:cWn,children:e?(0,Mge.jsx)($e,{color:"text.secondary",sx:uWn,children:e}):(0,Mge.jsx)(ugr,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var dgr=L(z(),1),fWn={mt:6,alignSelf:"flex-start"};function Ige({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,dgr.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:fWn},transition:{onEntered:t}},children:n})}var Dge=L(ge(),1);var hgr={files:[],loading:!1,error:!1};function pgr(e,t){let[r,n]=(0,Dge.useState)(hgr),i=vr();return(0,Dge.useEffect)(()=>{if(!e){n(hgr);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(un(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var CR=L(z(),1);function dWn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function mgr({onClose:e}){let{worktreeNode:t}=$n();return(0,CR.jsx)(Yu.Provider,{value:t,children:(0,CR.jsx)(hWn,{onClose:e})})}function hWn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,Oge.useState)(""),o=pgr(t,n),a=Xi(),s=(0,Oge.useRef)(null),l=p=>a(dWn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=HT(o.files,n,l,e),h=p=>{l(p),e()};return(0,CR.jsxs)(Ige,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,CR.jsx)(mP,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,CR.jsx)(fgr,{message:cgr(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function ggr(e){zo(Xn("quickOpen").matches,e)}var vgr=L(z(),1);function ygr(){let[e,t]=(0,Nge.useState)(!1);return ggr((0,Nge.useCallback)(()=>t(!0),[])),e?(0,vgr.jsx)(mgr,{onClose:()=>t(!1)}):null}var Bge=L(z(),1);function bgr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Bge.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Bge.jsx)(ri,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Bge.jsx)(Jt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var Uge=L(ge(),1);function xgr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var Igr=L(ge(),1);var Tgr=L(z(),1),Sgr=ft((0,Tgr.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var M_="0.775.2";var pWn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function Cgr(e){return e?pWn[e]:"success.main"}function wgr(e){return e.split("-")[0].split(".").map(Number)}function _gr(e,t){if(!e||!t||e===t)return;let r=wgr(e),n=wgr(t);for(let i=0;i<Math.max(r.length,n.length);i++){let o=(r[i]??0)-(n[i]??0);if(Number.isNaN(o))return;if(o!==0)return o<0?"behind":"ahead"}}var Fge=L(ge(),1),g$e=(0,Fge.createContext)(null);function $ge(){return(0,Fge.useContext)(g$e)}var wR=L(z(),1),mWn={height:16,fontSize:10},gWn={opacity:.6,fontSize:"0.85em"};function yWn(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function sY({nodes:e,name:t,showVersion:r=!1}){let n=$ge()??M_,i=e.links.find(a=>a.name===t),o=_gr(i?.peerVersion,n);return(0,wR.jsx)(lr,{title:yWn(e,t),placement:"right",children:(0,wR.jsxs)(fe,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,wR.jsx)(Sgr,{sx:{fontSize:8,color:Cgr(i?.state)}}),t,r&&i?.peerVersion&&(0,wR.jsxs)(fe,{component:"span",sx:gWn,children:["v",i.peerVersion]}),o&&(0,wR.jsx)(bn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:mWn})]})})}var _R=L(z(),1),vWn={opacity:.6},bWn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function kgr({nodes:e,name:t,clone:r}){let n=(0,_R.jsx)(sY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,_R.jsx)(fe,{component:"span",sx:vWn,children:n}):(0,_R.jsx)(lr,{title:uP(t,r.cloneTarget),children:(0,_R.jsxs)(fe,{component:"span",sx:bWn,children:[(0,_R.jsx)(cP,{sx:{fontSize:14}}),n]})})}var Rgr=L(z(),1),xWn={px:1.5,borderRadius:.75,fontSize:12,fontWeight:600,color:"text.secondary","&:hover":{color:"text.primary",bgcolor:"action.hover"},"&[aria-checked='true']":{color:"primary.main",bgcolor:"action.selected"},"&.Mui-focusVisible":{outline:2,outlineColor:"primary.main"}};function Egr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,Rgr.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:xWn,children:t})}var Agr={ArrowRight:1,ArrowLeft:-1};function TWn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+Agr[e.key]+r)%r}function Pgr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!Agr[i.key]){Bx(i);return}let o=TWn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var Lgr=L(ge(),1);function iB(e){return e?.querySelector('[aria-checked="true"]')}function Mgr(e,t){(0,Lgr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=iB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var y$e=L(z(),1),SWn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function zge({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return Mgr(o,r),(0,y$e.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:Pgr(t,r,n,l),sx:SWn,children:t.map(u=>(0,y$e.jsx)(Egr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var v$e=L(z(),1);function Dgr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=gu(),a=(0,Igr.useRef)(null);return!o||!n||!e?null:(0,v$e.jsx)(zge,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,v$e.jsx)(kgr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Ngr=L(z(),1);function Ogr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Ngr.jsx)(ni,{value:e,onChange:a=>t(a.target.value),onKeyDown:Bx,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var zgr=L(ge(),1);var M2={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:fde,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Bgr=Object.keys(M2);var b$e=L(z(),1);function Fgr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,b$e.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,b$e.jsx)(cn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Lu(o)},o))})}var kR=L(z(),1);function $gr(e){return t=>t==="prompt"&&e?(0,kR.jsxs)(kR.Fragment,{children:["prompt",(0,kR.jsx)(fe,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Lu(e)}`}),(0,kR.jsx)(Bp,{sx:{fontSize:18,mr:-.75}})]}):t}var ER=L(z(),1);function Hgr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,zgr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(iB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,ER.jsxs)(ER.Fragment,{children:[(0,ER.jsx)(zge,{label:"Mode",options:Bgr,value:e.mode,onChange:l,optionLabel:$gr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,ER.jsx)(Fgr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Qgr=L(ge(),1);var x$e=L(z(),1),CWn={zIndex:e=>e.zIndex.modal+1};function Ugr({open:e,anchor:t,children:r}){return(0,x$e.jsx)(MA,{open:e,anchorEl:t,placement:"bottom-start",sx:CWn,children:(0,x$e.jsx)(on,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Wgr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var Vgr=L(QB(),1);function Ggr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}Bx(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Vgr.flushSync)(()=>{r(t),n()}),Bx(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function qgr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>H0(n).toLowerCase().includes(r)):e}var T$e=L(ge(),1);function jgr(){let[e,t]=(0,T$e.useState)(!1),[r,n]=(0,T$e.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Kgr=L(ge(),1);var Ygr=e=>e?H0(e):"";function Xgr(e){let[t,r]=(0,Kgr.useState)(()=>Ygr(e));return{text:t,setText:r,showRepo:n=>r(Ygr(n))}}function Zgr(e,t,r){let n=jgr(),i=Xgr(t),o=qgr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=HT(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:Ggr({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var oB=L(z(),1);function Jgr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=Zgr(e,t,r),s=(0,Qgr.useRef)(null);return(0,oB.jsxs)(fe,{ref:s,sx:{flex:1,minWidth:0},children:[(0,oB.jsx)(ni,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Wgr(a.open)}),(0,oB.jsx)(Ugr,{open:a.open,anchor:s.current,children:(0,oB.jsx)(AJ,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var I_=L(z(),1);function e0r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,I_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,I_.jsx)(Ogr,{value:r.prompt,onChange:r.setPrompt,placeholder:M2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,I_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,I_.jsx)(Jgr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,I_.jsx)(Hgr,{...t})]}),(0,I_.jsx)(Dgr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var aB=L(z(),1),wWn=["Enter start","Shift+Enter newline","Esc close"],_Wn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function t0r({submitLabel:e,disabled:t=!1}){return(0,aB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:_Wn,children:[(0,aB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:wWn.map(r=>(0,aB.jsx)($e,{variant:"caption",color:"text.secondary",children:r},r))}),(0,aB.jsx)(Jt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function r0r({mode:e,harness:t,prompt:r,cwd:n,node:i},o){let a=n||void 0,s=i?[i]:[];if(e==="prompt"){t==="claude"?o.onCreate(r,a,...s):o.onCreateHarness(t,r,a,...s);return}if(e==="design"){o.onCreateDesign(r,a,...s);return}let l=i?[{node:i}]:[];Gjt(M2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function n0r(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(gJ(r.prompt,n.onCreateAssist),!0):(r0r({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var RR=L(ge(),1);function i0r(e,t){let r=(0,RR.useRef)(e),n=(0,RR.useRef)(null),i=(0,RR.useRef)(null),o=(0,RR.useRef)(null),a=(0,RR.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:iB(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function kWn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:LJ(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function o0r(e,t){let{names:r,visible:n}=gu(),i=TJ(t,n?r:[void 0]);return{cloneState:i,target:kWn(t,e,i(e))}}var sB=L(z(),1);function a0r({draft:e,launchers:t,onClose:r}){let n=i0r(e.focus,e.setFocus),i=xgr($T()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=o0r(e.node,e.cwd),l=u=>{u.preventDefault(),n0r(e,o,a,t)&&r()};return(0,sB.jsx)(Ige,{onClose:r,onEntered:n.restore,centered:!0,children:(0,sB.jsxs)("form",{onSubmit:l,children:[(0,sB.jsx)(e0r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,sB.jsx)(t0r,{submitLabel:a.kind==="clone"?"Clone":M2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var Hge=L(ge(),1);function s0r(e){let[t,r]=(0,Hge.useState)(null);return(0,Hge.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(M2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function l0r(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var I2=L(ge(),1),c0r={field:"prompt",selectionStart:0,selectionEnd:0};function u0r(){let[e,t]=(0,I2.useState)(""),[r,n]=(0,I2.useState)(),[i,o]=(0,I2.useState)(),[a,s]=(0,I2.useState)("claude"),[l,u]=(0,I2.useState)(),[f,d]=(0,I2.useState)(c0r),h=(0,I2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(c0r)},[]);return{prompt:e,cwd:r,mode:i,harness:a,node:l,focus:f,setPrompt:t,setNode:u,setCwd:n,setMode:o,setHarness:s,setFocus:d,clear:h}}function f0r(e=s0r){let{selectedCwd:t}=$n(),r=gu(),n=u0r(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:l0r(n.node,r)}:null}function d0r(e){zo(Xn("newSession").matches,e)}var h0r=L(ge(),1);function p0r(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,h0r.useEffect)(()=>{o===null||!s||!l||!u||(o&&(s(o),l(a),u({field:"prompt",selectionStart:o.length,selectionEnd:o.length})),t(),i(f=>(f.delete("new"),f.delete("newCwd"),f),{replace:!0}))},[o,a,s,l,u,t,i])}var g0r=L(z(),1);function m0r({launchers:e}){let[t,r]=(0,Uge.useState)(!1),n=f0r(),i=(0,Uge.useCallback)(()=>r(!0),[]);return d0r(i),p0r(n,i),!t||!n?null:(0,g0r.jsx)(a0r,{draft:n,launchers:e,onClose:()=>r(!1)})}var Wge=L(z(),1);function y0r({reconnecting:e}){return(0,Wge.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Wge.jsx)(ri,{severity:"info",variant:"filled",icon:(0,Wge.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Z1=L(z(),1);function v0r({socket:e,onViewLaunchedSession:t}){return(0,Z1.jsxs)(Z1.Fragment,{children:[(0,Z1.jsx)(ygr,{}),(0,Z1.jsx)(m0r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Z1.jsx)(y0r,{reconnecting:e.reconnecting}),(0,Z1.jsx)(Mu,{error:e.error,onClose:e.clearError}),(0,Z1.jsx)(bgr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var l0=L(ge(),1);async function b0r(e,t){try{let r=await fetch(un("/api/updates",t?void 0:e)),n=await r.json();if(!r.ok)throw new Error(n?.error??`HTTP ${r.status}`);return{name:e,local:t,status:n}}catch(r){return{name:e,local:t,error:r instanceof Error?r.message:"Failed to load update state"}}}var EWn=6e4;function x0r(e){let t=e.nodes?.local,r=e.names.join(`
|
|
3976
|
+
`)})}var Q9=L(z(),1);function tmr({entry:e,state:t}){return(0,Q9.jsxs)(fe,{sx:{px:2,pb:2,pl:{xs:2,sm:7.5},display:"grid",gap:1.5},children:[(0,Q9.jsx)(Jpr,{entry:e,state:t}),(0,Q9.jsx)($e,{variant:"caption",color:"text.secondary",children:"History \xB7 ~/.assist/watchers/"}),(0,Q9.jsx)(emr,{lines:e.status?.history??[]})]})}var RUn={ready:"warning",diverged:"error"},rmr=e=>t=>{let r=RUn[e];return{display:"grid",gridTemplateColumns:{xs:"28px minmax(0,1fr)",sm:"28px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.6fr)"},alignItems:"center",columnGap:1.5,rowGap:1,px:2,py:1.5,boxShadow:r?`inset 3px 0 0 ${t.palette[r].main}`:"none"}};var nmr=L(z(),1),imr=ft((0,nmr.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward");var omr=L(z(),1),amr=ft((0,omr.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96M3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4z"}),"CloudOff");var smr=L(z(),1),lmr=ft((0,smr.jsx)("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause");var cmr=L(z(),1),umr=ft((0,cmr.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var P2=L(z(),1),AUn={ok:{tone:"success",icon:(0,P2.jsx)(x1,{})},ready:{tone:"warning",icon:(0,P2.jsx)(imr,{})},diverged:{tone:"error",icon:(0,P2.jsx)(umr,{})},retrying:{tone:"warning",icon:(0,P2.jsx)(ode,{})},off:{tone:"neutral",icon:(0,P2.jsx)(lmr,{})},unavailable:{tone:"neutral",icon:(0,P2.jsx)(amr,{})}};function PUn(e,t){return t==="neutral"?e.palette.text.secondary:e.palette[t].main}function fmr({state:e}){let{tone:t,icon:r}=AUn[e.kind];return(0,P2.jsxs)(fe,{component:"span",sx:n=>({alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:.75,height:24,px:1.25,borderRadius:3,fontSize:12,fontWeight:500,whiteSpace:"nowrap",color:PUn(n,t),bgcolor:t==="neutral"?n.palette.action.hover:Ea(n.palette[t].main,.1),border:t==="neutral"?`1px solid ${n.palette.divider}`:0,"& svg":{fontSize:14}}),children:[r,e.label]})}var Y1=L(z(),1),dmr={gridColumn:{xs:"2",sm:"auto"}},LUn={fontFamily:"'Roboto Mono', ui-monospace, Menlo, monospace",fontSize:12,fontVariantNumeric:"tabular-nums"};function hmr({entry:e}){let t=e.status;if(!t)return(0,Y1.jsx)($e,{variant:"caption",color:"text.secondary",sx:dmr,children:"\u2014"});let r=t.running!==t.built;return(0,Y1.jsxs)(fe,{sx:{...dmr,display:"flex",flexDirection:"column"},children:[(0,Y1.jsxs)(fe,{component:"span",sx:LUn,children:["v",t.running,r&&(0,Y1.jsxs)(Y1.Fragment,{children:[" ",(0,Y1.jsx)(fe,{component:"span",sx:{color:"warning.main"},children:"\u2192"})," ","v",t.built]})]}),(0,Y1.jsx)($e,{variant:"caption",color:"text.secondary",children:r?"running \u2192 built":"running"})]})}function xge(e){return(e.status?.restart.length??0)>0}function Tge(e){let{status:t}=e;if(!t)return{kind:"unavailable",label:"Unavailable",line:e.error??"no update state"};let{loop:r}=t,n=fa(r.since);return r.phase==="diverged"?{kind:"diverged",label:"Diverged \xB7 fixing",line:`diverged ${n}${r.escalationId?` \xB7 session ${r.escalationId}`:""}`}:xge(e)?{kind:"ready",label:"Restart to update",line:`restart ${t.restart.map(vge).join(" + ")}`}:r.phase==="off"?{kind:"off",label:"Off",line:r.reason??"not running"}:r.phase==="retrying"?{kind:"retrying",label:"Retrying",line:`${r.reason??"lap failed"} \xB7 ${n}`}:{kind:"ok",label:"Up to date",line:`watching origin since ${n}`}}var np=L(z(),1),pmr={display:"flex",flexDirection:"column",minWidth:0};function gmr({entry:e}){let[t,r]=(0,mmr.useState)(!1),n=Tge(e),i=e.local?"this machine":"linked";return(0,np.jsxs)(fe,{component:"article",sx:{"& + &":{borderTop:1,borderColor:"divider"}},children:[(0,np.jsxs)(fe,{sx:rmr(n.kind),children:[(0,np.jsx)(Zpr,{open:t,label:`${t?"Hide":"Show"} history for ${e.name}`,onToggle:()=>r(o=>!o)}),(0,np.jsxs)(fe,{sx:pmr,children:[(0,np.jsx)($e,{variant:"body2",sx:{fontWeight:500},children:e.name}),(0,np.jsx)($e,{variant:"caption",color:"text.secondary",noWrap:!0,children:e.status?`${i} \xB7 ${e.status.installDir}`:i})]}),(0,np.jsx)(hmr,{entry:e}),(0,np.jsxs)(fe,{sx:{...pmr,gridColumn:{xs:"2",sm:"auto"},gap:.25},children:[(0,np.jsx)(fmr,{state:n}),(0,np.jsx)($e,{variant:"caption",color:"text.secondary",noWrap:!0,children:n.line})]})]}),t&&(0,np.jsx)(tmr,{entry:e,state:n})]})}function ymr(e){let t=e.map(o=>Tge(o).kind),r=o=>t.filter(a=>a===o).length,n=r("ready"),i=[`${e.length} node${e.length===1?"":"s"}`];return i.push(n?`${n} ready to restart`:"all running their latest build"),r("diverged")&&i.push(`${r("diverged")} diverged`),r("unavailable")&&i.push(`${r("unavailable")} unavailable`),i.join(" \xB7 ")}var K1=L(z(),1);function vmr(){let{entries:e,loading:t}=yge();return(0,K1.jsx)(nc,{loading:t,header:(0,K1.jsxs)(K1.Fragment,{children:[(0,K1.jsx)($e,{variant:"h5",component:"h1",children:"Updates"}),(0,K1.jsx)($e,{variant:"body2",color:"text.secondary",sx:{mb:3},children:ymr(e)})]}),children:(0,K1.jsx)(on,{variant:"outlined",component:"section","aria-label":"Nodes",children:e.map(r=>(0,K1.jsx)(gmr,{entry:r},r.name))})})}var agr=L(ge(),1);var J9=L(ge(),1);function Sge(e,t){let r=(0,J9.useRef)(null),[n,i]=(0,J9.useState)();return(0,J9.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var xmr=L(ge(),1);function Cge(e){if(e.startsWith("local:")){let n=e.slice(6).replace(/\/+$/,"").split("/").filter(Boolean);return n[n.length-1]??e}let t=e.indexOf("/");return t===-1?e:e.slice(t+1)}function wge(e){let t=o=>o.startsWith("local:"),r=o=>{let a=Cge(o),s=a.split("/");return s[s.length-1]??a},n=new Map;for(let o of new Set(e)){if(t(o))continue;let a=r(o);n.set(a,(n.get(a)??0)+1)}let i=new Map;for(let o of e){if(t(o)){i.set(o,Cge(o));continue}let a=r(o),s=(n.get(a)??0)>1;i.set(o,s?Cge(o):a)}return i}var Qj={field:"lastPhase",direction:"desc"};var Jj="all",eY="all";async function bmr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r.origin!==Jj&&n.set("origin",r.origin),r.status!==eY&&n.set("status",r.status),r.sort.field!==Qj.field&&n.set("sort",r.sort.field),r.sort.direction!==Qj.direction&&n.set("direction",r.sort.direction);let i=await fetch(`/api/usage/items?${n}`);if(!i.ok)throw new Error(`Failed to load item usage (HTTP ${i.status}).`);return i.json()}var tY=L(z(),1);function Tmr({origins:e,origin:t,onChange:r}){let n=(0,xmr.useMemo)(()=>wge(e.map(o=>o.origin)),[e]),i=e.reduce((o,a)=>o+a.count,0);return(0,tY.jsxs)(ni,{select:!0,size:"small",label:"Repo",value:t,onChange:o=>r(o.target.value),sx:{minWidth:220},children:[(0,tY.jsx)(cn,{value:Jj,children:`All repos (${i})`}),e.map(o=>(0,tY.jsx)(cn,{value:o.origin,children:`${n.get(o.origin)??o.origin} (${o.count})`},o.origin))]})}var f$e=L(z(),1),MUn=[{value:eY,label:"All"},{value:"done",label:"Done"},{value:"running",label:"Running"}];function Smr({status:e,onChange:t}){return(0,f$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter items by status",children:MUn.map(r=>(0,f$e.jsx)(hs,{value:r.value,children:r.label},r.value))})}var eB=L(z(),1),IUn={display:"flex",alignItems:"center",gap:2,flexWrap:"wrap",mb:2},DUn="Repos show their bare name, or org/repo when two share one. Totals sum every phase's recorded usage.";function Cmr({origins:e,origin:t,onOriginChange:r,status:n,onStatusChange:i}){return(0,eB.jsxs)(fe,{sx:IUn,children:[(0,eB.jsx)(Smr,{status:n,onChange:i}),(0,eB.jsx)(Tmr,{origins:e,origin:t,onChange:r}),(0,eB.jsx)($e,{variant:"caption",color:"text.disabled",children:DUn})]})}var Omr=L(ge(),1);var kge=L(z(),1),OUn={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},wmr={display:"block",fontSize:"0.75rem",color:"text.disabled",whiteSpace:"nowrap"},NUn={...wmr,fontStyle:"italic"};function _ge({total:e,perPhase:t,partial:r}){return(0,kge.jsxs)(_n,{align:"right",sx:OUn,children:[e,t?(0,kge.jsx)($e,{component:"span",sx:r?NUn:wmr,children:t}):null]})}var rY=L(z(),1),BUn={width:"100%",maxWidth:0},FUn={display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},$Un={display:"block",mt:"2px",fontSize:"0.75rem",color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function _mr({id:e,name:t,type:r,repoLabel:n}){return(0,rY.jsxs)(_n,{sx:BUn,children:[(0,rY.jsx)(xn,{component:ys,to:BT(e),underline:"hover",color:"text.primary",title:t,sx:FUn,children:t}),(0,rY.jsxs)($e,{component:"span",sx:$Un,children:[so(e)," \xB7 ",r," \xB7 ",n]})]})}function kmr(e){let t=Math.max(1,e.recordedPhases);return{active:`${sg(e.activeMs/t)} / phase`,tokens:`${Zf(Math.round((e.tokensUp+e.tokensDown)/t))} / phase`}}function Emr(e){if(!(e.status==="done"||e.recordedPhases>e.phaseCount))return`${e.recordedPhases} of ${e.phaseCount} phases`}var zUn=new Set(["done","wontdo"]);function Rmr(e){return zUn.has(e)?{label:e,color:cJ[e]}:{label:"running",color:"warning"}}var d$e=L(z(),1),HUn={height:20,fontSize:"0.6875rem"};function Amr({status:e}){let t=Rmr(e);return(0,d$e.jsx)(_n,{children:(0,d$e.jsx)(bn,{label:t.label,size:"small",variant:"outlined",color:t.color,sx:HUn})})}var a0=L(z(),1),Pmr={whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"};function Lmr({row:e,repoLabel:t}){let r=kmr(e);return(0,a0.jsxs)(Gu,{hover:!0,children:[(0,a0.jsx)(_mr,{id:e.id,name:e.name,type:e.type,repoLabel:t}),(0,a0.jsx)(Amr,{status:e.status}),(0,a0.jsx)(_ge,{total:String(e.phaseCount||e.recordedPhases),perPhase:Emr(e),partial:!0}),(0,a0.jsx)(_ge,{total:sg(e.activeMs),perPhase:r.active}),(0,a0.jsx)(_ge,{total:`\u2191 ${Zf(e.tokensUp)} \u2193 ${Zf(e.tokensDown)}`,perPhase:r.tokens}),(0,a0.jsx)(_n,{align:"right",sx:Pmr,children:(0,a0.jsxs)(fe,{component:"span",sx:{color:Ife(e.peakContextPct)},children:[Math.round(e.peakContextPct),"%"]})}),(0,a0.jsx)(_n,{align:"right",sx:Pmr,children:e.lastPhaseAt?fa(e.lastPhaseAt):"\u2014"})]})}var Mmr=[{label:"Item"},{label:"Status"},{label:"Phases",sort:"phases",numeric:!0},{label:"Active",sort:"active",numeric:!0,tooltip:"Accumulated active time across the item's phases \u2014 not wall clock."},{label:"Tokens",sort:"tokens",numeric:!0},{label:"Peak ctx",sort:"peakContext",numeric:!0,tooltip:"The highest context-window usage any one phase reached."},{label:"Last phase",sort:"lastPhase",numeric:!0,tooltip:"When the item's most recent phase session started."}];var zm=L(z(),1),UUn={"& th":{whiteSpace:"nowrap"}};function Imr({column:e}){return e.tooltip?(0,zm.jsx)(lr,{title:e.tooltip,describeChild:!0,children:(0,zm.jsx)("span",{children:e.label})}):(0,zm.jsx)(zm.Fragment,{children:e.label})}function Dmr({sort:e,onSort:t}){return(0,zm.jsx)(Dk,{sx:UUn,children:(0,zm.jsx)(Gu,{children:Mmr.map(r=>{let n=r.sort,i=n!==void 0&&e.field===n;return(0,zm.jsx)(_n,{align:r.numeric?"right":"left",sortDirection:i?e.direction:!1,children:n===void 0?(0,zm.jsx)(Imr,{column:r}):(0,zm.jsx)(q1e,{active:i,direction:i?e.direction:"desc",onClick:()=>t(n),children:(0,zm.jsx)(Imr,{column:r})})},r.label)})})})}var TR=L(z(),1),WUn={"& td, & th":{px:1.5}};function Nmr({rows:e,origins:t,sort:r,onSort:n}){let i=(0,Omr.useMemo)(()=>wge([...t,...e.map(o=>o.origin)]),[t,e]);return(0,TR.jsx)(Ik,{component:on,children:(0,TR.jsxs)(wv,{size:"small",sx:WUn,children:[(0,TR.jsx)(Dmr,{sort:r,onSort:n}),(0,TR.jsx)(_v,{children:e.map(o=>(0,TR.jsx)(Lmr,{row:o,repoLabel:i.get(o.origin)??o.origin},o.id))})]})})}function Bmr(e){let t=Math.max(1,e.medianPhases),r=e.repoCount===1?"repo":"repos";return{items:String(e.itemCount),itemsFoot:`across ${e.repoCount} ${r} \xB7 ${e.doneCount} done`,phases:String(Math.round(e.medianPhases*10)/10),active:sg(e.medianActiveMs),activeFoot:`${sg(e.medianActiveMs/t)} per phase`,tokens:Zf(Math.round(e.medianTokens)),tokensFoot:`${Zf(Math.round(e.medianTokens/t))} per phase`}}var tB=L(z(),1),Fmr={display:"block"},VUn={fontWeight:400,fontVariantNumeric:"tabular-nums"};function nY({label:e,value:t,foot:r}){return(0,tB.jsxs)(fe,{children:[(0,tB.jsx)($e,{variant:"caption",color:"text.secondary",sx:Fmr,children:e}),(0,tB.jsx)($e,{variant:"h5",sx:VUn,children:t}),r?(0,tB.jsx)($e,{variant:"caption",color:"text.disabled",sx:Fmr,children:r}):null]})}var SR=L(z(),1),GUn={display:"flex",flexDirection:{xs:"column",sm:"row"},mb:3,"& > *":{flex:1,minWidth:0,p:2},"& > * + *":{borderColor:"divider",borderTop:{xs:1,sm:0},borderLeft:{xs:0,sm:1}}};function $mr({summary:e}){let t=Bmr(e);return(0,SR.jsxs)(on,{sx:GUn,children:[(0,SR.jsx)(nY,{label:"Items with recorded usage",value:t.items,foot:t.itemsFoot}),(0,SR.jsx)(nY,{label:"Median phases",value:t.phases}),(0,SR.jsx)(nY,{label:"Median active time",value:t.active,foot:t.activeFoot}),(0,SR.jsx)(nY,{label:"Median tokens",value:t.tokens,foot:t.tokensFoot})]})}var ip=L(z(),1);function zmr({items:e,data:t}){let{rows:r,total:n,page:i,pageSize:o}=e,{ref:a,height:s}=Sge(r.length,o);return(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)($mr,{summary:t.summary}),(0,ip.jsx)(Cmr,{origins:t.origins,origin:e.origin,onOriginChange:e.selectOrigin,status:e.status,onStatusChange:e.selectStatus}),n===0?(0,ip.jsx)($e,{color:"text.secondary",align:"center",sx:{py:6},children:"No items match this filter."}):(0,ip.jsxs)(ip.Fragment,{children:[(0,ip.jsx)(fe,{ref:a,sx:{minHeight:s},children:(0,ip.jsx)(Nmr,{rows:r,origins:t.origins.map(l=>l.origin),sort:e.sort,onSort:e.sortBy})}),(0,ip.jsx)(jF,{component:"div",count:n,page:i,rowsPerPage:o,rowsPerPageOptions:[o],onPageChange:(l,u)=>e.setPage(u)})]})]})}var L2=L(z(),1);function Hmr({items:e}){let{data:t}=e;return(0,L2.jsxs)(L2.Fragment,{children:[(0,L2.jsx)(fe,{sx:{height:4,mb:1},children:e.fetching&&(0,L2.jsx)(Mk,{})}),t?t.origins.length===0?(0,L2.jsx)($e,{color:"text.secondary",align:"center",sx:{py:6},children:"No item usage recorded yet."}):(0,L2.jsx)(zmr,{items:e,data:t}):null]})}function h$e(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function Ege(e,t){let r=Math.max(0,e-t),n=Math.floor(r/86400),i=Math.floor(r%86400/3600),o=Math.floor(r%3600/60);return n>0?`${n}d ${i}h`:i>0?`${i}h ${o}m`:`${o}m`}function qUn(e,t,r,n){let i=h$e(t,r,n);if(i!=null)return e/i}function __(e,t,r,n){let i=qUn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var jUn=["five_hour","seven_day"],YUn=["claude","codex","pi"];function Umr(e){let[t,r]=e.includes(":")?e.split(":",2):["claude",e],n=YUn.find(o=>o===t),i=jUn.find(o=>o===r);if(!(!n||!i)&&!(n==="claude"&&e.includes(":")))return{harness:n,window:i}}var Wmr={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};function rB(e){let t=Umr(e);if(!t)return Wmr.five_hour;let r=Wmr[t.window];return t.harness==="claude"?r:{...r,label:`${Lu(t.harness)} ${r.label}`}}var KUn={ok:"success.main",warn:"warning.main",over:"error.main"};function k_(e){return KUn[e]}var aY=L(z(),1),XUn={ok:"success",warn:"warning",over:"error"};function Vmr({percentage:e,level:t}){return(0,aY.jsxs)(fe,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,aY.jsx)(Mk,{variant:"determinate",value:Math.min(100,e),color:XUn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,aY.jsxs)(fe,{sx:{minWidth:40,textAlign:"right",color:k_(t)},children:[Math.round(e),"%"]})]})}function Gmr(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var ZUn=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function p$e(e){return ZUn.format(e)}var Rge=L(z(),1);function qmr({peak:e}){return(0,Rge.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Rge.jsx)(lr,{title:`Cycle started ${p$e(new Date(e.createdAt))}`,children:(0,Rge.jsx)("span",{children:p$e(new Date(e.resetsAt*1e3))})})})}var Ymr=L(z(),1);function jmr(){return(0,Ymr.jsx)(bn,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function Kmr(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${Zf(e.tokensUp)} \u2193 ${Zf(e.tokensDown)}`}var s0=L(z(),1);function Xmr({peak:e,now:t}){let{label:r,seconds:n,tint:i}=rB(e.window),o=__(e.usedPercentage,e.resetsAt,n,t);return(0,s0.jsxs)(Gu,{sx:a=>({backgroundColor:i?a.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,s0.jsxs)(_n,{children:[r,e.resetDetected&&(0,s0.jsx)(jmr,{})]}),(0,s0.jsx)(_n,{sx:{minWidth:160},children:(0,s0.jsx)(Vmr,{percentage:e.usedPercentage,level:o})}),(0,s0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:Gmr(e)}),(0,s0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,s0.jsx)(_n,{align:"right",sx:{whiteSpace:"nowrap"},children:Kmr(e)}),(0,s0.jsx)(qmr,{peak:e})]})}var Age=L(ge(),1);function E_(e){let[t,r]=(0,Age.useState)(()=>Math.floor(Date.now()/1e3));return(0,Age.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var pc=L(z(),1);function Zmr({peaks:e}){let t=E_(3e4);return(0,pc.jsx)(Ik,{component:on,children:(0,pc.jsxs)(wv,{size:"small",children:[(0,pc.jsx)(Dk,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,pc.jsxs)(Gu,{children:[(0,pc.jsx)(_n,{children:"Window"}),(0,pc.jsx)(_n,{children:"Peak usage"}),(0,pc.jsx)(_n,{align:"right",children:(0,pc.jsx)(lr,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,pc.jsx)("span",{children:"Avg context"})})}),(0,pc.jsx)(_n,{align:"right",children:(0,pc.jsx)(lr,{title:"Number of phase readings behind the average.",children:(0,pc.jsx)("span",{children:"Phases"})})}),(0,pc.jsx)(_n,{align:"right",children:"Tokens spent"}),(0,pc.jsx)(_n,{align:"right",children:"Cycle reset"})]})}),(0,pc.jsx)(_v,{children:e.map(r=>(0,pc.jsx)(Xmr,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var R_=L(z(),1);function Qmr({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:o,height:a}=Sge(e.length,n);return(0,R_.jsxs)(R_.Fragment,{children:[(0,R_.jsx)(fe,{ref:o,sx:{minHeight:a},children:(0,R_.jsx)(Zmr,{peaks:e})}),(0,R_.jsx)(jF,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var m$e=L(z(),1),Jmr=["five_hour","seven_day"],QUn=["codex:five_hour","codex:seven_day"];function JUn(e){let t=e?[...Jmr,...QUn]:Jmr;return[{value:"all",label:"All"},...t.map(r=>({value:r,label:rB(r).label}))]}function egr({window:e,onChange:t}){let{exposeCodexActions:r}=$T();return(0,m$e.jsx)(du,{size:"small",exclusive:!0,value:e,onChange:(n,i)=>i&&t(i),"aria-label":"Filter peaks by rate-limit window",children:JUn(r).map(n=>(0,m$e.jsx)(hs,{value:n.value,children:n.label},n.value))})}var X1=L(z(),1);function tgr({history:e}){let{window:t,total:r}=e;return(0,X1.jsxs)(X1.Fragment,{children:[(0,X1.jsx)(egr,{window:t,onChange:e.selectWindow}),(0,X1.jsx)(fe,{sx:{height:4,my:1},children:e.fetching&&(0,X1.jsx)(Mk,{})}),r===0?(0,X1.jsx)($e,{color:"text.secondary",align:"center",sx:{py:6},children:t==="all"?"No usage peaks recorded yet.":`No ${rB(t).label} usage peaks recorded yet.`}):(0,X1.jsx)(Qmr,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var Lge=L(ge(),1);async function rgr(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}var A_=L(ge(),1);function Pge(e,t,r=!0){let[n,i]=(0,A_.useState)(0),[o,a]=(0,A_.useState)(null),[s,l]=(0,A_.useState)(!1),[u,f]=(0,A_.useState)(null);(0,A_.useEffect)(()=>{if(!r)return;let p=!1;return l(!0),e(n,t).then(m=>{p||(a(m),l(!1))},m=>{p||(f(m instanceof Error?m:new Error(String(m))),l(!1))}),()=>{p=!0}},[e,n,t,r]);let d=o?.total??0;(0,A_.useEffect)(()=>{if(d===0)return;let p=Math.ceil(d/t)-1;n>p&&i(p)},[n,t,d]);let h=o?.rows??[];return{data:o,rows:h,total:d,loaded:o!==null,fetching:s,error:u,page:n,setPage:i,pageSize:t}}var eWn=30;function ngr(){let[e,t]=(0,Lge.useState)("all"),r=(0,Lge.useCallback)((o,a)=>rgr(o,a,e),[e]),n=Pge(r,eWn);return{...n,window:e,selectWindow:o=>{t(o),n.setPage(0)}}}var nB=L(ge(),1);function igr(e,t){return e.field!==t?{field:t,direction:"desc"}:{field:t,direction:e.direction==="desc"?"asc":"desc"}}var tWn=30;function ogr(e){let[t,r]=(0,nB.useState)(Jj),[n,i]=(0,nB.useState)(eY),[o,a]=(0,nB.useState)(Qj),s=(0,nB.useCallback)((h,p)=>bmr(h,p,{origin:t,status:n,sort:o}),[t,n,o]),l=Pge(s,tWn,e);return{...l,origin:t,selectOrigin:h=>{r(h),l.setPage(0)},status:n,selectStatus:h=>{i(h),l.setPage(0)},sort:o,sortBy:h=>{a(p=>igr(p,h)),l.setPage(0)}}}var P_=L(z(),1),rWn={borderBottom:1,borderColor:"divider",mb:2};function sgr(){let[e,t]=(0,agr.useState)("limits"),r=ngr(),n=ogr(e==="items");if(r.error)throw r.error;if(n.error)throw n.error;return(0,P_.jsxs)(nc,{loading:!r.loaded,title:"Usage history",maxWidth:"lg",children:[(0,P_.jsxs)(Nk,{value:e,onChange:(i,o)=>t(o),textColor:"inherit",indicatorColor:"secondary",sx:rWn,"aria-label":"Usage history views",children:[(0,P_.jsx)(Cv,{label:"Rate limits",value:"limits"}),(0,P_.jsx)(Cv,{label:"Items",value:"items"})]}),e==="limits"?(0,P_.jsx)(tgr,{history:r}):(0,P_.jsx)(Hmr,{items:n})]})}var hi=L(z(),1);function nWn({socket:e}){return(0,hi.jsx)(SF,{maxWidth:"lg",sx:{py:3,px:2},children:(0,hi.jsx)(dGt,{socket:e})})}function lgr({socket:e}){return W0("AppRoutes"),(0,hi.jsxs)(hi.Fragment,{children:[(0,hi.jsx)(gsr,{}),(0,hi.jsx)(c5,{children:(0,hi.jsxs)(gs,{element:(0,hi.jsx)(XYt,{socket:e}),children:[(0,hi.jsx)(gs,{path:"sessions",element:(0,hi.jsx)(Xpr,{socket:e})}),(0,hi.jsx)(gs,{path:"backlog/*",element:(0,hi.jsx)(nWn,{socket:e})}),(0,hi.jsx)(gs,{path:"next",element:(0,hi.jsx)(Aar,{sessions:e.sessions,selectSession:e.selectSession})}),(0,hi.jsx)(gs,{path:"news",element:(0,hi.jsx)(zor,{})}),(0,hi.jsx)(gs,{path:"releases",element:(0,hi.jsx)(dsr,{})}),(0,hi.jsx)(gs,{path:"usage",element:(0,hi.jsx)(sgr,{})}),(0,hi.jsx)(gs,{path:"backups",element:(0,hi.jsx)(nKt,{})}),(0,hi.jsx)(gs,{path:"config",element:(0,hi.jsx)(jXt,{})}),(0,hi.jsx)(gs,{path:"updates",element:(0,hi.jsx)(vmr,{})}),(0,hi.jsx)(gs,{path:"diff",element:(0,hi.jsx)(ior,{socket:e})}),(0,hi.jsx)(gs,{path:"file",element:(0,hi.jsx)(Oor,{socket:e})}),(0,hi.jsx)(gs,{path:"*",element:(0,hi.jsx)(Qxe,{to:"/sessions",replace:!0})})]})})]})}var Nge=L(ge(),1);var Oge=L(ge(),1);function cgr(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var L_=L(z(),1),iWn={display:"flex",gap:1,alignItems:"center",minWidth:0},oWn={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},aWn={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},sWn={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function lWn(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function ugr({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,L_.jsx)(Sp,{dense:!0,sx:{py:0},children:e.map((i,o)=>{let{dir:a,basename:s}=lWn(i);return(0,L_.jsxs)(cn,{selected:o===t,onMouseEnter:()=>r(o),onClick:()=>n(i),sx:iWn,children:[(0,L_.jsx)(c9,{path:i}),(0,L_.jsxs)(fe,{sx:oWn,children:[(0,L_.jsx)($e,{component:"span",sx:aWn,children:s}),(0,L_.jsx)($e,{component:"span",color:"text.secondary",sx:sWn,children:a})]})]},i)})})}var Mge=L(z(),1),cWn={maxHeight:420,overflowY:"auto"},uWn={px:2,py:2,fontSize:13};function fgr({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Mge.jsx)(fe,{sx:cWn,children:e?(0,Mge.jsx)($e,{color:"text.secondary",sx:uWn,children:e}):(0,Mge.jsx)(ugr,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var dgr=L(z(),1),fWn={mt:6,alignSelf:"flex-start"};function Ige({onClose:e,onEntered:t,centered:r=!1,children:n}){return(0,dgr.jsx)(Ps,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:r?void 0:fWn},transition:{onEntered:t}},children:n})}var Dge=L(ge(),1);var hgr={files:[],loading:!1,error:!1};function pgr(e,t){let[r,n]=(0,Dge.useState)(hgr),i=vr();return(0,Dge.useEffect)(()=>{if(!e){n(hgr);return}let o=!1;return n(s=>({...s,loading:!0})),(async()=>{try{let s=await fetch(un(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,i));if(!s.ok)throw new Error(`HTTP ${s.status}`);let l=await s.json();if(o)return;n({files:Array.isArray(l.files)?l.files:[],loading:!1,error:!1})}catch{o||n({files:[],loading:!1,error:!0})}})(),()=>{o=!0}},[e,t,i]),r}var CR=L(z(),1);function dWn(e,t,r){let n=new URLSearchParams({path:e});return t&&n.set("cwd",t),t&&r&&n.set("node",r),`/file?${n}`}function mgr({onClose:e}){let{worktreeNode:t}=$n();return(0,CR.jsx)(Yu.Provider,{value:t,children:(0,CR.jsx)(hWn,{onClose:e})})}function hWn({onClose:e}){let{worktreeCwd:t,worktreeNode:r}=$n(),[n,i]=(0,Oge.useState)(""),o=pgr(t,n),a=Xi(),s=(0,Oge.useRef)(null),l=p=>a(dWn(p,t,r)),{highlight:u,setHighlight:f,onKeyDown:d}=HT(o.files,n,l,e),h=p=>{l(p),e()};return(0,CR.jsxs)(Ige,{onClose:e,onEntered:()=>s.current?.focus(),children:[(0,CR.jsx)(mP,{autoFocus:!0,inputRef:s,value:n,onChange:i,onKeyDown:d,placeholder:"Search files by name..."}),(0,CR.jsx)(fgr,{message:cgr(t,n,o),files:o.files,highlight:u,onHighlight:f,onSelect:h})]})}function ggr(e){zo(Xn("quickOpen").matches,e)}var vgr=L(z(),1);function ygr(){let[e,t]=(0,Nge.useState)(!1);return ggr((0,Nge.useCallback)(()=>t(!0),[])),e?(0,vgr.jsx)(mgr,{onClose:()=>t(!1)}):null}var Bge=L(z(),1);function bgr({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Bge.jsx)(ol,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Bge.jsx)(ri,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Bge.jsx)(Jt,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var Uge=L(ge(),1);function xgr(e){let t=["claude"];return e.exposeCodexActions&&t.push("codex"),e.exposePiActions&&t.push("pi"),t}var Igr=L(ge(),1);var Tgr=L(z(),1),Sgr=ft((0,Tgr.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2"}),"Circle");var M_="0.775.4";var pWn={connected:"success.main",connecting:"warning.main",disconnected:"error.main","version-blocked":"error.main"};function Cgr(e){return e?pWn[e]:"success.main"}function wgr(e){return e.split("-")[0].split(".").map(Number)}function _gr(e,t){if(!e||!t||e===t)return;let r=wgr(e),n=wgr(t);for(let i=0;i<Math.max(r.length,n.length);i++){let o=(r[i]??0)-(n[i]??0);if(Number.isNaN(o))return;if(o!==0)return o<0?"behind":"ahead"}}var Fge=L(ge(),1),g$e=(0,Fge.createContext)(null);function $ge(){return(0,Fge.useContext)(g$e)}var wR=L(z(),1),mWn={height:16,fontSize:10},gWn={opacity:.6,fontSize:"0.85em"};function yWn(e,t){if(t===e.local)return"this machine";let r=e.links.find(n=>n.name===t);return r?r.error?`${r.state}: ${r.error}`:r.state:""}function sY({nodes:e,name:t,showVersion:r=!1}){let n=$ge()??M_,i=e.links.find(a=>a.name===t),o=_gr(i?.peerVersion,n);return(0,wR.jsx)(lr,{title:yWn(e,t),placement:"right",children:(0,wR.jsxs)(fe,{component:"span",sx:{display:"inline-flex",alignItems:"center",gap:.75},children:[(0,wR.jsx)(Sgr,{sx:{fontSize:8,color:Cgr(i?.state)}}),t,r&&i?.peerVersion&&(0,wR.jsxs)(fe,{component:"span",sx:gWn,children:["v",i.peerVersion]}),o&&(0,wR.jsx)(bn,{label:o,size:"small",color:o==="behind"?"warning":"info",sx:mWn})]})})}var _R=L(z(),1),vWn={opacity:.6},bWn={display:"inline-flex",alignItems:"center",gap:.5,px:.5,border:1,borderStyle:"dashed",borderRadius:1};function kgr({nodes:e,name:t,clone:r}){let n=(0,_R.jsx)(sY,{nodes:e,name:t});return r.kind==="cloned"?n:r.kind==="unavailable"?(0,_R.jsx)(fe,{component:"span",sx:vWn,children:n}):(0,_R.jsx)(lr,{title:uP(t,r.cloneTarget),children:(0,_R.jsxs)(fe,{component:"span",sx:bWn,children:[(0,_R.jsx)(cP,{sx:{fontSize:14}}),n]})})}var Rgr=L(z(),1),xWn={px:1.5,borderRadius:.75,fontSize:12,fontWeight:600,color:"text.secondary","&:hover":{color:"text.primary",bgcolor:"action.hover"},"&[aria-checked='true']":{color:"primary.main",bgcolor:"action.selected"},"&.Mui-focusVisible":{outline:2,outlineColor:"primary.main"}};function Egr({value:e,label:t,checked:r,autoFocus:n,onSelect:i}){return(0,Rgr.jsx)(Dn,{role:"radio","aria-checked":r,"data-value":e,tabIndex:r?0:-1,autoFocus:n&&r,onClick:i,sx:xWn,children:t})}var Agr={ArrowRight:1,ArrowLeft:-1};function TWn(e,t,r){if(e.key==="Tab"){let n=t+(e.shiftKey?-1:1);return n>=0&&n<r?n:void 0}return(t+Agr[e.key]+r)%r}function Pgr(e,t,r,n){return i=>{if(i.key==="ArrowUp"||i.key==="ArrowDown"){if(!n)return;i.preventDefault(),n();return}if(i.key!=="Tab"&&!Agr[i.key]){Bx(i);return}let o=TWn(i,e.indexOf(t),e.length);o!==void 0&&(i.preventDefault(),r(e[o]),i.currentTarget.querySelector(`[data-value="${e[o]}"]`)?.focus())}}var Lgr=L(ge(),1);function iB(e){return e?.querySelector('[aria-checked="true"]')}function Mgr(e,t){(0,Lgr.useEffect)(()=>{let r=e.current;if(!r?.contains(document.activeElement))return;let n=iB(r);n&&n!==document.activeElement&&n.focus()},[e,t])}var y$e=L(z(),1),SWn={border:1,borderColor:"divider",borderRadius:1,height:40,p:"2px",flexShrink:0};function zge({label:e,options:t,value:r,onChange:n,optionLabel:i=u=>u,groupRef:o,autoFocus:a,onTrack:s,onToggleRow:l}){return Mgr(o,r),(0,y$e.jsx)(Rt,{ref:o,direction:"row",role:"radiogroup","aria-label":e,spacing:"2px",onFocus:s,onKeyDown:Pgr(t,r,n,l),sx:SWn,children:t.map(u=>(0,y$e.jsx)(Egr,{value:u,label:i(u),checked:u===r,autoFocus:a,onSelect:()=>n(u)},u))})}var v$e=L(z(),1);function Dgr({value:e,onChange:t,cloneState:r}){let{nodes:n,names:i,visible:o}=gu(),a=(0,Igr.useRef)(null);return!o||!n||!e?null:(0,v$e.jsx)(zge,{label:"Machine",options:i,value:e,onChange:t,optionLabel:s=>(0,v$e.jsx)(kgr,{nodes:n,name:s,clone:r(s)}),groupRef:a,autoFocus:!1,onTrack:()=>{}})}var Ngr=L(z(),1);function Ogr({value:e,onChange:t,placeholder:r,inputRef:n,autoFocus:i,onTrack:o}){return(0,Ngr.jsx)(ni,{value:e,onChange:a=>t(a.target.value),onKeyDown:Bx,onFocus:o,onSelect:o,inputRef:n,placeholder:r,autoFocus:i,fullWidth:!0,multiline:!0,minRows:3,maxRows:12,slotProps:{htmlInput:{"aria-label":"Prompt"},input:{sx:{fontSize:14}}}})}var zgr=L(ge(),1);var M2={draft:{placeholder:"Describe the backlog item to draft...",submitLabel:"Start draft",sessionMode:"assist-draft"},bug:{placeholder:"Describe the bug: what happened, what you expected...",submitLabel:"File bug",sessionMode:"assist-bug"},prompt:{placeholder:fde,submitLabel:"Start session"},design:{placeholder:"Describe the design task...",submitLabel:"Start design"}},Bgr=Object.keys(M2);var b$e=L(z(),1);function Fgr({anchor:e,harness:t,harnesses:r,onPick:n,onClose:i}){return(0,b$e.jsx)(Dl,{open:e!==null,anchorEl:e,onClose:i,slotProps:{list:{dense:!0,"aria-label":"Harness"}},children:r.map(o=>(0,b$e.jsx)(cn,{role:"menuitemradio","aria-checked":o===t,selected:o===t,onClick:()=>{n(o),i()},sx:{fontSize:13},children:Lu(o)},o))})}var kR=L(z(),1);function $gr(e){return t=>t==="prompt"&&e?(0,kR.jsxs)(kR.Fragment,{children:["prompt",(0,kR.jsx)(fe,{component:"span",sx:{fontWeight:400,whiteSpace:"pre"},children:` \xB7 ${Lu(e)}`}),(0,kR.jsx)(Bp,{sx:{fontSize:18,mr:-.75}})]}):t}var ER=L(z(),1);function Hgr({draft:e,harness:t,harnesses:r,focus:n}){let[i,o]=(0,zgr.useState)(null),a=e.mode==="prompt"&&r.length>1,s=()=>o(iB(n.modeRef.current)??null),l=u=>{a&&u==="prompt"?s():e.setMode(u)};return(0,ER.jsxs)(ER.Fragment,{children:[(0,ER.jsx)(zge,{label:"Mode",options:Bgr,value:e.mode,onChange:l,optionLabel:$gr(r.length>1?t:void 0),groupRef:n.modeRef,autoFocus:n.autoFocus==="mode",onTrack:n.trackMode,onToggleRow:a?s:void 0}),(0,ER.jsx)(Fgr,{anchor:i,harness:t,harnesses:r,onPick:e.setHarness,onClose:()=>o(null)})]})}var Qgr=L(ge(),1);var x$e=L(z(),1),CWn={zIndex:e=>e.zIndex.modal+1};function Ugr({open:e,anchor:t,children:r}){return(0,x$e.jsx)(MA,{open:e,anchorEl:t,placement:"bottom-start",sx:CWn,children:(0,x$e.jsx)(on,{sx:{maxHeight:240,overflowY:"auto",width:t?.clientWidth},onMouseDown:n=>n.preventDefault(),children:r})})}function Wgr(e){return{htmlInput:{role:"combobox","aria-label":"Repo","aria-expanded":e},input:{sx:{fontSize:13,height:40}}}}var Vgr=L(QB(),1);function Ggr({open:e,highlighted:t,accept:r,close:n,navigate:i,openList:o}){return a=>{if(!e){if(a.key==="ArrowDown"){a.preventDefault(),o();return}Bx(a);return}if(a.key!=="Escape"){if(a.key==="Enter"){if(a.preventDefault(),t===void 0)return;(0,Vgr.flushSync)(()=>{r(t),n()}),Bx(a);return}if(a.key!=="Tab"){i(a);return}t!==void 0&&r(t),n()}}}function qgr(e,t){let r=t.trim().toLowerCase();return r?e.filter(n=>H0(n).toLowerCase().includes(r)):e}var T$e=L(ge(),1);function jgr(){let[e,t]=(0,T$e.useState)(!1),[r,n]=(0,T$e.useState)("");return{open:e,query:r,show:()=>t(!0),filterBy:i=>{n(i),t(!0)},close:()=>{t(!1),n("")}}}var Kgr=L(ge(),1);var Ygr=e=>e?H0(e):"";function Xgr(e){let[t,r]=(0,Kgr.useState)(()=>Ygr(e));return{text:t,setText:r,showRepo:n=>r(Ygr(n))}}function Zgr(e,t,r){let n=jgr(),i=Xgr(t),o=qgr(e,n.query),a=f=>{r(f),i.showRepo(f)},s=HT(o,n.query,a,n.close),l=()=>s.setHighlight(Math.max(e.indexOf(t),0)),u=()=>{l(),n.show()};return{open:n.open,text:i.text,filtered:o,highlight:s.highlight,setHighlight:s.setHighlight,onKeyDown:Ggr({open:n.open,highlighted:o[s.highlight],accept:a,close:n.close,navigate:s.onKeyDown,openList:u}),onClick:()=>{n.open||u()},onType:f=>{i.setText(f),n.filterBy(f)},onFocus:l,onBlur:()=>{n.close(),i.showRepo(t)},pick:f=>{a(f),n.close()}}}var oB=L(z(),1);function Jgr({repos:e,value:t,onChange:r,inputRef:n,autoFocus:i,onTrack:o}){let a=Zgr(e,t,r),s=(0,Qgr.useRef)(null);return(0,oB.jsxs)(fe,{ref:s,sx:{flex:1,minWidth:0},children:[(0,oB.jsx)(ni,{value:a.text,onChange:l=>a.onType(l.target.value),onFocus:l=>{l.target.select(),a.onFocus(),o()},inputRef:n,autoFocus:i,onClick:a.onClick,onBlur:a.onBlur,onKeyDown:a.onKeyDown,placeholder:"Repo",size:"small",fullWidth:!0,slotProps:Wgr(a.open)}),(0,oB.jsx)(Ugr,{open:a.open,anchor:s.current,children:(0,oB.jsx)(AJ,{repos:a.filtered,selected:t,highlight:a.highlight,onHighlight:a.setHighlight,onSelect:a.pick})})]})}var I_=L(z(),1);function e0r({cloneState:e,...t}){let{draft:r,focus:n}=t,{repos:i}=$n();return(0,I_.jsxs)(Rt,{spacing:1,sx:{p:1},children:[(0,I_.jsx)(Ogr,{value:r.prompt,onChange:r.setPrompt,placeholder:M2[r.mode].placeholder,inputRef:n.promptRef,autoFocus:n.autoFocus==="prompt",onTrack:n.trackPrompt}),(0,I_.jsxs)(Rt,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,I_.jsx)(Jgr,{repos:i,value:r.cwd,onChange:r.setCwd,inputRef:n.repoRef,autoFocus:n.autoFocus==="repo",onTrack:n.trackRepo}),(0,I_.jsx)(Hgr,{...t})]}),(0,I_.jsx)(Dgr,{value:r.node,onChange:r.setNode,cloneState:e})]})}var aB=L(z(),1),wWn=["Enter start","Shift+Enter newline","Esc close"],_Wn={alignItems:"center",px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function t0r({submitLabel:e,disabled:t=!1}){return(0,aB.jsxs)(Rt,{direction:"row",spacing:1.5,sx:_Wn,children:[(0,aB.jsx)(Rt,{direction:"row",spacing:1.5,sx:{mr:"auto"},children:wWn.map(r=>(0,aB.jsx)($e,{variant:"caption",color:"text.secondary",children:r},r))}),(0,aB.jsx)(Jt,{type:"submit",variant:"contained",size:"small",disabled:t,children:e})]})}function r0r({mode:e,harness:t,prompt:r,cwd:n,node:i},o){let a=n||void 0,s=i?[i]:[];if(e==="prompt"){t==="claude"?o.onCreate(r,a,...s):o.onCreateHarness(t,r,a,...s);return}if(e==="design"){o.onCreateDesign(r,a,...s);return}let l=i?[{node:i}]:[];Gjt(M2[e].sessionMode,n,(u,f)=>o.onCreateAssist(u,f,...l),()=>{},r)}function n0r(e,t,r,n){return r.kind==="blocked"?!1:r.kind==="clone"?(gJ(r.prompt,n.onCreateAssist),!0):(r0r({mode:e.mode,harness:t,prompt:e.prompt,cwd:r.cwd,node:e.node},n),e.clear(),!0)}var RR=L(ge(),1);function i0r(e,t){let r=(0,RR.useRef)(e),n=(0,RR.useRef)(null),i=(0,RR.useRef)(null),o=(0,RR.useRef)(null),a=(0,RR.useCallback)(u=>{n.current=u;let{field:f,selectionStart:d,selectionEnd:h}=r.current;u&&f==="prompt"&&u.setSelectionRange(d,h)},[]),s=u=>{let f=u.target;t({field:"prompt",selectionStart:f.selectionStart,selectionEnd:f.selectionEnd})},l=()=>{if(o.current?.closest("form")?.contains(document.activeElement))return;let{field:u}=r.current;({repo:i.current,mode:iB(o.current),prompt:n.current}[u]??n.current)?.focus()};return{autoFocus:e.field,promptRef:a,repoRef:i,modeRef:o,trackPrompt:s,trackRepo:()=>t({...e,field:"repo"}),trackMode:()=>t({...e,field:"mode"}),restore:l}}function kWn(e,t,r){return e?r.kind==="cloned"?{kind:"launch",cwd:r.cwd}:r.kind==="clonable"?{kind:"clone",prompt:LJ(r,t)}:{kind:"blocked"}:{kind:"launch",cwd:e}}function o0r(e,t){let{names:r,visible:n}=gu(),i=TJ(t,n?r:[void 0]);return{cloneState:i,target:kWn(t,e,i(e))}}var sB=L(z(),1);function a0r({draft:e,launchers:t,onClose:r}){let n=i0r(e.focus,e.setFocus),i=xgr($T()),o=i.includes(e.harness)?e.harness:"claude",{target:a,cloneState:s}=o0r(e.node,e.cwd),l=u=>{u.preventDefault(),n0r(e,o,a,t)&&r()};return(0,sB.jsx)(Ige,{onClose:r,onEntered:n.restore,centered:!0,children:(0,sB.jsxs)("form",{onSubmit:l,children:[(0,sB.jsx)(e0r,{draft:e,harness:o,harnesses:i,focus:n,cloneState:s}),(0,sB.jsx)(t0r,{submitLabel:a.kind==="clone"?"Clone":M2[e.mode].submitLabel,disabled:a.kind==="blocked"})]})})}var Hge=L(ge(),1);function s0r(e){let[t,r]=(0,Hge.useState)(null);return(0,Hge.useEffect)(()=>{let n=!1;return(async()=>{let i="draft";try{let o=e?`?cwd=${encodeURIComponent(e)}`:"",s=await(await fetch(`/api/new-session-defaults${o}`)).json();Object.hasOwn(M2,s?.mode)&&(i=s.mode)}catch{}n||r(i)})(),()=>{n=!0}},[e]),t}function l0r(e,{visible:t,names:r,selected:n}){if(t)return e&&r.includes(e)?e:n}var I2=L(ge(),1),c0r={field:"prompt",selectionStart:0,selectionEnd:0};function u0r(){let[e,t]=(0,I2.useState)(""),[r,n]=(0,I2.useState)(),[i,o]=(0,I2.useState)(),[a,s]=(0,I2.useState)("claude"),[l,u]=(0,I2.useState)(),[f,d]=(0,I2.useState)(c0r),h=(0,I2.useCallback)(()=>{t(""),n(void 0),o(void 0),u(void 0),d(c0r)},[]);return{prompt:e,cwd:r,mode:i,harness:a,node:l,focus:f,setPrompt:t,setNode:u,setCwd:n,setMode:o,setHarness:s,setFocus:d,clear:h}}function f0r(e=s0r){let{selectedCwd:t}=$n(),r=gu(),n=u0r(),i=n.cwd??t,o=e(i);return o?{...n,cwd:i,mode:n.mode??o,node:l0r(n.node,r)}:null}function d0r(e){zo(Xn("newSession").matches,e)}var h0r=L(ge(),1);function p0r(e,t){let{selectedCwd:r}=$n(),[n,i]=Pc(),o=n.get("new"),a=n.get("newCwd")??r,{setPrompt:s,setCwd:l,setFocus:u}=e??{};(0,h0r.useEffect)(()=>{o===null||!s||!l||!u||(o&&(s(o),l(a),u({field:"prompt",selectionStart:o.length,selectionEnd:o.length})),t(),i(f=>(f.delete("new"),f.delete("newCwd"),f),{replace:!0}))},[o,a,s,l,u,t,i])}var g0r=L(z(),1);function m0r({launchers:e}){let[t,r]=(0,Uge.useState)(!1),n=f0r(),i=(0,Uge.useCallback)(()=>r(!0),[]);return d0r(i),p0r(n,i),!t||!n?null:(0,g0r.jsx)(a0r,{draft:n,launchers:e,onClose:()=>r(!1)})}var Wge=L(z(),1);function y0r({reconnecting:e}){return(0,Wge.jsx)(ol,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Wge.jsx)(ri,{severity:"info",variant:"filled",icon:(0,Wge.jsx)(mo,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Z1=L(z(),1);function v0r({socket:e,onViewLaunchedSession:t}){return(0,Z1.jsxs)(Z1.Fragment,{children:[(0,Z1.jsx)(ygr,{}),(0,Z1.jsx)(m0r,{launchers:{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreateHarness:e.createHarnessSession,onCreateAssist:e.createAssistSession}}),(0,Z1.jsx)(y0r,{reconnecting:e.reconnecting}),(0,Z1.jsx)(Mu,{error:e.error,onClose:e.clearError}),(0,Z1.jsx)(bgr,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var l0=L(ge(),1);async function b0r(e,t){try{let r=await fetch(un("/api/updates",t?void 0:e)),n=await r.json();if(!r.ok)throw new Error(n?.error??`HTTP ${r.status}`);return{name:e,local:t,status:n}}catch(r){return{name:e,local:t,error:r instanceof Error?r.message:"Failed to load update state"}}}var EWn=6e4;function x0r(e){let t=e.nodes?.local,r=e.names.join(`
|
|
3977
3977
|
`),[n,i]=(0,l0.useState)([]),[o,a]=(0,l0.useState)(!0),s=(0,l0.useRef)(0),l=(0,l0.useCallback)(()=>{let u=r?r.split(`
|
|
3978
3978
|
`):[];if(u.length===0)return;let f=++s.current;Promise.all(u.map(d=>b0r(d,d===t))).then(d=>{f===s.current&&(i(d),a(!1))})},[r,t]);return(0,l0.useEffect)(()=>{l();let u=setInterval(l,EWn);return()=>clearInterval(u)},[l]),(0,l0.useMemo)(()=>({entries:n,loading:o,refresh:l}),[n,o,l])}var D_=L(z(),1);function T0r({shell:e,children:t}){let{socket:r,selection:n,launch:i,topBar:o,sidebarCollapse:a}=e,s=x0r(r.nodeSelection);return(0,D_.jsx)(l$e.Provider,{value:s,children:(0,D_.jsx)(IDe.Provider,{value:o,children:(0,D_.jsx)(aOe.Provider,{value:a,children:(0,D_.jsx)(sz.Provider,{value:n,children:(0,D_.jsx)(y2e.Provider,{value:r.nodeSelection,children:(0,D_.jsx)(Yu.Provider,{value:n.selectedNode,children:(0,D_.jsx)(p2e.Provider,{value:i,children:t})})})})})})})}var S0r=L(z(),1),C0r=ft((0,S0r.jsx)("path",{d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2zM4 6h16v10H4z"}),"Computer");var w0r=L(ge(),1);var c0=L(z(),1),RWn={ml:1,textTransform:"none",fontSize:12};function _0r(){let{nodes:e,names:t,visible:r,selected:n,select:i}=gu(),[o,a]=(0,w0r.useState)(null);return!r||!e||!n?null:(0,c0.jsxs)(c0.Fragment,{children:[(0,c0.jsx)(Jt,{size:"small",color:"inherit",startIcon:(0,c0.jsx)(C0r,{fontSize:"small"}),"aria-label":"Machine","aria-haspopup":"menu",onClick:s=>a(s.currentTarget),sx:RWn,children:(0,c0.jsx)(sY,{nodes:e,name:n})}),(0,c0.jsx)(Dl,{anchorEl:o,open:!!o,onClose:()=>a(null),children:t.map(s=>(0,c0.jsx)(cn,{selected:s===n,onClick:()=>{i(s),a(null)},sx:{fontSize:13},children:(0,c0.jsx)(sY,{nodes:e,name:s,showVersion:!0})},s))})]})}var lY=L(ge(),1);function k0r(e,t){return[...e[0].slice(0,-1),String(t+1)]}var Vge=L(z(),1);function E0r({index:e,label:t,...r}){let{chords:n}=Xn("navTab");return(0,Vge.jsx)(lr,{describeChild:!0,title:(0,Vge.jsx)(Md,{label:t,chords:[k0r(n,e)]}),children:(0,Vge.jsx)(Cv,{label:t,...r})})}var S$e=L(ge(),1);function R0r(e,t){let{bound:r}=Xn("navTab"),n=e.length,i=(0,S$e.useCallback)(a=>(YG(a,r)??n)<n,[r,n]),o=(0,S$e.useCallback)(a=>{let s=e[YG(a,r)??-1];s&&t(s)},[e,t,r]);zo(i,o)}var Gge=L(ge(),1);function A0r(){let[e,t]=(0,Gge.useState)(!1);return(0,Gge.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/news/nav")).json();r||t(i?.showInNav===!0)}catch{r||t(!1)}})(),()=>{r=!0}},[]),e}var qge=L(ge(),1);async function AWn(e,t){let r=await fetch(un(`/api/releases/configured?cwd=${encodeURIComponent(e)}`,t));return r.ok?(await r.json())?.configured===!0:void 0}function P0r(e){let[t,r]=(0,qge.useState)(null),n=vr(),i=`${n??""}\0${e}`;return(0,qge.useEffect)(()=>{if(!e)return;let o=!1;return AWn(e,n).catch(()=>{}).then(a=>{o||r({key:i,configured:a})}),()=>{o=!0}},[e,n,i]),t?.key===i?t.configured:void 0}var L0r=L(ge(),1);function M0r(e){let{pathname:t}=ua(),r=Xi(),n=t==="/releases"||t.startsWith("/releases/");(0,L0r.useEffect)(()=>{e===!1&&n&&r("/sessions",{replace:!0})},[e,n,r])}var PWn={path:"/sessions",label:"Sessions"},LWn={path:"/backlog",label:"Backlog"},MWn={path:"/next",label:"Next"},IWn={path:"/releases",label:"Releases"},DWn={path:"/news",label:"News"};function I0r(e,t){return[PWn,LWn,MWn,...e?[IWn]:[],...t?[DWn]:[]]}var C$e=L(z(),1);function D0r({cwd:e}){let t=ua(),r=Xi(),n=P0r(e),i=A0r();M0r(n);let o=n===!0,a=(0,lY.useMemo)(()=>I0r(o,i),[o,i]),s=(0,lY.useMemo)(()=>a.map(f=>f.path),[a]),l=a.findIndex(f=>t.pathname.startsWith(f.path)),u=(0,lY.useCallback)(f=>{t.pathname!==f&&r(f)},[t.pathname,r]);return R0r(s,u),(0,C$e.jsx)(Nk,{value:l===-1?!1:l,textColor:"inherit",indicatorColor:"secondary",children:a.map((f,d)=>(0,C$e.jsx)(E0r,{index:d,label:f.label,onClick:()=>u(f.path)},f.path))})}var O0r=L(z(),1),N0r=ft((0,O0r.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m5 11h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddCircle");var cY=L(z(),1),OWn={color:"success.light"};function B0r(){let[,e]=Pc(),{label:t,chords:r}=Xn("newSession");return(0,cY.jsx)(lr,{title:(0,cY.jsx)(Md,{label:t,chords:r}),children:(0,cY.jsx)(sr,{size:"small",sx:OWn,"aria-label":"New session",onClick:()=>e(i=>(i.set("new",""),i),{replace:!0}),children:(0,cY.jsx)(N0r,{})})})}var Yge=L(ge(),1);var jge=L(z(),1),NWn={color:"inherit"};function F0r({cwd:e}){let[t,r]=(0,Yge.useState)(null),n=vr();return(0,Yge.useEffect)(()=>{if(!e){r(null);return}let i=!1;return(async()=>{try{let a=await(await fetch(un(`/api/github-url?cwd=${encodeURIComponent(e)}`,n))).json();i||r(a?.url??null)}catch{i||r(null)}})(),()=>{i=!0}},[e,n]),t?(0,jge.jsx)(lr,{title:"Open in GitHub",children:(0,jge.jsx)(sr,{sx:NWn,onClick:()=>window.open(t,"_blank"),children:(0,jge.jsx)(rP,{})})}):null}var H0r=L(ge(),1);var z0r=L(ge(),1);var Kge=L(z(),1);function $0r({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let o=__(i,e?.resets_at,t,n),a=e?.resets_at!=null?Ege(e.resets_at,n):r;return(0,Kge.jsxs)(fe,{component:"span",children:[(0,Kge.jsxs)(fe,{component:"span",sx:{color:k_(o)},children:[Math.round(i),"%"]})," ",(0,Kge.jsxs)(fe,{component:"span",sx:{color:"text.secondary"},children:["(",a,")"]})]})}var O_=L(z(),1);function Xge({rateLimits:e}){let t=E_(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(n=>n.window?.used_percentage!=null);return(0,O_.jsx)(O_.Fragment,{children:r.map((n,i)=>(0,O_.jsxs)(z0r.Fragment,{children:[i>0?(0,O_.jsx)(fe,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,O_.jsx)($0r,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var N_=L(z(),1);function U0r({groups:e}){return(0,N_.jsx)(N_.Fragment,{children:e.map((t,r)=>(0,N_.jsxs)(H0r.Fragment,{children:[(0,N_.jsx)(fe,{component:"span",sx:{color:"text.secondary",ml:r>0?1:0,mr:.5},children:Lu(t.harness)}),(0,N_.jsx)(Xge,{rateLimits:t.rateLimits})]},t.harness))})}function BWn(e){if(e==="over")return{level:"warn",boundary:100};if(e==="warn")return{level:"ok",boundary:75}}function FWn(e){if(e==="ok")return{level:"warn",boundary:75};if(e==="warn")return{level:"over",boundary:100}}function $Wn(e,t,r,n){if(e>=t)return;let i=e/t;return Math.round(r-n*(1-i))}function G0r(e,t,r,n){if(t==null)return{kind:"unprojectable"};let i=h$e(t,r,n);if(i==null)return{kind:"unprojectable"};let o=__(e,t,r,n),a=BWn(o),s=FWn(o);return{kind:"projected",recovery:a&&{level:a.level,pct:a.boundary*i,at:$Wn(e,a.boundary,t,r)},worse:s&&{level:s.level,pct:s.boundary*i}}}function q0r(e,t){return e.at==null?"not before reset":`${e.level==="ok"?"green":"under"} in ${Ege(e.at,t)}`}var u0=L(z(),1);function w$e({direction:e,threshold:t}){let r=e==="back",n={display:"inline-flex",gap:.5,minWidth:"6ch",justifyContent:r?"flex-end":"flex-start"};if(!t)return(0,u0.jsx)(fe,{component:"span",sx:n});let i=(0,u0.jsx)(fe,{component:"span",sx:{opacity:.6},children:r?"\u2190":"\u2192"}),o=(0,u0.jsxs)(fe,{component:"span",sx:{color:k_(t.level)},children:[Math.round(t.pct),"%"]});return(0,u0.jsx)(fe,{component:"span",sx:n,children:r?(0,u0.jsxs)(u0.Fragment,{children:[o,i]}):(0,u0.jsxs)(u0.Fragment,{children:[i,o]})})}var B_=L(z(),1);function j0r({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let o=__(t,r,n,i),a=G0r(t,r,n,i),s=a.kind==="projected"?a:void 0;return(0,B_.jsxs)(fe,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,B_.jsx)(fe,{component:"span",sx:{minWidth:"2ch"},children:e}),(0,B_.jsx)(w$e,{direction:"back",threshold:s?.recovery}),(0,B_.jsxs)(fe,{component:"span",sx:{minWidth:"4ch",textAlign:"right",color:k_(o)},children:[Math.round(t),"%"]}),(0,B_.jsx)(w$e,{direction:"forward",threshold:s?.worse}),(0,B_.jsx)(fe,{component:"span",sx:{opacity:.6},children:s?s.recovery&&q0r(s.recovery,i):"no projection yet"})]})}function Y0r(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var K0r=L(z(),1);function Zge({rateLimits:e,now:t}){return Y0r(e).map(r=>(0,K0r.jsx)(j0r,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label))}var AR=L(z(),1);function X0r({groups:e}){let t=E_(3e4);return(0,AR.jsxs)(fe,{sx:{fontFamily:"monospace",fontSize:12},children:[e.map(r=>(0,AR.jsxs)(fe,{sx:{mb:.5},children:[(0,AR.jsx)(fe,{sx:{opacity:.8},children:Lu(r.harness)}),(0,AR.jsx)(Zge,{rateLimits:r.rateLimits,now:t})]},r.harness)),(0,AR.jsx)(fe,{sx:{mt:.5,opacity:.6},children:"Account usage per harness \u2014 view history"})]})}function Z0r(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Q0r(e,t){let r=[];Z0r(e)&&r.push({harness:"claude",rateLimits:e});for(let[n,i]of Object.entries(t))Z0r(i)&&r.push({harness:n,rateLimits:i});return r}var uY=L(z(),1),_$e="Claude account usage (5h / 7d windows) \u2014 view history";function J0r({rateLimits:e}){let t=E_(3e4);return(0,uY.jsxs)(fe,{sx:{fontFamily:"monospace",fontSize:12},children:[(0,uY.jsx)(Zge,{rateLimits:e,now:t}),(0,uY.jsx)(fe,{sx:{mt:.5,opacity:.6},children:_$e})]})}var PR=L(z(),1),zWn={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13},HWn={};function eyr({rateLimits:e,harnessRateLimits:t=HWn}){let r=Q0r(e,t),n=r.every(s=>s.harness==="claude"),i=e,o=_$e,a="Usage";return r.length>0&&n?(o=(0,PR.jsx)(J0r,{rateLimits:i}),a=(0,PR.jsx)(Xge,{rateLimits:i})):r.length>0&&(o=(0,PR.jsx)(X0r,{groups:r}),a=(0,PR.jsx)(U0r,{groups:r})),(0,PR.jsx)(lr,{title:o,children:(0,PR.jsx)(xn,{component:ys,to:"/usage",underline:"hover",color:"inherit",sx:zWn,children:a})})}var tyr=L(z(),1),ryr=ft((0,tyr.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh");var O2=L(ge(),1);var lB={target:"both",label:"Restart daemon",message:"This restarts the sessions daemon and the web server, then reloads the page once the server is back."};function cB(e,t){let r=t?`&node=${encodeURIComponent(t)}`:"";return fetch(`/api/restart?target=${e}${r}`,{method:"POST"})}var D2=L(ge(),1);var UWn="/api/session-layout";async function WWn(){try{return(await fetch(UWn,{cache:"no-store"})).ok}catch{return!1}}async function nyr(e){let t=0;for(;!e();){if(t=await WWn()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function VWn(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function iyr(e,t,r){let n=(0,D2.useRef)(VWn()),i=(0,D2.useRef)(r);i.current=r,(0,D2.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,nyr(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let o=(0,D2.useCallback)(()=>{n.current.abandoned=!0},[]),a=(0,D2.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,D2.useEffect)(()=>o,[o]),{arm:a,abandon:o}}var GWn=15e3;function uB(e,t,r){let[n,i]=(0,O2.useState)(!1),[o,a]=(0,O2.useState)(null),s=(0,O2.useRef)(void 0),{arm:l,abandon:u}=iyr(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,O2.useEffect)(()=>()=>clearTimeout(s.current),[]);let f=(0,O2.useCallback)(async()=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),a("Web server did not come back")},GWn);try{if(!(await cB(e)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),a("Failed to restart web server")}},[e,l,u]);return{pending:n,error:o,clearError:()=>a(null),restart:f}}var f0=L(z(),1),qWn={color:"inherit",mr:1.5};function oyr({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=uB("webserver",e);return(0,f0.jsxs)(f0.Fragment,{children:[(0,f0.jsx)(lr,{title:"Restart web server",children:(0,f0.jsx)("span",{children:(0,f0.jsx)(sr,{sx:qWn,disabled:t,onClick:i,children:t?(0,f0.jsx)(mo,{size:24}):(0,f0.jsx)(ryr,{})})})}),(0,f0.jsx)(Mu,{error:r,onClose:n})]})}var lyr=L(ge(),1);var ayr=L(ge(),1);function syr(e){let t=Ni().palette.primary.main;zo(Xn("focusRepoPicker").matches,(0,ayr.useCallback)(()=>Rf({locate:()=>e.current?.querySelector("button")??null,focus:r=>r.focus()},t),[e,t]))}var fY=L(z(),1),jWn={width:240,ml:2};function cyr({repos:e,selected:t,onSelect:r}){let n=(0,lyr.useRef)(null);syr(n);let{chords:i}=Xn("focusRepoPicker");return(0,fY.jsx)(fe,{ref:n,sx:jWn,children:(0,fY.jsx)(_J,{label:t?H0(t):"Select repo...",tooltip:(0,fY.jsx)(Md,{label:"Repo",chords:i}),children:o=>(0,fY.jsx)(vet,{repos:e,selected:t,onSelect:r,close:o})})})}var byr=L(ge(),1);var dY=L(ge(),1);function Qge(e){let[t,r]=(0,dY.useState)([]),[n,i]=(0,dY.useState)(!0),o=vr();return(0,dY.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),fetch(un(`/api/pr-list?cwd=${encodeURIComponent(e)}`,o)).then(s=>s.json()).then(s=>{a||(r(Array.isArray(s?.prs)?s.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e,o]),{prs:t,loading:n}}var k$e=L(z(),1);function E$e({text:e}){return(0,k$e.jsx)(fe,{sx:{p:1.5},children:(0,k$e.jsx)($e,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var fB=L(z(),1);function uyr({pr:e,highlighted:t,onHover:r,onPick:n}){let i=RJ(t);return(0,fB.jsx)(cn,{ref:i,selected:t,onMouseDown:o=>o.preventDefault(),onMouseEnter:r,onClick:()=>n(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,fB.jsxs)(Rt,{spacing:.25,sx:{minWidth:0},children:[(0,fB.jsx)($e,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,fB.jsxs)($e,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",fa(e.createdAt)]})]})})}var R$e=L(z(),1);function fyr({prs:e,highlight:t,onHighlight:r,onPick:n}){return(0,R$e.jsx)(Sp,{dense:!0,disablePadding:!0,sx:{maxHeight:200,overflowY:"auto"},children:e.map((i,o)=>(0,R$e.jsx)(uyr,{pr:i,highlighted:o===t,onHover:()=>r(o),onPick:n},i.number))})}var hyr=L(ge(),1);function dyr(e,t){let r=t.trim().toLowerCase();if(!r)return e;let n=r.replace(/^#/,"");return e.filter(i=>i.title.toLowerCase().includes(r)||i.author.toLowerCase().includes(r)||n!==""&&String(i.number).includes(n))}function pyr(e,t,r){let[n,i]=(0,hyr.useState)(""),o=dyr(e,n),{highlight:a,setHighlight:s,onKeyDown:l}=HT(o,n,t,r);return{filter:n,setFilter:i,filtered:o,highlight:a,setHighlight:s,onKeyDown:l,select:f=>{t(f),r()}}}var F_=L(z(),1),myr={...pP,left:"auto",width:320,maxHeight:"none",overflowY:"visible"};function gyr({cwd:e,onPick:t,close:r}){let{prs:n,loading:i}=Qge(e),o=pyr(n,t,r);return i||n.length===0?(0,F_.jsx)(on,{elevation:4,sx:myr,children:(0,F_.jsx)(E$e,{text:i?"Loading open PRs\u2026":"No open PRs"})}):(0,F_.jsxs)(on,{elevation:4,sx:myr,children:[(0,F_.jsx)(mP,{autoFocus:!0,value:o.filter,onChange:o.setFilter,onKeyDown:o.onKeyDown,placeholder:"Filter PRs..."}),o.filtered.length===0?(0,F_.jsx)(E$e,{text:"No PRs match"}):(0,F_.jsx)(fyr,{prs:o.filtered,highlight:o.highlight,onHighlight:o.setHighlight,onPick:o.select})]})}var vyr=L(z(),1);function yyr({cwd:e,onPick:t,close:r}){return(0,vyr.jsx)(gyr,{cwd:e,onPick:t,close:r})}var $_=L(z(),1);function xyr({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=Qge(e),[o,a]=(0,byr.useState)(null);return i||n.length===0?null:(0,$_.jsxs)($_.Fragment,{children:[(0,$_.jsx)(_J,{label:"prs",disabled:t,children:s=>(0,$_.jsx)(yyr,{cwd:e,onPick:a,close:s})}),o&&(0,$_.jsx)(Gpe,{pr:o,onSelect:s=>{r(o,s),a(null)},onCancel:()=>a(null)})]})}var Syr=L(z(),1);function Tyr({onStartRun:e,cwd:t}){let r=cde(t);return!t||r.length===0?null:(0,Syr.jsx)(sde,{runs:r,onSelect:n=>e(n,t)})}var hY=L(z(),1);function Cyr({onCreateAssist:e,onStartRun:t}){let{selectedCwd:r,selectedNode:n}=$n();return(0,hY.jsxs)(Rt,{direction:"row",spacing:.5,sx:{alignItems:"center","&:not(:empty)":{ml:2}},children:[(0,hY.jsx)(xyr,{cwd:r,disabled:!r,onSelect:(i,o)=>e([...o,String(i.number)],r,{...dN(i),node:n})}),(0,hY.jsx)(Tyr,{onStartRun:(i,o)=>t(i,o,void 0,void 0,n),cwd:r})]})}var Hd=L(z(),1),YWn={minHeight:48,pl:1,pr:14};function wyr({socket:e,selection:t}){let{collapsed:r,onToggleCollapsed:n}=vw();return(0,Hd.jsxs)(Ok,{variant:"dense",disableGutters:!0,sx:YWn,children:[r&&(0,Hd.jsx)(xde,{collapsed:r,onToggleCollapsed:n}),(0,Hd.jsx)(oyr,{reconnecting:e.reconnecting}),(0,Hd.jsx)(D0r,{cwd:t.selectedCwd}),(0,Hd.jsx)(_0r,{}),(0,Hd.jsx)(cyr,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd}),(0,Hd.jsxs)(fe,{sx:{display:"flex",alignItems:"center",ml:1},children:[(0,Hd.jsx)(dde,{cwd:t.selectedCwd}),(0,Hd.jsx)(F0r,{cwd:t.selectedCwd}),(0,Hd.jsx)(B0r,{})]}),(0,Hd.jsx)(Cyr,{onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Hd.jsx)(eyr,{rateLimits:e.rateLimits,harnessRateLimits:e.harnessRateLimits})]})}var Jge=L(ge(),1);function _yr(){let[e,t]=(0,Jge.useState)(null);return(0,Jge.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/health")).json();!r&&typeof i?.nodeName=="string"&&t(i.nodeName)}catch{}})(),()=>{r=!0}},[]),e}var Eyr=L(z(),1),KWn={lineHeight:"32px",bgcolor:"transparent"};function kyr(){let e=_yr();return e?(0,Eyr.jsx)(e1e,{sx:KWn,children:e}):null}var Ryr=L(z(),1),Ayr=ft((0,Ryr.jsx)("path",{d:"M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m-9 3h2v2h-2zm0 3h2v2h-2zM8 8h2v2H8zm0 3h2v2H8zm-1 2H5v-2h2zm0-3H5V8h2zm9 7H8v-2h8zm0-4h-2v-2h2zm0-3h-2V8h2zm3 3h-2v-2h2zm0-3h-2V8h2z"}),"Keyboard");var Pyr=L(z(),1),Lyr=ft((0,Pyr.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt");var Myr=L(z(),1),Iyr=ft((0,Myr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4");var Dyr=L(z(),1),Oyr=ft((0,Dyr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7");var A$e=L(z(),1);function Nyr({mode:e}){return e==="dark"?(0,A$e.jsx)(Oyr,{fontSize:"small"}):(0,A$e.jsx)(Iyr,{fontSize:"small"})}var Byr=L(z(),1),Fyr=ft((0,Byr.jsx)("path",{d:"m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83"}),"Speed");var dB=L(z(),1);function $yr(){let e=Zpe();return(0,dB.jsxs)(cn,{onClick:()=>Xet(!e),children:[(0,dB.jsx)(rT,{children:(0,dB.jsx)(Fyr,{fontSize:"small"})}),(0,dB.jsx)(Tp,{children:e?"Hide render HUD":"Show render HUD"})]})}var el=L(z(),1);function zyr({mode:e,restartLabel:t,updateLabel:r,onToggleColorMode:n,onShowShortcuts:i,onRestart:o,onUpdate:a}){return[(0,el.jsxs)(cn,{onClick:n,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(Nyr,{mode:e})}),(0,el.jsx)(Tp,{children:"Toggle dark mode"})]},"color-mode"),(0,el.jsx)($yr,{},"render-hud"),(0,el.jsxs)(cn,{onClick:i,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(Ayr,{fontSize:"small"})}),(0,el.jsx)(Tp,{children:"Keyboard shortcuts"})]},"shortcuts"),(0,el.jsx)(no,{},"restart-divider"),(0,el.jsxs)(cn,{onClick:o,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(Kfe,{fontSize:"small"})}),(0,el.jsx)(Tp,{children:t})]},"restart"),(0,el.jsxs)(cn,{onClick:a,children:[(0,el.jsx)(rT,{children:(0,el.jsx)(Lyr,{fontSize:"small"})}),(0,el.jsx)(Tp,{children:r})]},"update")]}var Hyr=L(ge(),1);var Wyr=L(z(),1);function Uyr({peer:e,onRestart:t,onClose:r}){let[n,i]=(0,Hyr.useState)(!1);return(0,Wyr.jsx)(vo,{title:`Restart ${e}?`,message:`Restarts the sessions daemon and web server on ${e}. Its sessions resume when the daemon is back. This page stays open.`,confirmLabel:"Restart",busy:n,autoFocusConfirm:!0,onConfirm:()=>{i(!0),t(e).finally(r)},onCancel:r})}var Q1=L(z(),1);function P$e({notices:e}){let{back:t,clearBack:r,error:n,clearError:i,progress:o}=e;return(0,Q1.jsxs)(Q1.Fragment,{children:[(0,Q1.jsx)(ol,{open:!!o,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Q1.jsx)(ri,{severity:"info",variant:"filled",children:o})}),(0,Q1.jsx)(ol,{open:t!==null,autoHideDuration:6e3,onClose:r,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Q1.jsx)(ri,{severity:"success",variant:"filled",onClose:r,children:t})}),(0,Q1.jsx)(Mu,{error:n,onClose:i})]})}function Vyr(e){let t=new Map;for(let r of e){let n=t.get(r.group)??[];n.push(r),t.set(r.group,n)}return[...t].map(([r,n])=>({name:r,shortcuts:n}))}var XWn=Object.keys(iN);function Gyr(){let e=oN();return Vyr(XWn.map(t=>lw(t,e)))}var op=L(z(),1),ZWn={display:"flex",alignItems:"center",justifyContent:"space-between",pr:1},QWn={display:"flex",alignItems:"center",justifyContent:"space-between",gap:2,py:.5};function qyr({onClose:e}){let t=Gyr();return(0,op.jsxs)(Ps,{open:!0,onClose:e,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"shortcuts-dialog-title",children:[(0,op.jsxs)(Il,{id:"shortcuts-dialog-title",sx:ZWn,children:["Keyboard shortcuts",(0,op.jsx)(sr,{size:"small","aria-label":"Close",onClick:e,children:(0,op.jsx)(xa,{fontSize:"small"})})]}),(0,op.jsx)(Ml,{dividers:!0,children:t.map(r=>(0,op.jsxs)(fe,{component:"section",sx:{mb:1.5},children:[(0,op.jsx)($e,{variant:"overline",color:"text.secondary",children:r.name}),r.shortcuts.map(n=>(0,op.jsxs)(fe,{sx:QWn,children:[(0,op.jsx)($e,{variant:"body2",children:n.label}),(0,op.jsx)(Rt,{direction:"row",spacing:.5,children:(0,op.jsx)(Afe,{chords:n.chords})})]},n.label))]},r.name))})]})}var LR=L(z(),1);function jyr({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:o}=uB(lB.target,e);return(0,LR.jsxs)(LR.Fragment,{children:[(0,LR.jsx)(vo,{title:lB.label,message:lB.message,confirmLabel:"Restart",busy:r,autoFocusConfirm:!0,onConfirm:()=>{o()},onCancel:t}),(0,LR.jsx)(Mu,{error:n,onClose:i})]})}var Kyr=L(z(),1);function JWn(e){return e?{title:`Update assist on ${e}?`,message:`This runs 'assist update' on ${e} as a new session, then restarts its web server. This page stays open.`}:{title:"Update assist",message:"This starts a new session running 'assist update'. Its output will appear in the terminal."}}function Yyr({peer:e,onConfirm:t,onClose:r}){return(0,Kyr.jsx)(vo,{...JWn(e),confirmLabel:"Update",onConfirm:()=>{t(),r()},onCancel:r})}var d0=L(ge(),1);async function eVn(e){try{let t=await fetch(`/api/node-doctor?link=${encodeURIComponent(e)}`);return t.ok?(await t.json()).hop:null}catch{return null}}async function Xyr(e,t){let r=await eVn(e);if(!r)return t;let n=r.remediation?` \u2014 ${r.remediation}`:"";return`${t}: ${r.hop} hop failed: ${r.error}${n}`}async function Zyr(e){if(!e)return"web server unreachable";try{return(await e.json()).error??`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}var N2=L(ge(),1);function Qyr(e){let{nodes:t}=gu(),[r,n]=(0,N2.useState)(null),i=(0,N2.useRef)(!1),o=r?t?.links.find(l=>l.name===r.peer):void 0;(0,N2.useEffect)(()=>{if(!(!r||!o)){if(o.state!=="connected"){i.current=!0;return}i.current&&(n(null),e(r.describe(r.peer,o.peerVersion)))}},[r,o,e]);let a=(0,N2.useCallback)((l,u)=>{i.current=!1,n({peer:l,describe:u})},[]),s=(0,N2.useCallback)(()=>n(null),[]);return{watch:a,stop:s}}var tVn=9e4;function e0e(){let[e,t]=(0,d0.useState)(null),[r,n]=(0,d0.useState)(null),i=(0,d0.useRef)(void 0),o=(0,d0.useCallback)(f=>{clearTimeout(i.current),t(f)},[]),{watch:a,stop:s}=Qyr(o);(0,d0.useEffect)(()=>()=>clearTimeout(i.current),[]);let l=(0,d0.useCallback)(async(f,d)=>{n(await Xyr(f,d))},[]);return{requestThenAwait:(0,d0.useCallback)(async(f,d,h,p)=>{let m;try{m=await h()}catch{}return m?.ok?(a(f,p),clearTimeout(i.current),i.current=setTimeout(()=>{s(),l(f,`${f} did not come back`)},tVn),!0):(await l(f,`${d} failed (${await Zyr(m)})`),!1)},[l,a,s]),back:e,clearBack:()=>t(null),error:r,clearError:()=>n(null)}}var rVn=(e,t)=>t?`${e} is back (v${t})`:`${e} is back`;function Jyr(){let{requestThenAwait:e,...t}=e0e();return{restart:n=>e(n,`Restart ${n}`,()=>cB("both",n),rVn),...t}}var pY=L(ge(),1);var h0=L(ge(),1);function e1r(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function t0e(e,t,r){let[n,i]=(0,h0.useState)(!1),[o,a]=(0,h0.useState)(!1),s=(0,h0.useRef)(!1),l=(0,h0.useRef)(e);l.current=e;let u=(0,h0.useRef)(new Set),f=(0,h0.useCallback)(()=>{s.current=!1,a(!1),u.current=new Set(l.current.filter(e1r).map(d=>d.id)),i(!0)},[]);return(0,h0.useEffect)(()=>{if(!n||o)return;if(t){s.current=!0;return}if(!s.current)return;e.some(h=>e1r(h)&&h.node===r&&!u.current.has(h.id))&&a(!0)},[n,o,t,e,r]),{arm:f,completed:o}}var t1r=(e,t)=>t?`${e} updated to v${t}`:`${e} updated`;function nVn(e){return fetch(`/api/self-update?node=${encodeURIComponent(e)}`,{method:"POST"})}function r1r(e){let{nodes:t}=gu(),{launchAssist:r}=$l(),{requestThenAwait:n,...i}=e0e(),[o,a]=(0,pY.useState)(null),[s,l]=(0,pY.useState)(),u=m=>t?.links.find(g=>g.name===m)?.state,{arm:f,completed:d}=t0e(e,u(s)!=="connected",s);(0,pY.useEffect)(()=>{!d||!s||(l(void 0),n(s,`Restart ${s}'s web server`,()=>cB("webserver",s),t1r))},[d,s,n]);let h=async m=>{a(`Updating assist on ${m}\u2026`),await n(m,`Update ${m}`,()=>nVn(m),t1r),a(null)};return{update:m=>{if(u(m)!=="connected"){h(m);return}l(m),f(),r(["update"],void 0,{node:m})},progress:o,...i}}var p0=L(z(),1);function n1r({dialog:e,peer:t,sessions:r,reconnecting:n,onClose:i}){let{launchAssist:o,armUpdateReload:a}=$l(),s=Jyr(),l=r1r(r);return(0,p0.jsxs)(p0.Fragment,{children:[e==="shortcuts"&&(0,p0.jsx)(qyr,{onClose:i}),e==="restart"&&t&&(0,p0.jsx)(Uyr,{peer:t,onRestart:s.restart,onClose:i}),e==="restart"&&!t&&(0,p0.jsx)(jyr,{reconnecting:n,onClose:i}),e==="update"&&(0,p0.jsx)(Yyr,{peer:t,onConfirm:()=>{if(t){l.update(t);return}a(),o(["update"])},onClose:i}),(0,p0.jsx)(P$e,{notices:s}),(0,p0.jsx)(P$e,{notices:l})]})}var i1r=L(z(),1),o1r=ft((0,i1r.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var a1r=L(ge(),1);var mY=L(z(),1);function s1r(){let e=Xi(),t=(0,a1r.useCallback)(()=>e("/config"),[e]),{matches:r,chords:n}=Xn("openConfig");return zo(r,t),(0,mY.jsx)(lr,{describeChild:!0,title:(0,mY.jsx)(Md,{label:"Config",chords:n}),children:(0,mY.jsx)(sr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:t,children:(0,mY.jsx)(o1r,{fontSize:"small"})})})}var l1r=L(z(),1),c1r=ft((0,l1r.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var r0e=L(ge(),1);var gY=L(z(),1);function u1r({open:e,onOpen:t}){let r=(0,r0e.useRef)(null),{matches:n,chords:i}=Xn("openMenu");return zo(n,(0,r0e.useCallback)(()=>{r.current&&t(r.current)},[t])),(0,gY.jsx)(lr,{describeChild:!0,title:(0,gY.jsx)(Md,{label:"Menu",chords:i}),children:(0,gY.jsx)(sr,{ref:r,onClick:o=>t(o.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,gY.jsx)(c1r,{fontSize:"small"})})})}var L$e=L(z(),1),f1r=ft([(0,L$e.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,L$e.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var M$e=L(z(),1);function d1r(){let e=$ge();return!e||e===M_?null:(0,M$e.jsx)(lr,{title:`Daemon is running v${e}, but this page was served by v${M_}. Restart the daemon to match.`,children:(0,M$e.jsx)(f1r,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})}var h1r=e=>({display:"inline-flex",alignItems:"center",gap:.75,px:1,py:.25,borderRadius:999,fontSize:12,lineHeight:1.5,color:"inherit",opacity:e?1:.55,bgcolor:e?"rgba(255,255,255,0.16)":"transparent",transition:"opacity .2s ease, background-color .2s ease","&:hover, &:focus-visible":{opacity:1,bgcolor:"rgba(255,255,255,0.12)"},"& .ready-dot":{width:8,height:8,borderRadius:"50%",bgcolor:"#ffb74d",boxShadow:"0 0 0 2px rgba(0,0,0,.15)"},"& .ready-count":{fontWeight:500}});var J1=L(z(),1);function p1r(){let{entries:e}=yge();if(!M_)return null;let t=e.filter(xge).length;return(0,J1.jsxs)(J1.Fragment,{children:[(0,J1.jsxs)(Dn,{component:ys,to:"/updates","aria-label":t?`Updates: ${t} node${t>1?"s have":" has"} an update ready`:"Updates",sx:h1r(t>0),children:[t>0&&(0,J1.jsx)("span",{className:"ready-dot","aria-hidden":!0}),(0,J1.jsxs)("span",{children:["v",M_]}),t>0&&(0,J1.jsxs)("span",{className:"ready-count",children:[t," ready"]})]}),(0,J1.jsx)(d1r,{})]})}var hB=L(z(),1);function m1r({open:e,onOpen:t}){return(0,hB.jsxs)(fe,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,hB.jsx)(p1r,{}),(0,hB.jsx)(s1r,{}),(0,hB.jsx)(u1r,{open:e,onOpen:t})]})}var MR=L(ge(),1);var y1r=L(ge(),1);var g1r=!0,iVn=new Set(["openMenu","cycleCards"]),oVn=Object.keys(iN).filter(e=>!iVn.has(e));function v1r(e,t){let r=oN();(0,y1r.useEffect)(()=>{if(!e)return;let n=i=>{oVn.some(o=>lw(o,r).matches(i))&&t()};return globalThis.addEventListener("keydown",n,g1r),()=>globalThis.removeEventListener("keydown",n,g1r)},[e,t,r])}function b1r(){let[e,t]=(0,MR.useState)(null),[r,n]=(0,MR.useState)(!0),i=!!e,o=(0,MR.useCallback)(()=>t(null),[]),a=(0,MR.useCallback)(s=>{n(!0),t(s)},[]);return v1r(i,(0,MR.useCallback)(()=>{n(!1),t(null)},[])),{anchorEl:e,open:i,close:o,openAt:a,restoreFocus:r}}var yY=L(ge(),1);function x1r(e){zo(Xn("shortcutsSheet").matches,e)}function T1r(){let[e,t]=(0,yY.useState)(null);x1r((0,yY.useCallback)(()=>t("shortcuts"),[]));let r=(0,yY.useCallback)(()=>t(null),[]);return{dialog:e,showDialog:t,closeDialog:r}}function S1r(){let{nodes:e,selected:t}=gu();return e&&t&&t!==e.local?t:void 0}function C1r(e){return{restartLabel:e?`Restart ${e}`:lB.label,updateLabel:e?`Update assist on ${e}`:"Update assist"}}var B2=L(z(),1);function w1r({mode:e,toggle:t,sessions:r,reconnecting:n}){let{anchorEl:i,open:o,close:a,openAt:s,restoreFocus:l}=b1r(),{dialog:u,showDialog:f,closeDialog:d}=T1r(),h=S1r(),p=m=>()=>{a(),f(m)};return(0,B2.jsxs)(B2.Fragment,{children:[(0,B2.jsx)(m1r,{open:o,onOpen:s}),(0,B2.jsxs)(Dl,{anchorEl:i,open:o,onClose:a,disableRestoreFocus:!l,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,B2.jsx)(kyr,{}),zyr({mode:e,...C1r(h),onToggleColorMode:()=>{t(),a()},onShowShortcuts:p("shortcuts"),onRestart:p("restart"),onUpdate:p("update")})]}),(0,B2.jsx)(n1r,{dialog:u,peer:h,sessions:r,reconnecting:n,onClose:d})]})}var E1r=L(ge(),1);var k1r=L(z(),1);function _1r({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:o,group:a}=e.existing,s=xm(i),l=o?` on port ${o}`:"",u=s?` in ${s}`:"",f=a?`, holding the ${a} server slot`:"";return(0,k1r.jsx)(vo,{title:a?`Replace the ${a} server?`:"Replace running server?",message:`"${n}" is already serving${l}${u}${f}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var n0e=L(z(),1);function R1r({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:o,startRun:a,discardSession:s}=e,l=(0,E1r.useMemo)(()=>({onStop:o,onStart:a,onDiscard:s}),[o,a,s]),u=()=>{r&&(r.runName?a(r.runName,r.cwd,!0,r.launchedFrom,r.node):r.sessionId&&i(r.sessionId,!0),n())};return(0,n0e.jsxs)(GDe.Provider,{value:l,children:[t,r&&(0,n0e.jsx)(_1r,{conflict:r,onConfirm:u,onCancel:n})]})}var A1r=new Map;function P1r(e,t){if(!UJ())return;let r=A1r.get(e);if(A1r.set(e,t),!!r)for(let[n,i]of Object.entries(t))Object.is(i,r[n])||W0(`\u0394 ${e}.${n}`)}var o0e=L(ge(),1);function L1r(e,t,r){if(!t)return null;let n=e[t];if(!n)return null;let i=r.find(o=>o.id===n);return!i||Tm(i)!==t?null:n}function ev(e,t,r){if(e)return t.find(n=>n.id===e)??r.find(n=>n.sessionId===e)}function i0e(){let{pathname:e}=ua();return e.startsWith("/backlog")||e.startsWith("/usage")}function M1r({selectedCwd:e,selectedCardId:t,sessions:r,history:n,activeByRepo:i,onSelect:o}){let a=ev(t,r,n),s=a&&Tm(a),l=!!(s&&s===e),u=L1r(i,e,r),f=(0,o0e.useRef)(t),d=i0e();(0,o0e.useEffect)(()=>{let h=f.current!==t&&!!s;f.current=t,!(d||h||l||!u)&&o(u)},[t,s,l,u,o,d])}var l0e=L(ge(),1);function I1r(e,t,r,n){return ev(e,t,r)?.cwd||n}function D1r(e,t,r,n){let i=I1r(e,t,r,n.cwd),o=ev(e,t,r);return{cwd:i,node:o?.cwd?o.node:n.node}}function O1r(e,t){let r=new Set,n=new Set,i=[];for(let o of t){if(o.cwdMissing)continue;let a=iw(o),s=Tm(o);!a||!s||r.has(a)||n.has(s)||(r.add(a),n.add(s),i.push(s))}return e&&!r.has(tN(e,t))&&!n.has(e)&&i.unshift(e),i}var ap="";function aVn(e){let t=new Map([[ap,[]]]);for(let r of e){let n=r.node??ap;t.set(n,[...t.get(n)??[],r])}return t}function N1r(e,t){var n;let r=new Map;for(let[i,o]of aVn(t)){let a=i===ap?e:"";for(let s of O1r(a,o)){let l=tN(s,o),u=r.get(l)??{key:l,origin:l===s?void 0:l,clones:{}};(n=u.clones)[i]??(n[i]=s),r.set(l,u)}}return[...r.values()]}function B1r(e,t){return e.clones[t]??e.clones[ap]??Object.values(e.clones)[0]}function vY(e,t){return e.find(r=>Object.values(r.clones).includes(t))}function pB(e,t){return!e||e===t?ap:e}var I$e=L(ge(),1);function F1r(e,t){let r=(0,I$e.useCallback)((i,o)=>{let a=pB(o,t),s=vY(e,i);return s?s.clones[a]:a===ap?i:void 0},[e,t]),n=(0,I$e.useCallback)(i=>vY(e,i)?.origin,[e]);return{cloneOn:r,originOf:n}}var a0e=L(ge(),1);function $1r(e,t,r,n){let i=(0,a0e.useRef)(e);(0,a0e.useEffect)(()=>{if(i.current===e)return;i.current=e;let o=vY(t,r)?.clones[e];o&&n(o,e)},[e,t,r,n])}var mB=L(ge(),1);function z1r(e,t,r){if(t.node!==void 0)return t.node;let n=new Set(e.flatMap(i=>Object.entries(i.clones).filter(([,o])=>o===t.cwd).map(([o])=>o)));return n.has(r)?r:n.size===0||n.has(ap)?ap:[...n][0]}function H1r(e,t,r,n){let[i,o]=(0,mB.useState)({cwd:e}),a=(0,mB.useCallback)((l,u)=>o({cwd:l,node:u}),[]);(0,mB.useEffect)(()=>{e&&!i.cwd&&o({cwd:e})},[e,i.cwd]);let s=z1r(t,{cwd:i.cwd,node:i.node===void 0?void 0:pB(i.node,n)},r);return{selectedCwd:i.cwd,selectedNode:s||void 0,setSelectedCwd:a}}var U1r=L(ge(),1);function s0e(e,t,r){let n=ev(e,t,r);return n&&Tm(n)}function W1r(e,t,r,n){let i=s0e(e,t,r),o=ev(e,t,r)?.node??ap;(0,U1r.useEffect)(()=>{i&&n(i,o)},[i,o,n])}function V1r(e,t,r,n,i){let o=i.nodes?.local,a=pB(i.selected,o),s=(0,l0e.useMemo)(()=>N1r(e,t),[e,t]),{selectedCwd:l,selectedNode:u,setSelectedCwd:f}=H1r(e,s,a,o);W1r(r,n,t,f),$1r(a,s,l,f);let{cloneOn:d,originOf:h}=F1r(s,o),p=(0,l0e.useMemo)(()=>s.map(y=>B1r(y,a)),[s,a]),{cwd:m,node:g}=D1r(r,n,t,{cwd:l,node:u});return(0,l0e.useMemo)(()=>({repos:p,selectedCwd:l,selectedNode:u,worktreeCwd:m,worktreeNode:g,setSelectedCwd:f,cloneOn:d,originOf:h}),[p,l,u,m,g,f,d,h])}var u0e=L(ge(),1);var z_=L(ge(),1);var G1r=L(ge(),1),c0e="assist:reloaded-after-update";function q1r(e){(0,G1r.useEffect)(()=>{globalThis.sessionStorage?.getItem(c0e)&&(globalThis.sessionStorage.removeItem(c0e),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}function j1r(e,t,r,n){let{arm:i,completed:o}=t0e(e,t),a=(0,z_.useRef)(!1),s=(0,z_.useCallback)(()=>{globalThis.sessionStorage?.setItem(c0e,"1")},[]),{error:l,restart:u}=uB("webserver",t,s);return q1r(r),(0,z_.useEffect)(()=>{l&&n(l)},[l,n]),(0,z_.useEffect)(()=>{!o||a.current||(a.current=!0,u())},[o,u]),{armUpdateReload:(0,z_.useCallback)(()=>{a.current=!1,i()},[i])}}function Y1r(e){let{armUpdateReload:t}=j1r(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,u0e.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,resumeSession:e.resumeSession,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,e.resumeSession,t]),n=Xi(),i=(0,u0e.useCallback)(o=>{e.selectSession(o),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var K1r=L(ge(),1);function X1r(e,t,r,n){let i=s0e(e,t,r);(0,K1r.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var f0e=L(ge(),1);function Z1r(e,t){let r=(0,f0e.useRef)(new Map);(0,f0e.useEffect)(()=>{let n=new Set;for(let{id:i,status:o}of e)n.add(i),r.current.get(i)!==o&&(r.current.set(i,o),console.debug(`[sessions] render session ${i} status=${o}`),t({type:"ui-status",sessionId:i,status:o}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var gB=L(ge(),1),Q1r="assist.sessions.node";function sVn(){try{return localStorage.getItem(Q1r)}catch{return null}}function lVn(e){try{localStorage.setItem(Q1r,e)}catch{}}function J1r(e){let[t,r]=(0,gB.useState)(sVn),n=(0,gB.useCallback)(i=>{r(i),lVn(i)},[]);return(0,gB.useMemo)(()=>{let i=e?[e.local,...e.links.map(o=>o.name)]:[];return{nodes:e,names:i,visible:i.length>1,selected:t&&i.includes(t)?t:e?.local,select:n}},[e,t,n])}var tvr=L(ge(),1);function evr(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session"),node:t.node};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r,node:t.node}}return null}function rvr(e,t){return(0,tvr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=evr(r);i&&t(i)},[e,t])}var tv=L(ge(),1);function d0e(e,t,r,n,i){e({type:"create",prompt:r||void 0,cwd:n,...t,...i?{node:i}:{}})}function nvr(e){return(t,r,n)=>d0e(e,{design:!0},t,r,n)}function ivr(e){return(t,r,n,i)=>d0e(e,{harness:t},r,n,i)}function ovr(e){return(t,r,n)=>d0e(e,{auto:!0},t,r,n)}function avr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function svr(e){return(t,r,n,i,o)=>e({type:"resume",sessionId:t,cwd:r,name:n,harness:i,node:o})}function lvr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function cvr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function uvr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function fvr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function dvr(e){return t=>e({type:"stop",sessionId:t})}function hvr(e){return(t,r,n,i,o)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i,node:o})}function pvr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function mvr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function gvr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function yvr(e){return(t,r)=>e({type:"input",sessionId:t,data:r,viewerId:Zj})}function vvr(e){return(t,r,n,i)=>e({type:"resize",sessionId:t,cols:r,rows:n,viewerId:Zj,claim:i})}function bvr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function xvr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var IR=L(ge(),1);function Tvr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t,auto:!0})}function Svr(e){return{createSession:(0,IR.useMemo)(()=>ovr(e),[e]),createSessionInStream:(0,IR.useMemo)(()=>Tvr(e),[e]),createDesignSession:(0,IR.useMemo)(()=>nvr(e),[e]),createHarnessSession:(0,IR.useMemo)(()=>ivr(e),[e]),createAssistSession:(0,IR.useMemo)(()=>avr(e),[e]),resumeSession:(0,IR.useMemo)(()=>svr(e),[e])}}var bY=L(ge(),1);function Cvr(e,t){let r=(0,bY.useCallback)((a,s)=>{lvr(e,t.current)(a,s)},[e,t]),n=(0,bY.useCallback)(a=>{cvr(e,t.current)(a)},[e,t]),i=(0,bY.useCallback)(a=>{uvr(e,t.current)(a)},[e,t]),o=(0,bY.useCallback)(a=>{fvr(e,t.current)(a)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:o}}function wvr(e,t,r){let n={...Svr(e),sendInput:(0,tv.useMemo)(()=>yvr(e),[e]),sendResize:(0,tv.useMemo)(()=>vvr(e),[e]),sendPrDecision:(0,tv.useMemo)(()=>xvr(e),[e]),setAutoRun:(0,tv.useMemo)(()=>pvr(e),[e]),setAutoAdvance:(0,tv.useMemo)(()=>mvr(e),[e]),setStarred:(0,tv.useMemo)(()=>gvr(e),[e]),stopSession:(0,tv.useMemo)(()=>dvr(e),[e]),startRun:(0,tv.useMemo)(()=>hvr(e),[e])},i=(0,tv.useMemo)(()=>bvr(t.current,r.current),[t,r]);return{...n,...Cvr(e,t),onOutput:i}}var xY=L(ge(),1);function _vr(e,t,r){let n=(0,xY.useCallback)(s=>{r(s),e({type:"fetch-transcript",sessionId:s})},[e,r]),i=(0,xY.useCallback)(s=>e({type:"fetch-user-messages",sessionId:s}),[e]),o=(0,xY.useCallback)(()=>{r(null)},[r]),a=(0,xY.useCallback)(s=>{r(null),t(s)},[t,r]);return{viewTranscript:n,fetchUserMessages:i,clearTranscript:o,selectSession:a}}var W_=L(ge(),1);function kvr(e,t){let r=new Set(t.map(i=>i.id)),n=null;for(let i of Object.values(e))r.has(i)&&(n=i);return n}var Rvr=L(ge(),1);function Evr(e,t,r=null){return t!==null?e.some(n=>n.id===t)?t:e[0]?.id??null:r&&e.some(n=>n.id===r)?r:e[0]?.id??null}function Avr(e,t,r){let n=i0e();(0,Rvr.useEffect)(()=>{if(n){t(null);return}t(i=>Evr(e,i,r))},[e,t,r,n])}var h0e=L(ge(),1);function Pvr(){let[e,t]=(0,h0e.useState)({}),[r,n]=(0,h0e.useState)(null),[i,o]=(0,h0e.useState)(null);return{activeByRepo:e,setActiveByRepo:t,daemonVersion:r,setDaemonVersion:n,nodes:i,setNodes:o}}var m0=L(ge(),1);function Lvr(e,t){if(!t.some(n=>e.has(n)))return e;let r=new Set(e);for(let n of t)r.delete(n);return r}function Mvr(e,t){let r=[];for(let n of t){let i=e.get(n.id);i!==void 0&&i!==n.startedAt&&r.push(n.id)}return r}function Ivr(e,t){return t.filter(r=>r.commandType==="run"&&e.get(r.id)!==r.startedAt).map(r=>r.id)}var cVn=1500;function Dvr(){let[e,t]=(0,m0.useState)(new Set),r=(0,m0.useRef)(new Map),n=(0,m0.useRef)(new Map),i=(0,m0.useCallback)(s=>{t(l=>l.has(s)?l:new Set(l).add(s))},[]),o=(0,m0.useCallback)(s=>{let l=n.current;for(let u of s)clearTimeout(l.get(u)),l.set(u,setTimeout(()=>{l.delete(u),i(u)},cVn))},[i]);(0,m0.useEffect)(()=>{let s=n.current;return()=>{for(let l of s.values())clearTimeout(l)}},[]);let a=(0,m0.useCallback)(s=>{let l=Mvr(r.current,s),u=Ivr(r.current,s);r.current=new Map(s.map(f=>[f.id,f.startedAt])),l.length&&t(f=>Lvr(f,l)),o(u)},[o]);return{initialized:e,markInitialized:i,syncSessions:a}}var H_=L(ge(),1);function Ovr(){let[e,t]=(0,H_.useState)(null),[r,n]=(0,H_.useState)(null),[i,o]=(0,H_.useState)(null),a=(0,H_.useCallback)(()=>t(null),[]),s=(0,H_.useCallback)(()=>n(null),[]),l=(0,H_.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:a,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:o,clearServerConflict:l}}var rv=L(ge(),1);function Nvr(e,t){return[...e,{...t,status:"launching"}]}function p0e(e){return e.find(t=>t.status==="launching")}function Bvr(e){let t=p0e(e);return t?e.filter(r=>r.id!==t.id):e}function Fvr(e,t){let r=p0e(e);return r?D$e(e,r.id,t):e}function D$e(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function $vr(e,t){return e.filter(r=>r.id!==t)}var zvr=L(ge(),1);var uVn=6e4,fVn="Launch timed out \u2014 the session did not start.";function Hvr(e,t){(0,zvr.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(o=>D$e(o,i.id,fVn)),Math.max(0,uVn-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Uvr(){let[e,t]=(0,rv.useState)([]),r=(0,rv.useRef)([]),n=(0,rv.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,rv.useCallback)(l=>{n(u=>Nvr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),o=(0,rv.useCallback)(()=>{let l=p0e(r.current);return n(Bvr),l?.named?l.title:void 0},[n]),a=(0,rv.useCallback)(l=>n(u=>Fvr(u,l)),[n]),s=(0,rv.useCallback)(l=>n(u=>$vr(u,l)),[n]);return Hvr(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:o,failPendingLaunch:a,dismissPendingLaunch:s}}var TY=L(ge(),1);function Wvr(){let[e,t]=(0,TY.useState)(null),[r,n]=(0,TY.useState)({}),i=(0,TY.useCallback)((o,a)=>{o!=="claude"&&n(s=>({...s,[o]:a}))},[]);return{rateLimits:e,setRateLimits:t,harnessRateLimits:r,setHarnessRateLimits:i}}var Vvr=L(ge(),1);function Gvr(e,t){return(0,Vvr.useCallback)(r=>{e(r),t(r)},[e,t])}var m0e=L(ge(),1);function qvr(){let[e,t]=(0,m0e.useState)(null),[r,n]=(0,m0e.useState)(null),[i,o]=(0,m0e.useState)(null);return{transcript:e,setTranscript:t,viewingTranscriptSessionId:r,setViewingTranscriptSessionId:n,userMessages:i,setUserMessages:o}}var U_=L(ge(),1);function jvr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function Yvr(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function Kvr(e,t){let r=e.message;t.setError(r),t.failPendingLaunch(r)}function Xvr(e,t){let r=e.rateLimits,n=e.harness;!n||n==="claude"?t.setRateLimits(r):t.setHarnessRateLimits?.(n,r)}function Zvr(e,t){t.setNodes({local:e.local,links:e.links??[]})}function Qvr(e,t){t.setSuccess({message:e.message,sessionId:null})}function Jvr(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function ebr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom,node:e.node})}function tbr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd),t.setActiveByRepo(e.active??{})}var dVn={sessions:tbr,created:Yvr,history:(e,t)=>t.setHistory(e.sessions),transcript:(e,t)=>t.setTranscript({sessionId:e.sessionId,messages:e.messages}),"user-messages":(e,t)=>t.setUserMessages({sessionId:e.sessionId,messages:e.messages}),hello:(e,t)=>t.setDaemonVersion(e.version),nodes:Zvr,error:Kvr,notice:Qvr,"run-conflict":ebr,limits:Xvr,clear:jvr,output:Jvr};function rbr(e,t){dVn[e.type]?.(e,t)}function nbr(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",n=new WebSocket(`${r}//${location.host}/ws`);return n.onopen=()=>{t.onOpen?.(),n.send(JSON.stringify({type:"hello"})),n.send(JSON.stringify({type:"history"}))},n.onmessage=i=>{rbr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function ibr(e,t,r,n){let i=!1,o,a=0,s=!1,l=()=>{i||t(nbr(e,{onOpen:()=>{s&&r(),s=!1,n(!1),a=0},onClose:()=>{if(i)return;s=!0,n(!0);let u=Math.min(300*2**a,2e3);a+=1,o=setTimeout(l,u)}}))};return l(),()=>{i=!0,o&&clearTimeout(o)}}function obr(e){let t=(0,U_.useRef)(null),[r,n]=(0,U_.useState)(!1),{handleSessions:i,markInitialized:o,buffers:a,handlers:s}=e;(0,U_.useEffect)(()=>{let u=()=>{a.current?.clear();let d=s.current;if(d)for(let h of d.values())h("\x1Bc")},f=ibr({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{f(),t.current?.close()}},[i,o,a,s]);let l=(0,U_.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function abr(){let[e,t]=(0,W_.useState)([]),[r,n]=(0,W_.useState)([]),[i,o]=(0,W_.useState)(null),a=Pvr(),s=qvr(),[l,u]=(0,W_.useState)(""),f=Ovr(),d=Uvr(),h=Wvr(),{initialized:p,markInitialized:m,syncSessions:g}=Dvr(),y=(0,W_.useRef)(new Map),v=(0,W_.useRef)(new Map),b=Gvr(g,t),{wsRef:x,requestHistory:S,reconnecting:C}=obr({handleSessions:b,setHistory:n,setActiveId:o,...a,...s,setCurrentCwd:u,...f,...d,...h,markInitialized:m,buffers:y,handlers:v});return Avr(e,o,kvr(a.activeByRepo,e)),{sessions:e,history:r,activeId:i,setActiveId:o,...a,...s,currentCwd:l,...f,...d,...h,initialized:p,wsRef:x,buffers:y,handlers:v,requestHistory:S,reconnecting:C}}function sbr(){let e=abr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:o,sessions:a}=e,s=J1r(e.nodes),l=rvr(t,i),u=wvr(l,r,n);X1r(o,a,e.history,l),Z1r(a,l);let f=_vr(l,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...u,...f,nodeSelection:s}}var yB=L(ge(),1);var lbr="assist:sidebar-collapsed";function cbr(){let[e,t]=(0,yB.useState)(()=>Bd(lbr).length>0),r=(0,yB.useCallback)(()=>{t(n=>{let i=!n;return Fd(lbr,i?[!0]:[]),i})},[]);return(0,yB.useMemo)(()=>({collapsed:e,onToggleCollapsed:r}),[e,r])}var ubr=L(ge(),1);function fbr(){(0,ubr.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/hotkeys");if(!t.ok)return;let r=await t.json();e||T3.set(r)}catch{}})(),()=>{e=!0}},[])}var g0e=L(ge(),1);function dbr(){let[e,t]=(0,g0e.useState)(!0);return(0,g0e.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/session-layout")).json();r||t(!!i?.topBar)}catch{t(!0)}})(),()=>{r=!0}},[]),e}function hbr(){let e=sbr(),t=Epe(e),r=V1r(e.currentCwd,e.history,t,e.sessions,e.nodeSelection);M1r({selectedCwd:r.selectedCwd,selectedCardId:t,sessions:e.sessions,history:e.history,activeByRepo:e.activeByRepo,onSelect:e.selectSession});let{launch:n,viewLaunchedSession:i}=Y1r(e),o=dbr();fbr();let a=cbr();return P1r("shell",{...e,selection:r,launch:n,topBar:o,sidebarCollapse:a}),{socket:e,selection:r,launch:n,viewLaunchedSession:i,topBar:o,sidebarCollapse:a}}var g0=L(z(),1),hVn={zIndex:e=>e.zIndex.drawer+1},pVn={minHeight:48};function pbr({mode:e,toggle:t}){let r=hbr(),{socket:n,selection:i,viewLaunchedSession:o}=r;return(0,g0.jsx)(T0r,{shell:r,children:(0,g0.jsxs)(g$e.Provider,{value:n.daemonVersion,children:[(0,g0.jsx)(w1r,{mode:e,toggle:t,sessions:n.sessions,reconnecting:n.reconnecting}),(0,g0.jsx)(Fye,{position:"fixed",elevation:1,sx:hVn,children:(0,g0.jsx)(wyr,{socket:n,selection:i})}),(0,g0.jsx)(Ok,{variant:"dense",sx:pVn}),(0,g0.jsx)(R1r,{socket:n,children:(0,g0.jsx)(lgr,{socket:n})}),(0,g0.jsx)(v0r,{socket:n,onViewLaunchedSession:o})]})})}var mbr=L(ge(),1);function gbr(){let[e,t]=(0,mbr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var V_=L(z(),1),mVn={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function gVn(){let{mode:e,toggle:t}=gbr(),r=(0,vbr.useMemo)(()=>C0({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:mVn}),[e]);return(0,V_.jsxs)(AK,{theme:r,children:[(0,V_.jsx)(gX,{}),(0,V_.jsx)(pbr,{mode:e,toggle:t})]})}var yVn=o2e([{path:"*",element:(0,V_.jsx)(gVn,{})}]);function vVn(){return(0,V_.jsx)(Zxe,{router:yVn})}var ybr=document.getElementById("app");ybr&&(0,bbr.createRoot)(ybr).render((0,V_.jsx)(vVn,{}));})();
|
|
3979
3979
|
/*! Bundled license information:
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Command } from "commander";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@staff0rd/assist",
|
|
9
|
-
version: "0.775.
|
|
9
|
+
version: "0.775.4",
|
|
10
10
|
type: "module",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
bin: {
|
|
@@ -7221,9 +7221,10 @@ function pullIfConfigured() {
|
|
|
7221
7221
|
return;
|
|
7222
7222
|
}
|
|
7223
7223
|
try {
|
|
7224
|
-
execSync15("git
|
|
7224
|
+
execSync15("git fetch", { stdio: "inherit" });
|
|
7225
|
+
execSync15("git merge --ff-only @{u}", { stdio: "inherit" });
|
|
7225
7226
|
} catch {
|
|
7226
|
-
console.error(chalk59.red("git
|
|
7227
|
+
console.error(chalk59.red("git fast-forward to upstream failed; aborting."));
|
|
7227
7228
|
process.exit(1);
|
|
7228
7229
|
}
|
|
7229
7230
|
}
|
|
@@ -7604,7 +7605,7 @@ function adoptRecordedBranch(item, branch2) {
|
|
|
7604
7605
|
} catch {
|
|
7605
7606
|
}
|
|
7606
7607
|
try {
|
|
7607
|
-
execSync18(`git switch ${shellQuote(branch2)}`, { stdio: "
|
|
7608
|
+
execSync18(`git switch ${shellQuote(branch2)}`, { stdio: "pipe" });
|
|
7608
7609
|
log(
|
|
7609
7610
|
item,
|
|
7610
7611
|
`branch ${branch2} already recorded; switched off ${parked} onto it`
|