@vibedeckx/ui-dist 0.2.8 → 0.2.9

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.
@@ -25,7 +25,7 @@ WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){t
25
25
  `)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),mk&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){let r=this._getMouseBufferCoords(e),s=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;return!!s&&!!i&&!!r&&this._areCoordsInSelection(r,s,i)}isCellInSelection(e,r){let s=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;return!!s&&!!i&&this._areCoordsInSelection([e,r],s,i)}_areCoordsInSelection(e,r,s){return e[1]>r[1]&&e[1]<s[1]||r[1]===s[1]&&e[1]===r[1]&&e[0]>=r[0]&&e[0]<s[0]||r[1]<s[1]&&e[1]===s[1]&&e[0]<s[0]||r[1]<s[1]&&e[1]===r[1]&&e[0]>=r[0]}_selectWordAtCursor(e,r){let s=this._linkifier.currentLink?.link?.range;if(s)return this._model.selectionStart=[s.start.x-1,s.start.y-1],this._model.selectionStartLength=m$(s,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let i=this._getMouseBufferCoords(e);return!!i&&(this._selectWordAt(i,r),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,r){this._model.clearSelection(),e=Math.max(e,0),r=Math.min(r,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,r],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){let r=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(r)return r[0]--,r[1]--,r[1]+=this._bufferService.buffer.ydisp,r}_getMouseEventScrollAmount(e){let r=mc(this._coreBrowserService.window,e,this._screenElement)[1],s=this._renderService.dimensions.css.canvas.height;return r>=0&&r<=s?0:(r>s&&(r-=s),(r=Math.min(Math.max(r,-50),50)/50)/Math.abs(r)+Math.round(14*r))}shouldForceSelection(e){return mw?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,!(2===e.button&&this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=3*!!this.shouldColumnSelect(e),this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let r=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);r&&r.length!==this._model.selectionStart[0]&&0===r.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){let r=this._getMouseBufferCoords(e);r&&(this._activeSelectionMode=2,this._selectLineAt(r[1]))}shouldColumnSelect(e){return e.altKey&&!(mw&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;let r=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let s=this._bufferService.buffer;if(this._model.selectionEnd[1]<s.lines.length){let e=s.lines.get(this._model.selectionEnd[1]);e&&0===e.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}r&&r[0]===this._model.selectionEnd[0]&&r[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(!(!this._model.selectionEnd||!this._model.selectionStart)&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){let r=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&r<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let r=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(r&&void 0!==r[0]&&void 0!==r[1]){let e=function(e,r,s,i){var n,a,o,l,c,d,u,h,f,p,m,g,x,v,_,y,b,w;let S,C=s.buffer.x,j=s.buffer.y;if(!s.buffer.hasScrollback){let b,w,S;return n=C,o=0,(0===mP(a=j,r,l=s,c=i).length?"":mO(mL(n,a,n,a-mB(a,l),!1,l).length,mI("D",c)))+mP(j,r,s,i)+(d=C,u=j,h=e,b=mP(u,f=r,p=s,m=i).length>0?f-mB(f,p):u,S=(g=d,x=u,w=mP(v=h,_=f,y=p,m).length>0?_-mB(_,y):x,g<v&&w<=_||g>=v&&w<_?"C":"D"),mO(mL(d,b,h,f,"C"===S,p).length,mI(S,m)))}if(j===r)return S=C>e?"D":"C",mO(Math.abs(C-e),mI(S,i));S=j>r?"D":"C";let k=Math.abs(j-r);return mO((b=j>r?e:C,s.cols-b+(k-1)*s.cols+1+(w=0,(j>r?C:e)-1)),mI(S,i))}(r[0]-1,r[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let e=this._model.finalSelectionStart,r=this._model.finalSelectionEnd,s=!!e&&!!r&&(e[0]!==r[0]||e[1]!==r[1]);if(!s){this._oldHasSelection&&this._fireOnSelectionChange(e,r,s);return}!e||!r||this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&r[0]===this._oldSelectionEnd[0]&&r[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,r,s)}_fireOnSelectionChange(e,r,s){this._oldSelectionStart=e,this._oldSelectionEnd=r,this._oldHasSelection=s,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(e=>this._handleTrim(e))}_convertViewportColToCharacterIndex(e,r){let s=r;for(let i=0;r>=i;i++){let n=e.loadCell(i,this._workCell).getChars().length;0===this._workCell.getWidth()?s--:n>1&&r!==i&&(s+=n-1)}return s}setSelection(e,r,s){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,r],this._model.selectionStartLength=s,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,r,s=!0,i=!0){if(e[0]>=this._bufferService.cols)return;let n=this._bufferService.buffer,a=n.lines.get(e[1]);if(!a)return;let o=n.translateBufferLineToString(e[1],!1),l=this._convertViewportColToCharacterIndex(a,e[0]),c=l,d=e[0]-l,u=0,h=0,f=0,p=0;if(" "===o.charAt(l)){for(;l>0&&" "===o.charAt(l-1);)l--;for(;c<o.length&&" "===o.charAt(c+1);)c++}else{let r=e[0],s=e[0];0===a.getWidth(r)&&(u++,r--),2===a.getWidth(s)&&(h++,s++);let i=a.getString(s).length;for(i>1&&(p+=i-1,c+=i-1);r>0&&l>0&&!this._isCharWordSeparator(a.loadCell(r-1,this._workCell));){a.loadCell(r-1,this._workCell);let e=this._workCell.getChars().length;0===this._workCell.getWidth()?(u++,r--):e>1&&(f+=e-1,l-=e-1),l--,r--}for(;s<a.length&&c+1<o.length&&!this._isCharWordSeparator(a.loadCell(s+1,this._workCell));){a.loadCell(s+1,this._workCell);let e=this._workCell.getChars().length;2===this._workCell.getWidth()?(h++,s++):e>1&&(p+=e-1,c+=e-1),c++,s++}}c++;let m=l+d-u+f,g=Math.min(this._bufferService.cols,c-l+u+h-f-p);if(!(!r&&""===o.slice(l,c).trim())){if(s&&0===m&&32!==a.getCodePoint(0)){let r=n.lines.get(e[1]-1);if(r&&a.isWrapped&&32!==r.getCodePoint(this._bufferService.cols-1)){let r=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(r){let e=this._bufferService.cols-r.start;m-=e,g+=e}}}if(i&&m+g===this._bufferService.cols&&32!==a.getCodePoint(this._bufferService.cols-1)){let r=n.lines.get(e[1]+1);if(r?.isWrapped&&32!==r.getCodePoint(0)){let r=this._getWordAt([0,e[1]+1],!1,!1,!0);r&&(g+=r.length)}}return{start:m,length:g}}}_selectWordAt(e,r){let s=this._getWordAt(e,r);if(s){for(;s.start<0;)s.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[s.start,e[1]],this._model.selectionStartLength=s.length}}_selectToWordAt(e){let r=this._getWordAt(e,!0);if(r){let s=e[1];for(;r.start<0;)r.start+=this._bufferService.cols,s--;if(!this._model.areSelectionValuesReversed())for(;r.start+r.length>this._bufferService.cols;)r.length-=this._bufferService.cols,s++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?r.start:r.start+r.length,s]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){let r=this._bufferService.buffer.getWrappedRangeForLine(e),s={start:{x:0,y:r.first},end:{x:this._bufferService.cols-1,y:r.last}};this._model.selectionStart=[0,r.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=m$(s,this._bufferService.cols)}};mH=uI([uO(3,u2),uO(4,u3),uO(5,hn),uO(6,u7),uO(7,ha),uO(8,hi)],mH);var mU=class{constructor(){this._data={}}set(e,r,s){this._data[e]||(this._data[e]={}),this._data[e][r]=s}get(e,r){return this._data[e]?this._data[e][r]:void 0}clear(){this._data={}}},mK=class{constructor(){this._color=new mU,this._css=new mU}setCss(e,r,s){this._css.set(e,r,s)}getCss(e,r){return this._css.get(e,r)}setColor(e,r,s){this._color.set(e,r,s)}getColor(e,r){return this._color.get(e,r)}clear(){this._color.clear(),this._css.clear()}},mq=Object.freeze((()=>{let e=[gv.toColor("#2e3436"),gv.toColor("#cc0000"),gv.toColor("#4e9a06"),gv.toColor("#c4a000"),gv.toColor("#3465a4"),gv.toColor("#75507b"),gv.toColor("#06989a"),gv.toColor("#d3d7cf"),gv.toColor("#555753"),gv.toColor("#ef2929"),gv.toColor("#8ae234"),gv.toColor("#fce94f"),gv.toColor("#729fcf"),gv.toColor("#ad7fa8"),gv.toColor("#34e2e2"),gv.toColor("#eeeeec")],r=[0,95,135,175,215,255];for(let s=0;s<216;s++){let i=r[s/36%6|0],n=r[s/6%6|0],a=r[s%6];e.push({css:pB.toCss(i,n,a),rgba:pB.toRgba(i,n,a)})}for(let r=0;r<24;r++){let s=8+10*r;e.push({css:pB.toCss(s,s,s),rgba:pB.toRgba(s,s,s)})}return e})()),mV=gv.toColor("#ffffff"),mY=gv.toColor("#000000"),mG=gv.toColor("#ffffff"),mX={css:"rgba(255, 255, 255, 0.3)",rgba:0xffffff4d},mJ=class extends hj{constructor(e){super(),this._optionsService=e,this._contrastCache=new mK,this._halfContrastCache=new mK,this._onChangeColors=this._register(new hQ),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:mV,background:mY,cursor:mG,cursorAccent:mY,selectionForeground:void 0,selectionBackgroundTransparent:mX,selectionBackgroundOpaque:gx.blend(mY,mX),selectionInactiveBackgroundTransparent:mX,selectionInactiveBackgroundOpaque:gx.blend(mY,mX),scrollbarSliderBackground:gx.opacity(mV,.2),scrollbarSliderHoverBackground:gx.opacity(mV,.4),scrollbarSliderActiveBackground:gx.opacity(mV,.5),overviewRulerBorder:mV,ansi:mq.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this._register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",()=>this._contrastCache.clear())),this._register(this._optionsService.onSpecificOptionChange("theme",()=>this._setTheme(this._optionsService.rawOptions.theme)))}get colors(){return this._colors}_setTheme(e={}){let r=this._colors;if(r.foreground=mZ(e.foreground,mV),r.background=mZ(e.background,mY),r.cursor=gx.blend(r.background,mZ(e.cursor,mG)),r.cursorAccent=gx.blend(r.background,mZ(e.cursorAccent,mY)),r.selectionBackgroundTransparent=mZ(e.selectionBackground,mX),r.selectionBackgroundOpaque=gx.blend(r.background,r.selectionBackgroundTransparent),r.selectionInactiveBackgroundTransparent=mZ(e.selectionInactiveBackground,r.selectionBackgroundTransparent),r.selectionInactiveBackgroundOpaque=gx.blend(r.background,r.selectionInactiveBackgroundTransparent),r.selectionForeground=e.selectionForeground?mZ(e.selectionForeground,p$):void 0,r.selectionForeground===p$&&(r.selectionForeground=void 0),gx.isOpaque(r.selectionBackgroundTransparent)&&(r.selectionBackgroundTransparent=gx.opacity(r.selectionBackgroundTransparent,.3)),gx.isOpaque(r.selectionInactiveBackgroundTransparent)&&(r.selectionInactiveBackgroundTransparent=gx.opacity(r.selectionInactiveBackgroundTransparent,.3)),r.scrollbarSliderBackground=mZ(e.scrollbarSliderBackground,gx.opacity(r.foreground,.2)),r.scrollbarSliderHoverBackground=mZ(e.scrollbarSliderHoverBackground,gx.opacity(r.foreground,.4)),r.scrollbarSliderActiveBackground=mZ(e.scrollbarSliderActiveBackground,gx.opacity(r.foreground,.5)),r.overviewRulerBorder=mZ(e.overviewRulerBorder,mV),r.ansi=mq.slice(),r.ansi[0]=mZ(e.black,mq[0]),r.ansi[1]=mZ(e.red,mq[1]),r.ansi[2]=mZ(e.green,mq[2]),r.ansi[3]=mZ(e.yellow,mq[3]),r.ansi[4]=mZ(e.blue,mq[4]),r.ansi[5]=mZ(e.magenta,mq[5]),r.ansi[6]=mZ(e.cyan,mq[6]),r.ansi[7]=mZ(e.white,mq[7]),r.ansi[8]=mZ(e.brightBlack,mq[8]),r.ansi[9]=mZ(e.brightRed,mq[9]),r.ansi[10]=mZ(e.brightGreen,mq[10]),r.ansi[11]=mZ(e.brightYellow,mq[11]),r.ansi[12]=mZ(e.brightBlue,mq[12]),r.ansi[13]=mZ(e.brightMagenta,mq[13]),r.ansi[14]=mZ(e.brightCyan,mq[14]),r.ansi[15]=mZ(e.brightWhite,mq[15]),e.extendedAnsi){let s=Math.min(r.ansi.length-16,e.extendedAnsi.length);for(let i=0;i<s;i++)r.ansi[i+16]=mZ(e.extendedAnsi[i],mq[i+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(void 0===e){for(let e=0;e<this._restoreColors.ansi.length;++e)this._colors.ansi[e]=this._restoreColors.ansi[e];return}switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function mZ(e,r){if(void 0!==e)try{return gv.toColor(e)}catch{}return r}mJ=uI([uO(0,u7)],mJ);var mQ=class{constructor(...e){for(let[r,s]of(this._entries=new Map,e))this.set(r,s)}set(e,r){let s=this._entries.get(e);return this._entries.set(e,r),s}forEach(e){for(let[r,s]of this._entries.entries())e(r,s)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}},m0=class{constructor(){this._services=new mQ,this._services.set(u6,this)}setService(e,r){this._services.set(e,r)}getService(e){return this._services.get(e)}createInstance(e,...r){let s=(e[uQ]||[]).sort((e,r)=>e.index-r.index),i=[];for(let r of s){let s=this._services.get(r.id);if(!s)throw Error(`[createInstance] ${e.name} depends on UNKNOWN service ${r.id._id}.`);i.push(s)}let n=s.length>0?s[0].index:r.length;if(r.length!==n)throw Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${r.length} static arguments`);return new e(...r,...i)}},m1={trace:0,debug:1,info:2,warn:3,error:4,off:5},m2=class extends hj{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel()))}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=m1[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let r=0;r<e.length;r++)"function"==typeof e[r]&&(e[r]=e[r]())}_log(e,r,s){this._evalLazyOptionalParams(s),e.call(console,(this._optionsService.options.logger?"":"xterm.js: ")+r,...s)}trace(e,...r){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,r)}debug(e,...r){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,r)}info(e,...r){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,r)}warn(e,...r){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,r)}error(e,...r){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,r)}};m2=uI([uO(0,u7)],m2);var m5=class extends hj{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this._register(new hQ),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new hQ),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new hQ),this.onTrim=this.onTrimEmitter.event,this._array=Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;let r=Array(e);for(let s=0;s<Math.min(e,this.length);s++)r[s]=this._array[this._getCyclicIndex(s)];this._array=r,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let r=this._length;r<e;r++)this._array[r]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,r){this._array[this._getCyclicIndex(e)]=r}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,r,...s){if(r){for(let s=e;s<this._length-r;s++)this._array[this._getCyclicIndex(s)]=this._array[this._getCyclicIndex(s+r)];this._length-=r,this.onDeleteEmitter.fire({index:e,amount:r})}for(let r=this._length-1;r>=e;r--)this._array[this._getCyclicIndex(r+s.length)]=this._array[this._getCyclicIndex(r)];for(let r=0;r<s.length;r++)this._array[this._getCyclicIndex(e+r)]=s[r];if(s.length&&this.onInsertEmitter.fire({index:e,amount:s.length}),this._length+s.length>this._maxLength){let e=this._length+s.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=s.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,r,s){if(!(r<=0)){if(e<0||e>=this._length)throw Error("start argument out of range");if(e+s<0)throw Error("Cannot shift elements in list beyond index 0");if(s>0){for(let i=r-1;i>=0;i--)this.set(e+i+s,this.get(e+i));let i=e+r+s-this._length;if(i>0)for(this._length+=i;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let i=0;i<r;i++)this.set(e+i+s,this.get(e+i))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}},m3=Object.freeze(new uG),m4=0,m6=class e{constructor(e,r,s=!1){this.isWrapped=s,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);let i=r||uJ.fromCharData([0,"",1,0]);for(let r=0;r<e;++r)this.setCell(r,i);this.length=e}get(e){let r=this._data[3*e+0],s=2097151&r;return[this._data[3*e+1],2097152&r?this._combined[e]:s?uK(s):"",r>>22,2097152&r?this._combined[e].charCodeAt(this._combined[e].length-1):s]}set(e,r){this._data[3*e+1]=r[0],r[1].length>1?(this._combined[e]=r[1],this._data[3*e+0]=2097152|e|r[2]<<22):this._data[3*e+0]=r[1].charCodeAt(0)|r[2]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 0xc00000&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){let r=this._data[3*e+0];return 2097152&r?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&r}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){let r=this._data[3*e+0];return 2097152&r?this._combined[e]:2097151&r?uK(2097151&r):""}isProtected(e){return 0x20000000&this._data[3*e+2]}loadCell(e,r){return m4=3*e,r.content=this._data[m4+0],r.fg=this._data[m4+1],r.bg=this._data[m4+2],2097152&r.content&&(r.combinedData=this._combined[e]),0x10000000&r.bg&&(r.extended=this._extendedAttrs[e]),r}setCell(e,r){2097152&r.content&&(this._combined[e]=r.combinedData),0x10000000&r.bg&&(this._extendedAttrs[e]=r.extended),this._data[3*e+0]=r.content,this._data[3*e+1]=r.fg,this._data[3*e+2]=r.bg}setCellFromCodepoint(e,r,s,i){0x10000000&i.bg&&(this._extendedAttrs[e]=i.extended),this._data[3*e+0]=r|s<<22,this._data[3*e+1]=i.fg,this._data[3*e+2]=i.bg}addCodepointToCell(e,r,s){let i=this._data[3*e+0];2097152&i?this._combined[e]+=uK(r):2097151&i?(this._combined[e]=uK(2097151&i)+uK(r),i&=-2097152,i|=2097152):i=4194304|r,s&&(i&=-0xc00001,i|=s<<22),this._data[3*e+0]=i}insertCells(e,r,s){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,s),r<this.length-e){let i=new uJ;for(let s=this.length-e-r-1;s>=0;--s)this.setCell(e+r+s,this.loadCell(e+s,i));for(let i=0;i<r;++i)this.setCell(e+i,s)}else for(let r=e;r<this.length;++r)this.setCell(r,s);2===this.getWidth(this.length-1)&&this.setCellFromCodepoint(this.length-1,0,1,s)}deleteCells(e,r,s){if(e%=this.length,r<this.length-e){let i=new uJ;for(let s=0;s<this.length-e-r;++s)this.setCell(e+s,this.loadCell(e+r+s,i));for(let e=this.length-r;e<this.length;++e)this.setCell(e,s)}else for(let r=e;r<this.length;++r)this.setCell(r,s);e&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,s),0!==this.getWidth(e)||this.hasContent(e)||this.setCellFromCodepoint(e,0,1,s)}replaceCells(e,r,s,i=!1){if(i){for(e&&2===this.getWidth(e-1)&&!this.isProtected(e-1)&&this.setCellFromCodepoint(e-1,0,1,s),r<this.length&&2===this.getWidth(r-1)&&!this.isProtected(r)&&this.setCellFromCodepoint(r,0,1,s);e<r&&e<this.length;)this.isProtected(e)||this.setCell(e,s),e++;return}for(e&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,s),r<this.length&&2===this.getWidth(r-1)&&this.setCellFromCodepoint(r,0,1,s);e<r&&e<this.length;)this.setCell(e++,s)}resize(e,r){if(e===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;let s=3*e;if(e>this.length){if(this._data.buffer.byteLength>=4*s)this._data=new Uint32Array(this._data.buffer,0,s);else{let e=new Uint32Array(s);e.set(this._data),this._data=e}for(let s=this.length;s<e;++s)this.setCell(s,r)}else{this._data=this._data.subarray(0,s);let r=Object.keys(this._combined);for(let s=0;s<r.length;s++){let i=parseInt(r[s],10);i>=e&&delete this._combined[i]}let i=Object.keys(this._extendedAttrs);for(let r=0;r<i.length;r++){let s=parseInt(i[r],10);s>=e&&delete this._extendedAttrs[s]}}return this.length=e,4*s*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){let e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,r=!1){if(r){for(let r=0;r<this.length;++r)this.isProtected(r)||this.setCell(r,e);return}this._combined={},this._extendedAttrs={};for(let r=0;r<this.length;++r)this.setCell(r,e)}copyFrom(e){for(let r in this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={},e._combined)this._combined[r]=e._combined[r];for(let r in this._extendedAttrs={},e._extendedAttrs)this._extendedAttrs[r]=e._extendedAttrs[r];this.isWrapped=e.isWrapped}clone(){let r=new e(0);for(let e in r._data=new Uint32Array(this._data),r.length=this.length,this._combined)r._combined[e]=this._combined[e];for(let e in this._extendedAttrs)r._extendedAttrs[e]=this._extendedAttrs[e];return r.isWrapped=this.isWrapped,r}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||0x3000000&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,r,s,i,n){let a=e._data;if(n)for(let n=i-1;n>=0;n--){for(let e=0;e<3;e++)this._data[(s+n)*3+e]=a[(r+n)*3+e];0x10000000&a[(r+n)*3+2]&&(this._extendedAttrs[s+n]=e._extendedAttrs[r+n])}else for(let n=0;n<i;n++){for(let e=0;e<3;e++)this._data[(s+n)*3+e]=a[(r+n)*3+e];0x10000000&a[(r+n)*3+2]&&(this._extendedAttrs[s+n]=e._extendedAttrs[r+n])}let o=Object.keys(e._combined);for(let i=0;i<o.length;i++){let n=parseInt(o[i],10);n>=r&&(this._combined[n-r+s]=e._combined[n])}}translateToString(e,r,s,i){r=r??0,s=s??this.length,e&&(s=Math.min(s,this.getTrimmedLength())),i&&(i.length=0);let n="";for(;r<s;){let e=this._data[3*r+0],s=2097151&e,a=2097152&e?this._combined[r]:s?uK(s):" ";if(n+=a,i)for(let e=0;e<a.length;++e)i.push(r);r+=e>>22||1}return i&&i.push(r),n}};function m8(e,r,s){if(r===e.length-1)return e[r].getTrimmedLength();let i=!e[r].hasContent(s-1)&&1===e[r].getWidth(s-1),n=2===e[r+1].getWidth(0);return i&&n?s-1:s}var m7=class e{constructor(r){this.line=r,this.isDisposed=!1,this._disposables=[],this._id=e._nextId++,this._onDispose=this.register(new hQ),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),hb(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}};m7._nextId=1;var m9={},ge=m9.B;m9[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"°",g:"±",h:"␤",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},m9.A={"#":"£"},m9.B=void 0,m9[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},m9.C=m9[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},m9.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},m9.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},m9.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},m9.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},m9.E=m9[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},m9.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},m9.H=m9[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},m9["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"};var gt=class{constructor(e,r,s){this._hasScrollback=e,this._optionsService=r,this._bufferService=s,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=m3.clone(),this.savedCharset=ge,this.markers=[],this._nullCell=uJ.fromCharData([0,"",1,0]),this._whitespaceCell=uJ.fromCharData([0," ",1,32]),this._isClearing=!1,this._memoryCleanupQueue=new mA,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new m5(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new uX),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new uX),this._whitespaceCell}getBlankLine(e,r){return new m6(this._bufferService.cols,this.getNullCell(e),r)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;let r=e+this._optionsService.rawOptions.scrollback;return r>0xffffffff?0xffffffff:r}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=m3);let r=this._rows;for(;r--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new m5(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,r){let s=this.getNullCell(m3),i=0,n=this._getCorrectBufferLength(r);if(n>this.lines.maxLength&&(this.lines.maxLength=n),this.lines.length>0){if(this._cols<e)for(let r=0;r<this.lines.length;r++)i+=+this.lines.get(r).resize(e,s);let a=0;if(this._rows<r)for(let i=this._rows;i<r;i++)this.lines.length<r+this.ybase&&(this._optionsService.rawOptions.windowsMode||void 0!==this._optionsService.rawOptions.windowsPty.backend||void 0!==this._optionsService.rawOptions.windowsPty.buildNumber?this.lines.push(new m6(e,s)):this.ybase>0&&this.lines.length<=this.ybase+this.y+a+1?(this.ybase--,a++,this.ydisp>0&&this.ydisp--):this.lines.push(new m6(e,s)));else for(let e=this._rows;e>r;e--)this.lines.length>r+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(n<this.lines.maxLength){let e=this.lines.length-n;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=n}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,r-1),a&&(this.y+=a),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=r-1,this._isReflowEnabled&&(this._reflow(e,r),this._cols>e))for(let r=0;r<this.lines.length;r++)i+=+this.lines.get(r).resize(e,s);this._cols=e,this._rows=r,this._memoryCleanupQueue.clear(),i>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let r=0;for(;this._memoryCleanupPosition<this.lines.length;)if((r+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory())>100)return!0;return e}get _isReflowEnabled(){let e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&"conpty"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,r){this._cols!==e&&(e>this._cols?this._reflowLarger(e,r):this._reflowSmaller(e,r))}_reflowLarger(e,r){let s=this._optionsService.rawOptions.reflowCursorLine,i=function(e,r,s,i,n,a){let o=[];for(let l=0;l<e.length-1;l++){let c=l,d=e.get(++c);if(!d.isWrapped)continue;let u=[e.get(l)];for(;c<e.length&&d.isWrapped;)u.push(d),d=e.get(++c);if(!a&&i>=l&&i<c){l+=u.length-1;continue}let h=0,f=m8(u,0,r),p=1,m=0;for(;p<u.length;){let e=m8(u,p,r),i=Math.min(e-m,s-f);u[h].copyCellsFrom(u[p],m,f,i,!1),(f+=i)===s&&(h++,f=0),(m+=i)===e&&(p++,m=0),0===f&&0!==h&&2===u[h-1].getWidth(s-1)&&(u[h].copyCellsFrom(u[h-1],s-1,f++,1,!1),u[h-1].setCell(s-1,n))}u[h].replaceCells(f,s,n);let g=0;for(let e=u.length-1;e>0&&(e>h||0===u[e].getTrimmedLength());e--)g++;g>0&&(o.push(l+u.length-g),o.push(g)),l+=u.length-1}return o}(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(m3),s);if(i.length>0){let s=function(e,r){let s=[],i=0,n=r[0],a=0;for(let o=0;o<e.length;o++)if(n===o){let s=r[++i];e.onDeleteEmitter.fire({index:o-a,amount:s}),o+=s-1,a+=s,n=r[++i]}else s.push(o);return{layout:s,countRemoved:a}}(this.lines,i);(function(e,r){let s=[];for(let i=0;i<r.length;i++)s.push(e.get(r[i]));for(let r=0;r<s.length;r++)e.set(r,s[r]);e.length=r.length})(this.lines,s.layout),this._reflowLargerAdjustViewport(e,r,s.countRemoved)}}_reflowLargerAdjustViewport(e,r,s){let i=this.getNullCell(m3),n=s;for(;n-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<r&&this.lines.push(new m6(e,i))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-s,0)}_reflowSmaller(e,r){let s=this._optionsService.rawOptions.reflowCursorLine,i=this.getNullCell(m3),n=[],a=0;for(let o=this.lines.length-1;o>=0;o--){let l=this.lines.get(o);if(!l||!l.isWrapped&&l.getTrimmedLength()<=e)continue;let c=[l];for(;l.isWrapped&&o>0;)l=this.lines.get(--o),c.unshift(l);if(!s){let e=this.ybase+this.y;if(e>=o&&e<o+c.length)continue}let d=c[c.length-1].getTrimmedLength(),u=function(e,r,s){let i=[],n=e.map((s,i)=>m8(e,i,r)).reduce((e,r)=>e+r),a=0,o=0,l=0;for(;l<n;){if(n-l<s){i.push(n-l);break}a+=s;let c=m8(e,o,r);a>c&&(a-=c,o++);let d=2===e[o].getWidth(a-1);d&&a--;let u=d?s-1:s;i.push(u),l+=u}return i}(c,this._cols,e),h=u.length-c.length,f;f=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+h):Math.max(0,this.lines.length-this.lines.maxLength+h);let p=[];for(let e=0;e<h;e++){let e=this.getBlankLine(m3,!0);p.push(e)}p.length>0&&(n.push({start:o+c.length+a,newLines:p}),a+=p.length),c.push(...p);let m=u.length-1,g=u[m];0===g&&(g=u[--m]);let x=c.length-h-1,v=d;for(;x>=0;){let e=Math.min(v,g);if(void 0===c[m])break;c[m].copyCellsFrom(c[x],v-e,g-e,e,!0),0==(g-=e)&&(g=u[--m]),0==(v-=e)&&(v=m8(c,Math.max(--x,0),this._cols))}for(let r=0;r<c.length;r++)u[r]<e&&c[r].setCell(u[r],i);let _=h-f;for(;_-- >0;)0===this.ybase?this.y<r-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+a)-r&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+h,this.ybase+r-1)}if(n.length>0){let e=[],r=[];for(let e=0;e<this.lines.length;e++)r.push(this.lines.get(e));let s=this.lines.length,i=s-1,o=0,l=n[0];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+a);let c=0;for(let d=Math.min(this.lines.maxLength-1,s+a-1);d>=0;d--)if(l&&l.start>i+c){for(let e=l.newLines.length-1;e>=0;e--)this.lines.set(d--,l.newLines[e]);d++,e.push({index:i+1,amount:l.newLines.length}),c+=l.newLines.length,l=n[++o]}else this.lines.set(d,r[i--]);let d=0;for(let r=e.length-1;r>=0;r--)e[r].index+=d,this.lines.onInsertEmitter.fire(e[r]),d+=e[r].amount;let u=Math.max(0,s+a-this.lines.maxLength);u>0&&this.lines.onTrimEmitter.fire(u)}}translateBufferLineToString(e,r,s=0,i){let n=this.lines.get(e);return n?n.translateToString(r,s,i):""}getWrappedRangeForLine(e){let r=e,s=e;for(;r>0&&this.lines.get(r).isWrapped;)r--;for(;s+1<this.lines.length&&this.lines.get(s+1).isWrapped;)s++;return{first:r,last:s}}setupTabStops(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let r=0;r<this.markers.length;r++)this.markers[r].line===e&&(this.markers[r].dispose(),this.markers.splice(r--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose();this.markers.length=0,this._isClearing=!1}addMarker(e){let r=new m7(e);return this.markers.push(r),r.register(this.lines.onTrim(e=>{r.line-=e,r.line<0&&r.dispose()})),r.register(this.lines.onInsert(e=>{r.line>=e.index&&(r.line+=e.amount)})),r.register(this.lines.onDelete(e=>{r.line>=e.index&&r.line<e.index+e.amount&&r.dispose(),r.line>e.index&&(r.line-=e.amount)})),r.register(r.onDispose(()=>this._removeMarker(r))),r}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}},gr=class extends hj{constructor(e,r){super(),this._optionsService=e,this._bufferService=r,this._onBufferActivate=this._register(new hQ),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this._register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this._register(this._optionsService.onSpecificOptionChange("tabStopWidth",()=>this.setupTabStops()))}reset(){this._normal=new gt(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new gt(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,r){this._normal.resize(e,r),this._alt.resize(e,r),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}},gs=class extends hj{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new hQ),this.onResize=this._onResize.event,this._onScroll=this._register(new hQ),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,2),this.rows=Math.max(e.rawOptions.rows||0,1),this.buffers=this._register(new gr(e,this)),this._register(this.buffers.onBufferActivate(e=>{this._onScroll.fire(e.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(e,r){let s=this.cols!==e,i=this.rows!==r;this.cols=e,this.rows=r,this.buffers.resize(e,r),this._onResize.fire({cols:e,rows:r,colsChanged:s,rowsChanged:i})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,r=!1){let s=this.buffer,i;(i=this._cachedBlankLine)&&i.length===this.cols&&i.getFg(0)===e.fg&&i.getBg(0)===e.bg||(i=s.getBlankLine(e,r),this._cachedBlankLine=i),i.isWrapped=r;let n=s.ybase+s.scrollTop,a=s.ybase+s.scrollBottom;if(0===s.scrollTop){let e=s.lines.isFull;a===s.lines.length-1?e?s.lines.recycle().copyFrom(i):s.lines.push(i.clone()):s.lines.splice(a+1,0,i.clone()),e?this.isUserScrolling&&(s.ydisp=Math.max(s.ydisp-1,0)):(s.ybase++,this.isUserScrolling||s.ydisp++)}else{let e=a-n+1;s.lines.shiftElements(n+1,e-1,-1),s.lines.set(a,i.clone())}this.isUserScrolling||(s.ydisp=s.ybase),this._onScroll.fire(s.ydisp)}scrollLines(e,r){let s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);let i=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),i!==s.ydisp&&(r||this._onScroll.fire(s.ydisp))}};gs=uI([uO(0,u7)],gs);var gi={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnEraseInDisplay:!1,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},reflowCursorLine:!1,rescaleOverlappingGlyphs:!1,rightClickSelectsWord:mw,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRuler:{}},gn=["normal","bold","100","200","300","400","500","600","700","800","900"],ga=class extends hj{constructor(e){super(),this._onOptionChange=this._register(new hQ),this.onOptionChange=this._onOptionChange.event;let r={...gi};for(let s in e)if(s in r)try{let i=e[s];r[s]=this._sanitizeAndValidateOption(s,i)}catch(e){console.error(e)}this.rawOptions=r,this.options={...r},this._setupOptions(),this._register(hw(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(e,r){return this.onOptionChange(s=>{s===e&&r(this.rawOptions[e])})}onMultipleOptionChange(e,r){return this.onOptionChange(s=>{-1!==e.indexOf(s)&&r()})}_setupOptions(){let e=e=>{if(!(e in gi))throw Error(`No option with key "${e}"`);return this.rawOptions[e]},r=(e,r)=>{if(!(e in gi))throw Error(`No option with key "${e}"`);r=this._sanitizeAndValidateOption(e,r),this.rawOptions[e]!==r&&(this.rawOptions[e]=r,this._onOptionChange.fire(e))};for(let s in this.rawOptions){let i={get:e.bind(this,s),set:r.bind(this,s)};Object.defineProperty(this.options,s,i)}}_sanitizeAndValidateOption(e,r){switch(e){case"cursorStyle":var s;if(r||(r=gi[e]),"block"!==(s=r)&&"underline"!==s&&"bar"!==s)throw Error(`"${r}" is not a valid value for ${e}`);break;case"wordSeparator":r||(r=gi[e]);break;case"fontWeight":case"fontWeightBold":if("number"==typeof r&&1<=r&&r<=1e3)break;r=gn.includes(r)?r:gi[e];break;case"cursorWidth":r=Math.floor(r);case"lineHeight":case"tabStopWidth":if(r<1)throw Error(`${e} cannot be less than 1, value: ${r}`);break;case"minimumContrastRatio":r=Math.max(1,Math.min(21,Math.round(10*r)/10));break;case"scrollback":if((r=Math.min(r,0xffffffff))<0)throw Error(`${e} cannot be less than 0, value: ${r}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(r<=0)throw Error(`${e} cannot be less than or equal to 0, value: ${r}`);break;case"rows":case"cols":if(!r&&0!==r)throw Error(`${e} must be numeric, value: ${r}`);break;case"windowsPty":r=r??{}}return r}};function go(e,r=5){if("object"!=typeof e)return e;let s=Array.isArray(e)?[]:{};for(let i in e)s[i]=r<=1?e[i]:e[i]&&go(e[i],r-1);return s}var gl=Object.freeze({insertMode:!1}),gc=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),gd=class extends hj{constructor(e,r,s){super(),this._bufferService=e,this._logService=r,this._optionsService=s,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new hQ),this.onData=this._onData.event,this._onUserInput=this._register(new hQ),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new hQ),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new hQ),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=go(gl),this.decPrivateModes=go(gc)}reset(){this.modes=go(gl),this.decPrivateModes=go(gc)}triggerDataEvent(e,r=!1){if(this._optionsService.rawOptions.disableStdin)return;let s=this._bufferService.buffer;r&&this._optionsService.rawOptions.scrollOnUserInput&&s.ybase!==s.ydisp&&this._onRequestScrollToBottom.fire(),r&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`),this._logService.trace("sending data (codes)",()=>e.split("").map(e=>e.charCodeAt(0))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`),this._logService.trace("sending binary (codes)",()=>e.split("").map(e=>e.charCodeAt(0))),this._onBinary.fire(e))}};gd=uI([uO(0,u2),uO(1,u8),uO(2,u7)],gd);var gu={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function gh(e,r){let s=16*!!e.ctrl|4*!!e.shift|8*!!e.alt;return 4===e.button?(s|=64,s|=e.action):(s|=3&e.button,4&e.button&&(s|=64),8&e.button&&(s|=128),32===e.action?s|=32:0!==e.action||r||(s|=3)),s}var gf=String.fromCharCode,gp={DEFAULT:e=>{let r=[gh(e,!1)+32,e.col+32,e.row+32];return r[0]>255||r[1]>255||r[2]>255?"":`\x1b[M${gf(r[0])}${gf(r[1])}${gf(r[2])}`},SGR:e=>{let r=0===e.action&&4!==e.button?"m":"M";return`\x1b[<${gh(e,!0)};${e.col};${e.row}${r}`},SGR_PIXELS:e=>{let r=0===e.action&&4!==e.button?"m":"M";return`\x1b[<${gh(e,!0)};${e.x};${e.y}${r}`}},gm=class extends hj{constructor(e,r,s){for(let i of(super(),this._bufferService=e,this._coreService=r,this._optionsService=s,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._wheelPartialScroll=0,this._onProtocolChange=this._register(new hQ),this.onProtocolChange=this._onProtocolChange.event,Object.keys(gu)))this.addProtocol(i,gu[i]);for(let e of Object.keys(gp))this.addEncoding(e,gp[e]);this.reset()}addProtocol(e,r){this._protocols[e]=r}addEncoding(e,r){this._encodings[e]=r}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(e,r,s){if(0===e.deltaY||e.shiftKey||void 0===r||void 0===s)return 0;let i=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(i/=r/s+0,50>Math.abs(e.deltaY)&&(i*=.3),this._wheelPartialScroll+=i,i=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(i*=this._bufferService.rows),i}_applyScrollModifier(e,r){return r.altKey||r.ctrlKey||r.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows||4===e.button&&32===e.action||3===e.button&&32!==e.action||4!==e.button&&(2===e.action||3===e.action)||(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,"SGR_PIXELS"===this._activeEncoding))||!this._protocols[this._activeProtocol].restrict(e))return!1;let r=this._encodings[this._activeEncoding](e);return r&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(r):this._coreService.triggerDataEvent(r,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,r,s){if(s){if(e.x!==r.x||e.y!==r.y)return!1}else if(e.col!==r.col||e.row!==r.row)return!1;return e.button===r.button&&e.action===r.action&&e.ctrl===r.ctrl&&e.alt===r.alt&&e.shift===r.shift}};gm=uI([uO(0,u2),uO(1,u3),uO(2,u7)],gm);var gg,gx,gv,g_,gy,gb,gw=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],gS=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],gC=class{constructor(){if(this.version="6",!gb){(gb=new Uint8Array(65536)).fill(1),gb[0]=0,gb.fill(0,1,32),gb.fill(0,127,160),gb.fill(2,4352,4448),gb[9001]=2,gb[9002]=2,gb.fill(2,11904,42192),gb[12351]=1,gb.fill(2,44032,55204),gb.fill(2,63744,64256),gb.fill(2,65040,65050),gb.fill(2,65072,65136),gb.fill(2,65280,65377),gb.fill(2,65504,65511);for(let e=0;e<gw.length;++e)gb.fill(0,gw[e][0],gw[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?gb[e]:!function(e,r){let s=0,i=r.length-1,n;if(e<r[0][0]||e>r[i][1])return!1;for(;i>=s;)if(e>r[n=s+i>>1][1])s=n+1;else{if(!(e<r[n][0]))return!0;i=n-1}return!1}(e,gS)?e>=131072&&e<=196605||e>=196608&&e<=262141?2:1:0}charProperties(e,r){let s=this.wcwidth(e),i=0===s&&0!==r;if(i){let e=gj.extractWidth(r);0===e?i=!1:e>s&&(s=e)}return gj.createPropertyValue(0,s,i)}},gj=class e{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new hQ,this.onChange=this._onChange.event;let e=new gC;this.register(e),this._active=e.version,this._activeProvider=e}static extractShouldJoin(e){return(1&e)!=0}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,r,s=!1){return(0xffffff&e)<<3|(3&r)<<1|!!s}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(r){let s=0,i=0,n=r.length;for(let a=0;a<n;++a){let o=r.charCodeAt(a);if(55296<=o&&o<=56319){if(++a>=n)return s+this.wcwidth(o);let e=r.charCodeAt(a);56320<=e&&e<=57343?o=(o-55296)*1024+e-56320+65536:s+=this.wcwidth(e)}let l=this.charProperties(o,i),c=e.extractWidth(l);e.extractShouldJoin(l)&&(c-=e.extractWidth(i)),s+=c,i=l}return s}charProperties(e,r){return this._activeProvider.charProperties(e,r)}},gk=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,r){this._charsets[e]=r,this.glevel===e&&(this.charset=r)}};function gN(e){let r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1)?.get(e.cols-1),s=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);s&&r&&(s.isWrapped=0!==r[3]&&32!==r[3])}var gE=class e{constructor(e=32,r=32){if(this.maxLength=e,this.maxSubParamsLength=r,r>256)throw Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(r),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(r){let s=new e;if(!r.length)return s;for(let e=+!!Array.isArray(r[0]);e<r.length;++e){let i=r[e];if(Array.isArray(i))for(let e=0;e<i.length;++e)s.addSubParam(i[e]);else s.addParam(i)}return s}clone(){let r=new e(this.maxLength,this.maxSubParamsLength);return r.params.set(this.params),r.length=this.length,r._subParams.set(this._subParams),r._subParamsLength=this._subParamsLength,r._subParamsIdx.set(this._subParamsIdx),r._rejectDigits=this._rejectDigits,r._rejectSubDigits=this._rejectSubDigits,r._digitIsSub=this._digitIsSub,r}toArray(){let e=[];for(let r=0;r<this.length;++r){e.push(this.params[r]);let s=this._subParamsIdx[r]>>8,i=255&this._subParamsIdx[r];i-s>0&&e.push(Array.prototype.slice.call(this._subParams,s,i))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(e<-1)throw Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>0x7fffffff?0x7fffffff:e}addSubParam(e){if(this._digitIsSub=!0,this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(e<-1)throw Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>0x7fffffff?0x7fffffff:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){let r=this._subParamsIdx[e]>>8,s=255&this._subParamsIdx[e];return s-r>0?this._subParams.subarray(r,s):null}getSubParamsAll(){let e={};for(let r=0;r<this.length;++r){let s=this._subParamsIdx[r]>>8,i=255&this._subParamsIdx[r];i-s>0&&(e[r]=this._subParams.slice(s,i))}return e}addDigit(e){let r;if(this._rejectDigits||!(r=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let s=this._digitIsSub?this._subParams:this.params,i=s[r-1];s[r-1]=~i?Math.min(10*i+e,0x7fffffff):e}},gD=[],gR=class{constructor(){this._state=0,this._active=gD,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,r){void 0===this._handlers[e]&&(this._handlers[e]=[]);let s=this._handlers[e];return s.push(r),{dispose:()=>{let e=s.indexOf(r);-1!==e&&s.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=gD}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=gD,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||gD,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,"START")}_put(e,r,s){if(this._active.length)for(let i=this._active.length-1;i>=0;i--)this._active[i].put(e,r,s);else this._handlerFb(this._id,"PUT",uq(e,r,s))}start(){this.reset(),this._state=1}put(e,r,s){if(3!==this._state){if(1===this._state)for(;r<s;){let s=e[r++];if(59===s){this._state=2,this._start();break}if(s<48||57<s){this._state=3;return}-1===this._id&&(this._id=0),this._id=10*this._id+s-48}2===this._state&&s-r>0&&this._put(e,r,s)}}end(e,r=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let s=!1,i=this._active.length-1,n=!1;if(this._stack.paused&&(i=this._stack.loopPosition-1,s=r,n=this._stack.fallThrough,this._stack.paused=!1),!n&&!1===s){for(;i>=0&&!0!==(s=this._active[i].end(e));i--)if(s instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=i,this._stack.fallThrough=!1,s;i--}for(;i>=0;i--)if((s=this._active[i].end(!1))instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=i,this._stack.fallThrough=!0,s}else this._handlerFb(this._id,"END",e);this._active=gD,this._id=-1,this._state=0}}},gA=class{constructor(e){this._handler=e,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(e,r,s){this._hitLimit||(this._data+=uq(e,r,s),this._data.length>1e7&&(this._data="",this._hitLimit=!0))}end(e){let r=!1;if(this._hitLimit)r=!1;else if(e&&(r=this._handler(this._data))instanceof Promise)return r.then(e=>(this._data="",this._hitLimit=!1,e));return this._data="",this._hitLimit=!1,r}},gM=[],gF=class{constructor(){this._handlers=Object.create(null),this._active=gM,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=gM}registerHandler(e,r){void 0===this._handlers[e]&&(this._handlers[e]=[]);let s=this._handlers[e];return s.push(r),{dispose:()=>{let e=s.indexOf(r);-1!==e&&s.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=gM,this._ident=0}hook(e,r){if(this.reset(),this._ident=e,this._active=this._handlers[e]||gM,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(r);else this._handlerFb(this._ident,"HOOK",r)}put(e,r,s){if(this._active.length)for(let i=this._active.length-1;i>=0;i--)this._active[i].put(e,r,s);else this._handlerFb(this._ident,"PUT",uq(e,r,s))}unhook(e,r=!0){if(this._active.length){let s=!1,i=this._active.length-1,n=!1;if(this._stack.paused&&(i=this._stack.loopPosition-1,s=r,n=this._stack.fallThrough,this._stack.paused=!1),!n&&!1===s){for(;i>=0&&!0!==(s=this._active[i].unhook(e));i--)if(s instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=i,this._stack.fallThrough=!1,s;i--}for(;i>=0;i--)if((s=this._active[i].unhook(!1))instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=i,this._stack.fallThrough=!0,s}else this._handlerFb(this._ident,"UNHOOK",e);this._active=gM,this._ident=0}},gT=new gE;gT.addParam(0);var gP=class{constructor(e){this._handler=e,this._data="",this._params=gT,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():gT,this._data="",this._hitLimit=!1}put(e,r,s){this._hitLimit||(this._data+=uq(e,r,s),this._data.length>1e7&&(this._data="",this._hitLimit=!0))}unhook(e){let r=!1;if(this._hitLimit)r=!1;else if(e&&(r=this._handler(this._data,this._params))instanceof Promise)return r.then(e=>(this._params=gT,this._data="",this._hitLimit=!1,e));return this._params=gT,this._data="",this._hitLimit=!1,r}},gB=class{constructor(e){this.table=new Uint8Array(e)}setDefault(e,r){this.table.fill(e<<4|r)}add(e,r,s,i){this.table[r<<8|e]=s<<4|i}addMany(e,r,s,i){for(let n=0;n<e.length;n++)this.table[r<<8|e[n]]=s<<4|i}},gL=function(){let e=new gB(4095),r=Array.apply(null,Array(256)).map((e,r)=>r),s=(e,s)=>r.slice(e,s),i=s(32,127),n=s(0,24);n.push(25),n.push.apply(n,s(28,32));let a=s(0,14),o;for(o in e.setDefault(1,0),e.addMany(i,0,2,0),a)e.addMany([24,26,153,154],o,3,0),e.addMany(s(128,144),o,3,0),e.addMany(s(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(n,0,3,0),e.addMany(n,1,3,1),e.add(127,1,0,1),e.addMany(n,8,0,8),e.addMany(n,3,3,3),e.add(127,3,0,3),e.addMany(n,4,3,4),e.add(127,4,0,4),e.addMany(n,6,3,6),e.addMany(n,5,3,5),e.add(127,5,0,5),e.addMany(n,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(i,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(s(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(i,7,0,7),e.addMany(n,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(s(64,127),3,7,0),e.addMany(s(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(s(48,60),4,8,4),e.addMany(s(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(s(32,64),6,0,6),e.add(127,6,0,6),e.addMany(s(64,127),6,0,0),e.addMany(s(32,48),3,9,5),e.addMany(s(32,48),5,9,5),e.addMany(s(48,64),5,0,6),e.addMany(s(64,127),5,7,0),e.addMany(s(32,48),4,9,5),e.addMany(s(32,48),1,9,2),e.addMany(s(32,48),2,9,2),e.addMany(s(48,127),2,10,0),e.addMany(s(48,80),1,10,0),e.addMany(s(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(s(96,127),1,10,0),e.add(80,1,11,9),e.addMany(n,9,0,9),e.add(127,9,0,9),e.addMany(s(28,32),9,0,9),e.addMany(s(32,48),9,9,12),e.addMany(s(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(n,11,0,11),e.addMany(s(32,128),11,0,11),e.addMany(s(28,32),11,0,11),e.addMany(n,10,0,10),e.add(127,10,0,10),e.addMany(s(28,32),10,0,10),e.addMany(s(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(s(32,48),10,9,12),e.addMany(n,12,0,12),e.add(127,12,0,12),e.addMany(s(28,32),12,0,12),e.addMany(s(32,48),12,9,12),e.addMany(s(48,64),12,0,11),e.addMany(s(64,127),12,12,13),e.addMany(s(64,127),10,12,13),e.addMany(s(64,127),9,12,13),e.addMany(n,13,13,13),e.addMany(i,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(160,0,2,0),e.add(160,8,5,8),e.add(160,6,0,6),e.add(160,11,0,11),e.add(160,13,13,13),e}(),gI=class extends hj{constructor(e=gL){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new gE,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,r,s)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,r)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register(hw(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new gR),this._dcsParser=this._register(new gF),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},()=>!0)}_identifier(e,r=[64,126]){let s=0;if(e.prefix){if(e.prefix.length>1)throw Error("only one byte as prefix supported");if((s=e.prefix.charCodeAt(0))&&60>s||s>63)throw Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw Error("only two bytes as intermediates are supported");for(let r=0;r<e.intermediates.length;++r){let i=e.intermediates.charCodeAt(r);if(32>i||i>47)throw Error("intermediate must be in range 0x20 .. 0x2f");s<<=8,s|=i}}if(1!==e.final.length)throw Error("final must be a single byte");let i=e.final.charCodeAt(0);if(r[0]>i||i>r[1])throw Error(`final must be in range ${r[0]} .. ${r[1]}`);return s<<=8,s|=i}identToString(e){let r=[];for(;e;)r.push(String.fromCharCode(255&e)),e>>=8;return r.reverse().join("")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,r){let s=this._identifier(e,[48,126]);void 0===this._escHandlers[s]&&(this._escHandlers[s]=[]);let i=this._escHandlers[s];return i.push(r),{dispose:()=>{let e=i.indexOf(r);-1!==e&&i.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,r){this._executeHandlers[e.charCodeAt(0)]=r}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,r){let s=this._identifier(e);void 0===this._csiHandlers[s]&&(this._csiHandlers[s]=[]);let i=this._csiHandlers[s];return i.push(r),{dispose:()=>{let e=i.indexOf(r);-1!==e&&i.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,r){return this._dcsParser.registerHandler(this._identifier(e),r)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,r){return this._oscParser.registerHandler(e,r)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,r,s,i,n){this._parseStack.state=e,this._parseStack.handlers=r,this._parseStack.handlerPos=s,this._parseStack.transition=i,this._parseStack.chunkPos=n}parse(e,r,s){let i=0,n=0,a=0,o;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,a=this._parseStack.chunkPos+1;else{if(void 0===s||1===this._parseStack.state)throw this._parseStack.state=1,Error("improper continuation due to previous async handler, giving up parsing");let r=this._parseStack.handlers,n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===s&&n>-1){for(;n>=0&&!0!==(o=r[n](this._params));n--)if(o instanceof Promise)return this._parseStack.handlerPos=n,o}this._parseStack.handlers=[];break;case 4:if(!1===s&&n>-1){for(;n>=0&&!0!==(o=r[n]());n--)if(o instanceof Promise)return this._parseStack.handlerPos=n,o}this._parseStack.handlers=[];break;case 6:if(i=e[this._parseStack.chunkPos],o=this._dcsParser.unhook(24!==i&&26!==i,s))return o;27===i&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(i=e[this._parseStack.chunkPos],o=this._oscParser.end(24!==i&&26!==i,s))return o;27===i&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,a=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let s=a;s<r;++s){switch(i=e[s],(n=this._transitions.table[this.currentState<<8|(i<160?i:160)])>>4){case 2:for(let n=s+1;;++n)if(n>=r||(i=e[n])<32||i>126&&i<160||++n>=r||(i=e[n])<32||i>126&&i<160||++n>=r||(i=e[n])<32||i>126&&i<160||++n>=r||(i=e[n])<32||i>126&&i<160){this._printHandler(e,s,n),s=n-1;break}break;case 3:this._executeHandlers[i]?this._executeHandlers[i]():this._executeHandlerFb(i),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:s,code:i,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let a=this._csiHandlers[this._collect<<8|i],l=a?a.length-1:-1;for(;l>=0&&!0!==(o=a[l](this._params));l--)if(o instanceof Promise)return this._preserveStack(3,a,l,n,s),o;l<0&&this._csiHandlerFb(this._collect<<8|i,this._params),this.precedingJoinState=0;break;case 8:do switch(i){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(i-48)}while(++s<r&&(i=e[s])>47&&i<60)s--;break;case 9:this._collect<<=8,this._collect|=i;break;case 10:let c=this._escHandlers[this._collect<<8|i],d=c?c.length-1:-1;for(;d>=0&&!0!==(o=c[d]());d--)if(o instanceof Promise)return this._preserveStack(4,c,d,n,s),o;d<0&&this._escHandlerFb(this._collect<<8|i),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|i,this._params);break;case 13:for(let n=s+1;;++n)if(n>=r||24===(i=e[n])||26===i||27===i||i>127&&i<160){this._dcsParser.put(e,s,n),s=n-1;break}break;case 14:if(o=this._dcsParser.unhook(24!==i&&26!==i))return this._preserveStack(6,[],0,n,s),o;27===i&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let n=s+1;;n++)if(n>=r||(i=e[n])<32||i>127&&i<160){this._oscParser.put(e,s,n),s=n-1;break}break;case 6:if(o=this._oscParser.end(24!==i&&26!==i))return this._preserveStack(5,[],0,n,s),o;27===i&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0}this.currentState=15&n}}},gO=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,gz=/^[\da-f]+$/;function g$(e){if(!e)return;let r=e.toLowerCase();if(0===r.indexOf("rgb:")){r=r.slice(4);let e=gO.exec(r);if(e){let r=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/r*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/r*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/r*255)]}}else if(0===r.indexOf("#")&&(r=r.slice(1),gz.exec(r)&&[3,6,9,12].includes(r.length))){let e=r.length/3,s=[0,0,0];for(let i=0;i<3;++i){let n=parseInt(r.slice(e*i,e*i+e),16);s[i]=1===e?n<<4:2===e?n:3===e?n>>4:n>>8}return s}}function gW(e,r){let s=e.toString(16),i=s.length<2?"0"+s:s;switch(r){case 4:return s[0];case 8:return i;case 12:return(i+i).slice(0,3);default:return i+i}}var gH={"(":0,")":1,"*":2,"+":3,"-":1,".":2};function gU(e,r){if(e>24)return r.setWinLines||!1;switch(e){case 1:return!!r.restoreWin;case 2:return!!r.minimizeWin;case 3:return!!r.setWinPosition;case 4:return!!r.setWinSizePixels;case 5:return!!r.raiseWin;case 6:return!!r.lowerWin;case 7:return!!r.refreshWin;case 8:return!!r.setWinSizeChars;case 9:return!!r.maximizeWin;case 10:return!!r.fullscreenWin;case 11:return!!r.getWinState;case 13:return!!r.getWinPosition;case 14:return!!r.getWinSizePixels;case 15:return!!r.getScreenSizePixels;case 16:return!!r.getCellSizePixels;case 18:return!!r.getWinSizeChars;case 19:return!!r.getScreenSizeChars;case 20:return!!r.getIconTitle;case 21:return!!r.getWinTitle;case 22:return!!r.pushTitle;case 23:return!!r.popTitle;case 24:return!!r.setWinLines}return!1}var gK=0,gq=class extends hj{constructor(e,r,s,i,n,a,o,l,c=new gI){for(let d in super(),this._bufferService=e,this._charsetService=r,this._coreService=s,this._logService=i,this._optionsService=n,this._oscLinkService=a,this._coreMouseService=o,this._unicodeService=l,this._parser=c,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new uV,this._utf8Decoder=new uY,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=m3.clone(),this._eraseAttrDataInternal=m3.clone(),this._onRequestBell=this._register(new hQ),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new hQ),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new hQ),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new hQ),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new hQ),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new hQ),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new hQ),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new hQ),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new hQ),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new hQ),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new hQ),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new hQ),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new hQ),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this._register(this._parser),this._dirtyRowTracker=new gV(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(e=>this._activeBuffer=e.activeBuffer)),this._parser.setCsiHandlerFallback((e,r)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(e),params:r.toArray()})}),this._parser.setEscHandlerFallback(e=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(e)})}),this._parser.setExecuteHandlerFallback(e=>{this._logService.debug("Unknown EXECUTE code: ",{code:e})}),this._parser.setOscHandlerFallback((e,r,s)=>{this._logService.debug("Unknown OSC code: ",{identifier:e,action:r,data:s})}),this._parser.setDcsHandlerFallback((e,r,s)=>{"HOOK"===r&&(s=s.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(e),action:r,payload:s})}),this._parser.setPrintHandler((e,r,s)=>this.print(e,r,s)),this._parser.registerCsiHandler({final:"@"},e=>this.insertChars(e)),this._parser.registerCsiHandler({intermediates:" ",final:"@"},e=>this.scrollLeft(e)),this._parser.registerCsiHandler({final:"A"},e=>this.cursorUp(e)),this._parser.registerCsiHandler({intermediates:" ",final:"A"},e=>this.scrollRight(e)),this._parser.registerCsiHandler({final:"B"},e=>this.cursorDown(e)),this._parser.registerCsiHandler({final:"C"},e=>this.cursorForward(e)),this._parser.registerCsiHandler({final:"D"},e=>this.cursorBackward(e)),this._parser.registerCsiHandler({final:"E"},e=>this.cursorNextLine(e)),this._parser.registerCsiHandler({final:"F"},e=>this.cursorPrecedingLine(e)),this._parser.registerCsiHandler({final:"G"},e=>this.cursorCharAbsolute(e)),this._parser.registerCsiHandler({final:"H"},e=>this.cursorPosition(e)),this._parser.registerCsiHandler({final:"I"},e=>this.cursorForwardTab(e)),this._parser.registerCsiHandler({final:"J"},e=>this.eraseInDisplay(e,!1)),this._parser.registerCsiHandler({prefix:"?",final:"J"},e=>this.eraseInDisplay(e,!0)),this._parser.registerCsiHandler({final:"K"},e=>this.eraseInLine(e,!1)),this._parser.registerCsiHandler({prefix:"?",final:"K"},e=>this.eraseInLine(e,!0)),this._parser.registerCsiHandler({final:"L"},e=>this.insertLines(e)),this._parser.registerCsiHandler({final:"M"},e=>this.deleteLines(e)),this._parser.registerCsiHandler({final:"P"},e=>this.deleteChars(e)),this._parser.registerCsiHandler({final:"S"},e=>this.scrollUp(e)),this._parser.registerCsiHandler({final:"T"},e=>this.scrollDown(e)),this._parser.registerCsiHandler({final:"X"},e=>this.eraseChars(e)),this._parser.registerCsiHandler({final:"Z"},e=>this.cursorBackwardTab(e)),this._parser.registerCsiHandler({final:"`"},e=>this.charPosAbsolute(e)),this._parser.registerCsiHandler({final:"a"},e=>this.hPositionRelative(e)),this._parser.registerCsiHandler({final:"b"},e=>this.repeatPrecedingCharacter(e)),this._parser.registerCsiHandler({final:"c"},e=>this.sendDeviceAttributesPrimary(e)),this._parser.registerCsiHandler({prefix:">",final:"c"},e=>this.sendDeviceAttributesSecondary(e)),this._parser.registerCsiHandler({final:"d"},e=>this.linePosAbsolute(e)),this._parser.registerCsiHandler({final:"e"},e=>this.vPositionRelative(e)),this._parser.registerCsiHandler({final:"f"},e=>this.hVPosition(e)),this._parser.registerCsiHandler({final:"g"},e=>this.tabClear(e)),this._parser.registerCsiHandler({final:"h"},e=>this.setMode(e)),this._parser.registerCsiHandler({prefix:"?",final:"h"},e=>this.setModePrivate(e)),this._parser.registerCsiHandler({final:"l"},e=>this.resetMode(e)),this._parser.registerCsiHandler({prefix:"?",final:"l"},e=>this.resetModePrivate(e)),this._parser.registerCsiHandler({final:"m"},e=>this.charAttributes(e)),this._parser.registerCsiHandler({final:"n"},e=>this.deviceStatus(e)),this._parser.registerCsiHandler({prefix:"?",final:"n"},e=>this.deviceStatusPrivate(e)),this._parser.registerCsiHandler({intermediates:"!",final:"p"},e=>this.softReset(e)),this._parser.registerCsiHandler({intermediates:" ",final:"q"},e=>this.setCursorStyle(e)),this._parser.registerCsiHandler({final:"r"},e=>this.setScrollRegion(e)),this._parser.registerCsiHandler({final:"s"},e=>this.saveCursor(e)),this._parser.registerCsiHandler({final:"t"},e=>this.windowOptions(e)),this._parser.registerCsiHandler({final:"u"},e=>this.restoreCursor(e)),this._parser.registerCsiHandler({intermediates:"'",final:"}"},e=>this.insertColumns(e)),this._parser.registerCsiHandler({intermediates:"'",final:"~"},e=>this.deleteColumns(e)),this._parser.registerCsiHandler({intermediates:'"',final:"q"},e=>this.selectProtected(e)),this._parser.registerCsiHandler({intermediates:"$",final:"p"},e=>this.requestMode(e,!0)),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},e=>this.requestMode(e,!1)),this._parser.setExecuteHandler(pF.BEL,()=>this.bell()),this._parser.setExecuteHandler(pF.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(pF.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(pF.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(pF.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(pF.BS,()=>this.backspace()),this._parser.setExecuteHandler(pF.HT,()=>this.tab()),this._parser.setExecuteHandler(pF.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(pF.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(pT.IND,()=>this.index()),this._parser.setExecuteHandler(pT.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(pT.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new gA(e=>(this.setTitle(e),this.setIconName(e),!0))),this._parser.registerOscHandler(1,new gA(e=>this.setIconName(e))),this._parser.registerOscHandler(2,new gA(e=>this.setTitle(e))),this._parser.registerOscHandler(4,new gA(e=>this.setOrReportIndexedColor(e))),this._parser.registerOscHandler(8,new gA(e=>this.setHyperlink(e))),this._parser.registerOscHandler(10,new gA(e=>this.setOrReportFgColor(e))),this._parser.registerOscHandler(11,new gA(e=>this.setOrReportBgColor(e))),this._parser.registerOscHandler(12,new gA(e=>this.setOrReportCursorColor(e))),this._parser.registerOscHandler(104,new gA(e=>this.restoreIndexedColor(e))),this._parser.registerOscHandler(110,new gA(e=>this.restoreFgColor(e))),this._parser.registerOscHandler(111,new gA(e=>this.restoreBgColor(e))),this._parser.registerOscHandler(112,new gA(e=>this.restoreCursorColor(e))),this._parser.registerEscHandler({final:"7"},()=>this.saveCursor()),this._parser.registerEscHandler({final:"8"},()=>this.restoreCursor()),this._parser.registerEscHandler({final:"D"},()=>this.index()),this._parser.registerEscHandler({final:"E"},()=>this.nextLine()),this._parser.registerEscHandler({final:"H"},()=>this.tabSet()),this._parser.registerEscHandler({final:"M"},()=>this.reverseIndex()),this._parser.registerEscHandler({final:"="},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:">"},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:"c"},()=>this.fullReset()),this._parser.registerEscHandler({final:"n"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:"o"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:"|"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:"}"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:"~"},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:"%",final:"@"},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:"%",final:"G"},()=>this.selectDefaultCharset()),m9)this._parser.registerEscHandler({intermediates:"(",final:d},()=>this.selectCharset("("+d)),this._parser.registerEscHandler({intermediates:")",final:d},()=>this.selectCharset(")"+d)),this._parser.registerEscHandler({intermediates:"*",final:d},()=>this.selectCharset("*"+d)),this._parser.registerEscHandler({intermediates:"+",final:d},()=>this.selectCharset("+"+d)),this._parser.registerEscHandler({intermediates:"-",final:d},()=>this.selectCharset("-"+d)),this._parser.registerEscHandler({intermediates:".",final:d},()=>this.selectCharset("."+d)),this._parser.registerEscHandler({intermediates:"/",final:d},()=>this.selectCharset("/"+d));this._parser.registerEscHandler({intermediates:"#",final:"8"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(e=>(this._logService.error("Parsing error: ",e),e)),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new gP((e,r)=>this.requestStatusString(e,r)))}getAttrData(){return this._curAttrData}_preserveStack(e,r,s,i){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=r,this._parseStack.decodedLength=s,this._parseStack.position=i}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((e,r)=>setTimeout(()=>r("#SLOW_TIMEOUT"),5e3))]).catch(e=>{if("#SLOW_TIMEOUT"!==e)throw e;console.warn("async parser handler taking longer than 5000 ms")})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,r){let s,i=this._activeBuffer.x,n=this._activeBuffer.y,a=0,o=this._parseStack.paused;if(o){if(s=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,r))return this._logSlowResolvingAsync(s),s;i=this._parseStack.cursorStartX,n=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>131072&&(a=this._parseStack.position+131072)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${"string"==typeof e?` "${e}"`:` "${Array.prototype.map.call(e,e=>String.fromCharCode(e)).join("")}"`}`),0===this._logService.logLevel&&this._logService.trace("parsing data (codes)","string"==typeof e?e.split("").map(e=>e.charCodeAt(0)):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<131072&&(this._parseBuffer=new Uint32Array(Math.min(e.length,131072))),o||this._dirtyRowTracker.clearRange(),e.length>131072)for(let r=a;r<e.length;r+=131072){let a=r+131072<e.length?r+131072:e.length,o="string"==typeof e?this._stringDecoder.decode(e.substring(r,a),this._parseBuffer):this._utf8Decoder.decode(e.subarray(r,a),this._parseBuffer);if(s=this._parser.parse(this._parseBuffer,o))return this._preserveStack(i,n,o,r),this._logSlowResolvingAsync(s),s}else if(!o){let r="string"==typeof e?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(s=this._parser.parse(this._parseBuffer,r))return this._preserveStack(i,n,r,0),this._logSlowResolvingAsync(s),s}(this._activeBuffer.x!==i||this._activeBuffer.y!==n)&&this._onCursorMove.fire();let l=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),c=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);c<this._bufferService.rows&&this._onRequestRefreshRows.fire({start:Math.min(c,this._bufferService.rows-1),end:Math.min(l,this._bufferService.rows-1)})}print(e,r,s){let i,n,a=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,l=this._bufferService.cols,c=this._coreService.decPrivateModes.wraparound,d=this._coreService.modes.insertMode,u=this._curAttrData,h=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&s-r>0&&2===h.getWidth(this._activeBuffer.x-1)&&h.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let f=this._parser.precedingJoinState;for(let p=r;p<s;++p){if((i=e[p])<127&&a){let e=a[String.fromCharCode(i)];e&&(i=e.charCodeAt(0))}let r=this._unicodeService.charProperties(i,f);n=gj.extractWidth(r);let s=gj.extractShouldJoin(r),m=s?gj.extractWidth(f):0;if(f=r,o&&this._onA11yChar.fire(uK(i)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+n-m>l){if(c){let e=h,r=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),h=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&h instanceof m6&&h.copyCellsFrom(e,r,0,m,!1);r<l;)e.setCellFromCodepoint(r++,0,1,u)}else if(this._activeBuffer.x=l-1,2===n)continue}if(s&&this._activeBuffer.x){let e=h.getWidth(this._activeBuffer.x-1)?1:2;h.addCodepointToCell(this._activeBuffer.x-e,i,n);for(let e=n-m;--e>=0;)h.setCellFromCodepoint(this._activeBuffer.x++,0,0,u);continue}if(d&&(h.insertCells(this._activeBuffer.x,n-m,this._activeBuffer.getNullCell(u)),2===h.getWidth(l-1)&&h.setCellFromCodepoint(l-1,0,1,u)),h.setCellFromCodepoint(this._activeBuffer.x++,i,n,u),n>0)for(;--n;)h.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=f,this._activeBuffer.x<l&&s-r>0&&0===h.getWidth(this._activeBuffer.x)&&!h.hasContent(this._activeBuffer.x)&&h.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,r){return"t"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,r):this._parser.registerCsiHandler(e,e=>!gU(e.params[0],this._optionsService.rawOptions.windowOptions)||r(e))}registerDcsHandler(e,r){return this._parser.registerDcsHandler(e,new gP(r))}registerEscHandler(e,r){return this._parser.registerEscHandler(e,r)}registerOscHandler(e,r){return this._parser.registerOscHandler(e,new gA(r))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,r){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+r):(this._activeBuffer.x=e,this._activeBuffer.y=r),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,r){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+r)}cursorUp(e){let r=this._activeBuffer.y-this._activeBuffer.scrollTop;return r>=0?this._moveCursor(0,-Math.min(r,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){let r=this._activeBuffer.scrollBottom-this._activeBuffer.y;return r>=0?this._moveCursor(0,Math.min(r,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){let r=e.params[0];return 0===r?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===r&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let r=e.params[0]||1;for(;r--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let r=e.params[0]||1;for(;r--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){let r=e.params[0];return 1===r&&(this._curAttrData.bg|=0x20000000),(2===r||0===r)&&(this._curAttrData.bg&=-0x20000001),!0}_eraseInBufferLine(e,r,s,i=!1,n=!1){let a=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);a.replaceCells(r,s,this._activeBuffer.getNullCell(this._eraseAttrData()),n),i&&(a.isWrapped=!1)}_resetBufferLine(e,r=!1){let s=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);s&&(s.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),r),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),s.isWrapped=!1)}eraseInDisplay(e,r=!1){let s;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(s=this._activeBuffer.y,this._dirtyRowTracker.markDirty(s),this._eraseInBufferLine(s++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,r);s<this._bufferService.rows;s++)this._resetBufferLine(s,r);this._dirtyRowTracker.markDirty(s);break;case 1:for(s=this._activeBuffer.y,this._dirtyRowTracker.markDirty(s),this._eraseInBufferLine(s,0,this._activeBuffer.x+1,!0,r),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(s+1).isWrapped=!1);s--;)this._resetBufferLine(s,r);this._dirtyRowTracker.markDirty(0);break;case 2:if(this._optionsService.rawOptions.scrollOnEraseInDisplay){for(s=this._bufferService.rows,this._dirtyRowTracker.markRangeDirty(0,s-1);s--&&!this._activeBuffer.lines.get(this._activeBuffer.ybase+s)?.getTrimmedLength(););for(;s>=0;s--)this._bufferService.scroll(this._eraseAttrData())}else{for(s=this._bufferService.rows,this._dirtyRowTracker.markDirty(s-1);s--;)this._resetBufferLine(s,r);this._dirtyRowTracker.markDirty(0)}break;case 3:let i=this._activeBuffer.lines.length-this._bufferService.rows;i>0&&(this._activeBuffer.lines.trimStart(i),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-i,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-i,0),this._onScroll.fire(0))}return!0}eraseInLine(e,r=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,r);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,r);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,r)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let r=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let s=this._activeBuffer.ybase+this._activeBuffer.y,i=this._bufferService.rows-1-this._activeBuffer.scrollBottom,n=this._bufferService.rows-1+this._activeBuffer.ybase-i+1;for(;r--;)this._activeBuffer.lines.splice(n-1,1),this._activeBuffer.lines.splice(s,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let r=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let s=this._activeBuffer.ybase+this._activeBuffer.y,i;for(i=this._bufferService.rows-1-this._activeBuffer.scrollBottom,i=this._bufferService.rows-1+this._activeBuffer.ybase-i;r--;)this._activeBuffer.lines.splice(s,1),this._activeBuffer.lines.splice(i,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();let r=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return r&&(r.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();let r=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return r&&(r.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let r=e.params[0]||1;for(;r--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let r=e.params[0]||1;for(;r--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(m3));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let s=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);s.deleteCells(0,r,this._activeBuffer.getNullCell(this._eraseAttrData())),s.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let s=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);s.insertCells(0,r,this._activeBuffer.getNullCell(this._eraseAttrData())),s.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let s=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);s.insertCells(this._activeBuffer.x,r,this._activeBuffer.getNullCell(this._eraseAttrData())),s.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let s=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);s.deleteCells(this._activeBuffer.x,r,this._activeBuffer.getNullCell(this._eraseAttrData())),s.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();let r=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return r&&(r.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){let r=this._parser.precedingJoinState;if(!r)return!0;let s=e.params[0]||1,i=gj.extractWidth(r),n=this._activeBuffer.x-i,a=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(n),o=new Uint32Array(a.length*s),l=0;for(let e=0;e<a.length;){let r=a.codePointAt(e)||0;o[l++]=r,e+=r>65535?2:1}let c=l;for(let e=1;e<s;++e)o.copyWithin(c,0,l),c+=l;return this.print(o,0,c),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(pF.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(pF.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(pF.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(pF.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(pF.ESC+"[>83;40003;0c")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+"").indexOf(e)}setMode(e){for(let r=0;r<e.length;r++)switch(e.params[r]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(e){for(let r=0;r<e.length;r++)switch(e.params[r]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,ge),this._charsetService.setgCharset(1,ge),this._charsetService.setgCharset(2,ge),this._charsetService.setgCharset(3,ge);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol="X10";break;case 1e3:this._coreMouseService.activeProtocol="VT200";break;case 1002:this._coreMouseService.activeProtocol="DRAG";break;case 1003:this._coreMouseService.activeProtocol="ANY";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug("DECSET 1005 not supported (see #2507)");break;case 1006:this._coreMouseService.activeEncoding="SGR";break;case 1015:this._logService.debug("DECSET 1015 not supported (see #2507)");break;case 1016:this._coreMouseService.activeEncoding="SGR_PIXELS";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!0}return!0}resetMode(e){for(let r=0;r<e.length;r++)switch(e.params[r]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(e){for(let r=0;r<e.length;r++)switch(e.params[r]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol="NONE";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug("DECRST 1005 not supported (see #2507)");break;case 1006:case 1016:this._coreMouseService.activeEncoding="DEFAULT";break;case 1015:this._logService.debug("DECRST 1015 not supported (see #2507)");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),1049===e.params[r]&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!1,this._onRequestRefreshRows.fire(void 0)}return!0}requestMode(e,r){let s,i,n,a;(i=s||={})[i.NOT_RECOGNIZED=0]="NOT_RECOGNIZED",i[i.SET=1]="SET",i[i.RESET=2]="RESET",i[i.PERMANENTLY_SET=3]="PERMANENTLY_SET",i[i.PERMANENTLY_RESET=4]="PERMANENTLY_RESET";let o=this._coreService.decPrivateModes,{activeProtocol:l,activeEncoding:c}=this._coreMouseService,d=this._coreService,{buffers:u,cols:h}=this._bufferService,{active:f,alt:p}=u,m=this._optionsService.rawOptions,g=e=>e?1:2,x=e.params[0];return n=x,a=r?2===x?4:4===x?g(d.modes.insertMode):12===x?3:20===x?g(m.convertEol):0:1===x?g(o.applicationCursorKeys):3===x?m.windowOptions.setWinLines?80===h?2:+(132===h):0:6===x?g(o.origin):7===x?g(o.wraparound):8===x?3:9===x?g("X10"===l):12===x?g(m.cursorBlink):25===x?g(!d.isCursorHidden):45===x?g(o.reverseWraparound):66===x?g(o.applicationKeypad):67===x?4:1e3===x?g("VT200"===l):1002===x?g("DRAG"===l):1003===x?g("ANY"===l):1004===x?g(o.sendFocus):1005===x?4:1006===x?g("SGR"===c):1015===x?4:1016===x?g("SGR_PIXELS"===c):1048===x?1:47===x||1047===x||1049===x?g(f===p):2004===x?g(o.bracketedPasteMode):2026===x?g(o.synchronizedOutput):0,d.triggerDataEvent(`${pF.ESC}[${r?"":"?"}${n};${a}$y`),!0}_updateAttrColor(e,r,s,i,n){return 2===r?(e|=0x3000000,e&=-0x1000000,e|=uG.fromColorRGB([s,i,n])):5===r&&(e&=-0x3000100,e|=0x2000000|255&s),e}_extractColor(e,r,s){let i=[0,0,-1,0,0,0],n=0,a=0;do{if(i[a+n]=e.params[r+a],e.hasSubParams(r+a)){let s=e.getSubParams(r+a),o=0;do 5===i[1]&&(n=1),i[a+o+1+n]=s[o];while(++o<s.length&&o+a+1+n<i.length)break}if(5===i[1]&&a+n>=2||2===i[1]&&a+n>=5)break;i[1]&&(n=1)}while(++a+r<e.length&&a+n<i.length)for(let e=2;e<i.length;++e)-1===i[e]&&(i[e]=0);switch(i[0]){case 38:s.fg=this._updateAttrColor(s.fg,i[1],i[3],i[4],i[5]);break;case 48:s.bg=this._updateAttrColor(s.bg,i[1],i[3],i[4],i[5]);break;case 58:s.extended=s.extended.clone(),s.extended.underlineColor=this._updateAttrColor(s.extended.underlineColor,i[1],i[3],i[4],i[5])}return a}_processUnderline(e,r){r.extended=r.extended.clone(),(!~e||e>5)&&(e=1),r.extended.underlineStyle=e,r.fg|=0x10000000,0===e&&(r.fg&=-0x10000001),r.updateExtended()}_processSGR0(e){e.fg=m3.fg,e.bg=m3.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-0x4000000,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;let r=e.length,s,i=this._curAttrData;for(let n=0;n<r;n++)(s=e.params[n])>=30&&s<=37?(i.fg&=-0x3000100,i.fg|=0x1000000|s-30):s>=40&&s<=47?(i.bg&=-0x3000100,i.bg|=0x1000000|s-40):s>=90&&s<=97?(i.fg&=-0x3000100,i.fg|=0x1000000|s-90|8):s>=100&&s<=107?(i.bg&=-0x3000100,i.bg|=0x1000000|s-100|8):0===s?this._processSGR0(i):1===s?i.fg|=0x8000000:3===s?i.bg|=0x4000000:4===s?(i.fg|=0x10000000,this._processUnderline(e.hasSubParams(n)?e.getSubParams(n)[0]:1,i)):5===s?i.fg|=0x20000000:7===s?i.fg|=0x4000000:8===s?i.fg|=0x40000000:9===s?i.fg|=0x80000000:2===s?i.bg|=0x8000000:21===s?this._processUnderline(2,i):22===s?(i.fg&=-0x8000001,i.bg&=-0x8000001):23===s?i.bg&=-0x4000001:24===s?(i.fg&=-0x10000001,this._processUnderline(0,i)):25===s?i.fg&=-0x20000001:27===s?i.fg&=-0x4000001:28===s?i.fg&=-0x40000001:29===s?i.fg&=0x7fffffff:39===s?(i.fg&=-0x4000000,i.fg|=0xffffff&m3.fg):49===s?(i.bg&=-0x4000000,i.bg|=0xffffff&m3.bg):38===s||48===s||58===s?n+=this._extractColor(e,n,i):53===s?i.bg|=0x40000000:55===s?i.bg&=-0x40000001:59===s?(i.extended=i.extended.clone(),i.extended.underlineColor=-1,i.updateExtended()):100===s?(i.fg&=-0x4000000,i.fg|=0xffffff&m3.fg,i.bg&=-0x4000000,i.bg|=0xffffff&m3.bg):this._logService.debug("Unknown SGR attribute: %d.",s);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${pF.ESC}[0n`);break;case 6:let r=this._activeBuffer.y+1,s=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${pF.ESC}[${r};${s}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){let e=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${pF.ESC}[?${e};${r}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=m3.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){let r=0===e.length?1:e.params[0];if(0===r)this._coreService.decPrivateModes.cursorStyle=void 0,this._coreService.decPrivateModes.cursorBlink=void 0;else{switch(r){case 1:case 2:this._coreService.decPrivateModes.cursorStyle="block";break;case 3:case 4:this._coreService.decPrivateModes.cursorStyle="underline";break;case 5:case 6:this._coreService.decPrivateModes.cursorStyle="bar"}this._coreService.decPrivateModes.cursorBlink=r%2==1}return!0}setScrollRegion(e){let r=e.params[0]||1,s;return(e.length<2||(s=e.params[1])>this._bufferService.rows||0===s)&&(s=this._bufferService.rows),s>r&&(this._activeBuffer.scrollTop=r-1,this._activeBuffer.scrollBottom=s-1,this._setCursor(0,0)),!0}windowOptions(e){if(!gU(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;let r=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==r&&this._onRequestWindowsOptionsReport.fire(0);break;case 16:this._onRequestWindowsOptionsReport.fire(1);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${pF.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(0===r||2===r)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),(0===r||1===r)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:(0===r||2===r)&&this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),(0===r||1===r)&&this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){let r=[],s=e.split(";");for(;s.length>1;){let e=s.shift(),i=s.shift();if(/^\d+$/.exec(e)){let s=parseInt(e);if(gY(s))if("?"===i)r.push({type:0,index:s});else{let e=g$(i);e&&r.push({type:1,index:s,color:e})}}}return r.length&&this._onColor.fire(r),!0}setHyperlink(e){let r=e.indexOf(";");if(-1===r)return!0;let s=e.slice(0,r).trim(),i=e.slice(r+1);return i?this._createHyperlink(s,i):!s.trim()&&this._finishHyperlink()}_createHyperlink(e,r){this._getCurrentLinkId()&&this._finishHyperlink();let s=e.split(":"),i,n=s.findIndex(e=>e.startsWith("id="));return -1!==n&&(i=s[n].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:i,uri:r}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,r){let s=e.split(";");for(let e=0;e<s.length&&!(r>=this._specialColors.length);++e,++r)if("?"===s[e])this._onColor.fire([{type:0,index:this._specialColors[r]}]);else{let i=g$(s[e]);i&&this._onColor.fire([{type:1,index:this._specialColors[r],color:i}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;let r=[],s=e.split(";");for(let e=0;e<s.length;++e)if(/^\d+$/.exec(s[e])){let i=parseInt(s[e]);gY(i)&&r.push({type:2,index:i})}return r.length&&this._onColor.fire(r),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug("Serial port requested application keypad."),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug("Switching back to normal keypad."),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,ge),!0}selectCharset(e){return 2!==e.length?this.selectDefaultCharset():"/"===e[0]||this._charsetService.setgCharset(gH[e[0]],m9[e[1]]||ge),!0}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=m3.clone(),this._eraseAttrDataInternal=m3.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-0x4000000,this._eraseAttrDataInternal.bg|=0x3ffffff&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){let e=new uJ;e.content=4194373,e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let r=0;r<this._bufferService.rows;++r){let s=this._activeBuffer.ybase+this._activeBuffer.y+r,i=this._activeBuffer.lines.get(s);i&&(i.fill(e),i.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,r){let s=e=>(this._coreService.triggerDataEvent(`${pF.ESC}${e}${pF.ESC}\\`),!0),i=this._bufferService.buffer,n=this._optionsService.rawOptions;return s('"q'===e?`P1$r${+!!this._curAttrData.isProtected()}"q`:'"p'===e?'P1$r61;1"p':"r"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:"m"===e?"P1$r0m":" q"===e?`P1$r${({block:2,underline:4,bar:6})[n.cursorStyle]-!!n.cursorBlink} q`:"P0$r")}markRangeDirty(e,r){this._dirtyRowTracker.markRangeDirty(e,r)}},gV=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,r){e>r&&(gK=e,e=r,r=gK),e<this.start&&(this.start=e),r>this.end&&(this.end=r)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function gY(e){return 0<=e&&e<256}gV=uI([uO(0,u2)],gV);var gG=class extends hj{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this._register(new hQ),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,r){let s;if(void 0!==r&&this._syncCalls>r){this._syncCalls=0;return}if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,!this._isSyncWriting){for(this._isSyncWriting=!0;s=this._writeBuffer.shift();){this._action(s);let e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=0x7fffffff,this._isSyncWriting=!1,this._syncCalls=0}}write(e,r){if(this._pendingData>5e7)throw Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput){this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(r),this._innerWrite();return}setTimeout(()=>this._innerWrite())}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(r)}_innerWrite(e=0,r=!0){let s=e||performance.now();for(;this._writeBuffer.length>this._bufferOffset;){let e=this._writeBuffer[this._bufferOffset],i=this._action(e,r);if(i){let e=e=>performance.now()-s>=12?setTimeout(()=>this._innerWrite(0,e)):this._innerWrite(s,e);i.catch(e=>(queueMicrotask(()=>{throw e}),Promise.resolve(!1))).then(e);return}let n=this._callbacks[this._bufferOffset];if(n&&n(),this._bufferOffset++,this._pendingData-=e.length,performance.now()-s>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}},gX=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){let r=this._bufferService.buffer;if(void 0===e.id){let s=r.addMarker(r.ybase+r.y),i={data:e,id:this._nextId++,lines:[s]};return s.onDispose(()=>this._removeMarkerFromLink(i,s)),this._dataByLinkId.set(i.id,i),i.id}let s=this._getEntryIdKey(e),i=this._entriesWithId.get(s);if(i)return this.addLineToLink(i.id,r.ybase+r.y),i.id;let n=r.addMarker(r.ybase+r.y),a={id:this._nextId++,key:this._getEntryIdKey(e),data:e,lines:[n]};return n.onDispose(()=>this._removeMarkerFromLink(a,n)),this._entriesWithId.set(a.key,a),this._dataByLinkId.set(a.id,a),a.id}addLineToLink(e,r){let s=this._dataByLinkId.get(e);if(s&&s.lines.every(e=>e.line!==r)){let e=this._bufferService.buffer.addMarker(r);s.lines.push(e),e.onDispose(()=>this._removeMarkerFromLink(s,e))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,r){let s=e.lines.indexOf(r);-1!==s&&(e.lines.splice(s,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};gX=uI([uO(0,u2)],gX);var gJ=!1,gZ=class extends hj{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new hk),this._onBinary=this._register(new hQ),this.onBinary=this._onBinary.event,this._onData=this._register(new hQ),this.onData=this._onData.event,this._onLineFeed=this._register(new hQ),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new hQ),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new hQ),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new hQ),this._instantiationService=new m0,this.optionsService=this._register(new ga(e)),this._instantiationService.setService(u7,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(gs)),this._instantiationService.setService(u2,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(m2)),this._instantiationService.setService(u8,this._logService),this.coreService=this._register(this._instantiationService.createInstance(gd)),this._instantiationService.setService(u3,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(gm)),this._instantiationService.setService(u5,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(gj)),this._instantiationService.setService(he,this.unicodeService),this._charsetService=this._instantiationService.createInstance(gk),this._instantiationService.setService(u4,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(gX),this._instantiationService.setService(u9,this._oscLinkService),this._inputHandler=this._register(new gq(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(hq.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(hq.forward(this._bufferService.onResize,this._onResize)),this._register(hq.forward(this.coreService.onData,this._onData)),this._register(hq.forward(this.coreService.onBinary,this._onBinary)),this._register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom(!0))),this._register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this._register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],()=>this._handleWindowsPtyOptionChange())),this._register(this._bufferService.onScroll(()=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this._register(new gG((e,r)=>this._inputHandler.parse(e,r))),this._register(hq.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new hQ),this._onScroll.event(e=>{this._onScrollApi?.fire(e.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(let r in e)this.optionsService.options[r]=e[r]}write(e,r){this._writeBuffer.write(e,r)}writeSync(e,r){this._logService.logLevel<=3&&!gJ&&(this._logService.warn("writeSync is unreliable and will be removed soon."),gJ=!0),this._writeBuffer.writeSync(e,r)}input(e,r=!0){this.coreService.triggerDataEvent(e,r)}resize(e,r){isNaN(e)||isNaN(r)||(e=Math.max(e,2),r=Math.max(r,1),this._bufferService.resize(e,r))}scroll(e,r=!1){this._bufferService.scroll(e,r)}scrollLines(e,r){this._bufferService.scrollLines(e,r)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let r=e-this._bufferService.buffer.ydisp;0!==r&&this.scrollLines(r)}registerEscHandler(e,r){return this._inputHandler.registerEscHandler(e,r)}registerDcsHandler(e,r){return this._inputHandler.registerDcsHandler(e,r)}registerCsiHandler(e,r){return this._inputHandler.registerCsiHandler(e,r)}registerOscHandler(e,r){return this._inputHandler.registerOscHandler(e,r)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1,r=this.optionsService.rawOptions.windowsPty;r&&void 0!==r.buildNumber&&void 0!==r.buildNumber?e="conpty"===r.backend&&r.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let e=[];e.push(this.onLineFeed(gN.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},()=>(gN(this._bufferService),!1))),this._windowsWrappingHeuristics.value=hw(()=>{for(let r of e)r.dispose()})}}},gQ={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']},g0=0,g1=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new mA,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new mA,this._isFlushingDeleted=!1}clear(){this._array.length=0,this._insertedValues.length=0,this._flushInsertedTask.clear(),this._isFlushingInserted=!1,this._deletedIndices.length=0,this._flushDeletedTask.clear(),this._isFlushingDeleted=!1}insert(e){this._flushCleanupDeleted(),0===this._insertedValues.length&&this._flushInsertedTask.enqueue(()=>this._flushInserted()),this._insertedValues.push(e)}_flushInserted(){let e=this._insertedValues.sort((e,r)=>this._getKey(e)-this._getKey(r)),r=0,s=0,i=Array(this._array.length+this._insertedValues.length);for(let n=0;n<i.length;n++)s>=this._array.length||this._getKey(e[r])<=this._getKey(this._array[s])?(i[n]=e[r],r++):i[n]=this._array[s++];this._array=i,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(e){if(this._flushCleanupInserted(),0===this._array.length)return!1;let r=this._getKey(e);if(void 0===r||-1===(g0=this._search(r))||this._getKey(this._array[g0])!==r)return!1;do if(this._array[g0]===e)return 0===this._deletedIndices.length&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(g0),!0;while(++g0<this._array.length&&this._getKey(this._array[g0])===r)return!1}_flushDeleted(){this._isFlushingDeleted=!0;let e=this._deletedIndices.sort((e,r)=>e-r),r=0,s=Array(this._array.length-e.length),i=0;for(let n=0;n<this._array.length;n++)e[r]===n?r++:s[i++]=this._array[n];this._array=s,this._deletedIndices.length=0,this._isFlushingDeleted=!1}_flushCleanupDeleted(){!this._isFlushingDeleted&&this._deletedIndices.length>0&&this._flushDeletedTask.flush()}*getKeyIterator(e){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),0!==this._array.length&&!((g0=this._search(e))<0||g0>=this._array.length)&&this._getKey(this._array[g0])===e)do yield this._array[g0];while(++g0<this._array.length&&this._getKey(this._array[g0])===e)}forEachByKey(e,r){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),0!==this._array.length&&!((g0=this._search(e))<0||g0>=this._array.length)&&this._getKey(this._array[g0])===e)do r(this._array[g0]);while(++g0<this._array.length&&this._getKey(this._array[g0])===e)}values(){return this._flushCleanupInserted(),this._flushCleanupDeleted(),[...this._array].values()}_search(e){let r=0,s=this._array.length-1;for(;s>=r;){let i=r+s>>1,n=this._getKey(this._array[i]);if(n>e)s=i-1;else if(n<e)r=i+1;else{for(;i>0&&this._getKey(this._array[i-1])===e;)i--;return i}}return r}},g2=0,g5=0,g3=class extends hj{constructor(){super(),this._decorations=new g1(e=>e?.marker.line),this._onDecorationRegistered=this._register(new hQ),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new hQ),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(hw(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let r=new g4(e);if(r){let e=r.marker.onDispose(()=>r.dispose()),s=r.onDispose(()=>{s.dispose(),r&&(this._decorations.delete(r)&&this._onDecorationRemoved.fire(r),e.dispose())});this._decorations.insert(r),this._onDecorationRegistered.fire(r)}return r}reset(){for(let e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,r,s){let i=0,n=0;for(let a of this._decorations.getKeyIterator(r))n=(i=a.options.x??0)+(a.options.width??1),e>=i&&e<n&&(!s||(a.options.layer??"bottom")===s)&&(yield a)}forEachDecorationAtCell(e,r,s,i){this._decorations.forEachByKey(r,r=>{g5=(g2=r.options.x??0)+(r.options.width??1),e>=g2&&e<g5&&(!s||(r.options.layer??"bottom")===s)&&i(r)})}},g4=class extends hC{constructor(e){super(),this.options=e,this.onRenderEmitter=this.add(new hQ),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new hQ),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}get backgroundColorRGB(){return null===this._cachedBg&&(this.options.backgroundColor?this._cachedBg=gv.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return null===this._cachedFg&&(this.options.foregroundColor?this._cachedFg=gv.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}},g6=class{constructor(e,r=1e3){this._renderCallback=e,this._debounceThresholdMS=r,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,r,s){this._rowCount=s,e=void 0!==e?e:0,r=void 0!==r?r:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,r):r;let i=performance.now();if(i-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=i,this._innerRefresh();else if(!this._additionalRefreshRequested){let e=i-this._lastRefreshMs,r=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},r)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;let e=Math.max(this._rowStart,0),r=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,r)}},g8=class extends hj{constructor(e,r,s,i){super(),this._terminal=e,this._coreBrowserService=s,this._renderService=i,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="";let n=this._coreBrowserService.mainDocument;this._accessibilityContainer=n.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=n.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let e=0;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=n.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new g6(this._renderRows.bind(this))),!this._terminal.element)throw Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this._register(this._terminal.onResize(e=>this._handleResize(e.rows))),this._register(this._terminal.onRender(e=>this._refreshRows(e.start,e.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(e=>this._handleChar(e))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`
26
26
  `))),this._register(this._terminal.onA11yTab(e=>this._handleTab(e))),this._register(this._terminal.onKey(e=>this._handleKey(e.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(f5(n,"selectionchange",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(hw(()=>{this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let r=0;r<e;r++)this._handleChar(" ")}_handleChar(e){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
27
27
  `&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=u$)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,r){this._liveRegionDebouncer.refresh(e,r,this._terminal.rows)}_renderRows(e,r){let s=this._terminal.buffer,i=s.lines.length.toString();for(let n=e;n<=r;n++){let e=s.lines.get(s.ydisp+n),r=[],a=e?.translateToString(!0,void 0,void 0,r)||"",o=(s.ydisp+n+1).toString(),l=this._rowElements[n];l&&(0===a.length?(l.textContent=" ",this._rowColumns.set(l,[0,1])):(l.textContent=a,this._rowColumns.set(l,r)),l.setAttribute("aria-posinset",o),l.setAttribute("aria-setsize",i),this._alignRowWidth(l))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,r){let s,i,n=e.target,a=this._rowElements[0===r?1:this._rowElements.length-2];if(n.getAttribute("aria-posinset")!==(0===r?"1":`${this._terminal.buffer.lines.length}`)&&e.relatedTarget===a){if(0===r?(s=n,i=this._rowElements.pop(),this._rowContainer.removeChild(i)):(s=this._rowElements.shift(),i=n,this._rowContainer.removeChild(s)),s.removeEventListener("focus",this._topBoundaryFocusListener),i.removeEventListener("focus",this._bottomBoundaryFocusListener),0===r){let e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement("afterbegin",e)}else{let e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===r?-1:1),this._rowElements[0===r?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}}_handleSelectionChange(){if(0===this._rowElements.length)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)return void console.error("anchorNode and/or focusNode are null");let r={node:e.anchorNode,offset:e.anchorOffset},s={node:e.focusNode,offset:e.focusOffset};if((r.node.compareDocumentPosition(s.node)&Node.DOCUMENT_POSITION_PRECEDING||r.node===s.node&&r.offset>s.offset)&&([r,s]=[s,r]),r.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(r={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(r.node))return;let i=this._rowElements.slice(-1)[0];if(s.node.compareDocumentPosition(i)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(s={node:i,offset:i.textContent?.length??0}),!this._rowContainer.contains(s.node))return;let n=({node:e,offset:r})=>{let s=e instanceof Text?e.parentNode:e,i=parseInt(s?.getAttribute("aria-posinset"),10)-1;if(isNaN(i))return console.warn("row is invalid. Race condition?"),null;let n=this._rowColumns.get(s);if(!n)return console.warn("columns is null. Race condition?"),null;let a=r<n.length?n[r]:n.slice(-1)[0]+1;return a>=this._terminal.cols&&(++i,a=0),{row:i,column:a}},a=n(r),o=n(s);if(!(!a||!o)){if(a.row>o.row||a.row===o.row&&a.column>=o.column)throw Error("invalid range");this._terminal.select(a.column,a.row,(o.row-a.row)*this._terminal.cols-a.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);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 r=e.getBoundingClientRect().width,s=this._rowColumns.get(e)?.slice(-1)?.[0];if(!s)return;let i=s*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${i/r})`}};g8=uI([uO(1,u6),uO(2,hi),uO(3,ha)],g8);var g7=class extends hj{constructor(e,r,s,i,n){super(),this._element=e,this._mouseService=r,this._renderService=s,this._bufferService=i,this._linkProviderService=n,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new hQ),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new hQ),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(hw(()=>{hb(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(f5(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(f5(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register(f5(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register(f5(this._element,"mouseup",this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let r=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!r)return;this._isMouseOut=!1;let s=e.composedPath();for(let e=0;e<s.length;e++){let r=s[e];if(r.classList.contains("xterm"))break;if(r.classList.contains("xterm-hover"))return}this._lastBufferCell&&r.x===this._lastBufferCell.x&&r.y===this._lastBufferCell.y||(this._handleHover(r),this._lastBufferCell=r)}_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,r){this._activeProviderReplies&&r||(this._activeProviderReplies?.forEach(e=>{e?.forEach(e=>{e.link.dispose&&e.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let s=!1;for(let[i,n]of this._linkProviderService.linkProviders.entries())r?this._activeProviderReplies?.get(i)&&(s=this._checkLinkProviderResult(i,e,s)):n.provideLinks(e.y,r=>{if(this._isMouseOut)return;let n=r?.map(e=>({link:e}));this._activeProviderReplies?.set(i,n),s=this._checkLinkProviderResult(i,e,s),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,r){let s=new Set;for(let i=0;i<r.size;i++){let n=r.get(i);if(n)for(let r=0;r<n.length;r++){let i=n[r],a=i.link.range.start.y<e?0:i.link.range.start.x,o=i.link.range.end.y>e?this._bufferService.cols:i.link.range.end.x;for(let e=a;e<=o;e++){if(s.has(e)){n.splice(r--,1);break}s.add(e)}}}}_checkLinkProviderResult(e,r,s){if(!this._activeProviderReplies)return s;let i=this._activeProviderReplies.get(e),n=!1;for(let r=0;r<e;r++)(!this._activeProviderReplies.has(r)||this._activeProviderReplies.get(r))&&(n=!0);if(!n&&i){let e=i.find(e=>this._linkAtPosition(e.link,r));e&&(s=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!s)for(let e=0;e<this._activeProviderReplies.size;e++){let i=this._activeProviderReplies.get(e)?.find(e=>this._linkAtPosition(e.link,r));if(i){s=!0,this._handleNewLink(i);break}}return s}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){var r,s;if(!this._currentLink)return;let i=this._positionFromMouseEvent(e,this._element,this._mouseService);i&&this._mouseDownLink&&(r=this._mouseDownLink.link,s=this._currentLink.link,r.text===s.text&&r.range.start.x===s.range.start.x&&r.range.start.y===s.range.start.y&&r.range.end.x===s.range.end.x&&r.range.end.y===s.range.end.y)&&this._linkAtPosition(this._currentLink.link,i)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,r){this._currentLink&&this._lastMouseEvent&&(!e||!r||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=r)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,hb(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let r=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);r&&this._linkAtPosition(e.link,r)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||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:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",e))}},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(e=>{if(!this._currentLink)return;let r=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,s=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=r&&this._currentLink.link.range.end.y<=s&&(this._clearCurrentLink(r,s),this._lastMouseEvent)){let e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}})))}_linkHover(e,r,s){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(r,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),r.hover&&r.hover(s,r.text)}_fireUnderlineEvent(e,r){let s=e.range,i=this._bufferService.buffer.ydisp,n=this._createLinkUnderlineEvent(s.start.x-1,s.start.y-i-1,s.end.x,s.end.y-i-1,void 0);(r?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(n)}_linkLeave(e,r,s){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(r,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),r.leave&&r.leave(s,r.text)}_linkAtPosition(e,r){let s=e.range.start.y*this._bufferService.cols+e.range.start.x,i=e.range.end.y*this._bufferService.cols+e.range.end.x,n=r.y*this._bufferService.cols+r.x;return s<=n&&n<=i}_positionFromMouseEvent(e,r,s){let i=s.getCoords(e,r,this._bufferService.cols,this._bufferService.rows);if(i)return{x:i[0],y:i[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,r,s,i,n){return{x1:e,y1:r,x2:s,y2:i,cols:this._bufferService.cols,fg:n}}};g7=uI([uO(1,hn),uO(2,ha),uO(3,u2),uO(4,hd)],g7);var g9=class extends gZ{constructor(e={}){super(e),this._linkifier=this._register(new hk),this.browser=mh,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new hk),this._onCursorMove=this._register(new hQ),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new hQ),this.onKey=this._onKey.event,this._onRender=this._register(new hQ),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new hQ),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new hQ),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new hQ),this.onBell=this._onBell.event,this._onFocus=this._register(new hQ),this._onBlur=this._register(new hQ),this._onA11yCharEmitter=this._register(new hQ),this._onA11yTabEmitter=this._register(new hQ),this._onWillOpen=this._register(new hQ),this._setup(),this._decorationService=this._instantiationService.createInstance(g3),this._instantiationService.setService(ht,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(ml),this._instantiationService.setService(hd,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(hr)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(e=>this.refresh(e?.start??0,e?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(e=>this._reportWindowsOptions(e))),this._register(this._inputHandler.onColor(e=>this._handleColorEvent(e))),this._register(hq.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(hq.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(hq.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(hq.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(e=>this._afterResize(e.cols,e.rows))),this._register(hw(()=>{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 r of e){let e,s="";switch(r.index){case 256:e="foreground",s="10";break;case 257:e="background",s="11";break;case 258:e="cursor",s="12";break;default:e="ansi",s="4;"+r.index}switch(r.type){case 0:let i=gx.toColorRGB("ansi"===e?this._themeService.colors.ansi[r.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${pF.ESC}]${s};${function(e,r=16){let[s,i,n]=e;return`rgb:${gW(s,r)}/${gW(i,r)}/${gW(n,r)}`}(i)}${pP.ST}`);break;case 1:if("ansi"===e)this._themeService.modifyColors(e=>e.ansi[r.index]=pB.toColor(...r.color));else{let s=e;this._themeService.modifyColors(e=>e[s]=pB.toColor(...r.color))}break;case 2:this._themeService.restoreColor(r.index)}}}_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(g8,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(pF.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(pF.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,r=this.buffer.lines.get(e);if(!r)return;let s=Math.min(this.buffer.x,this.cols-1),i=this._renderService.dimensions.css.cell.height,n=r.getWidth(s),a=this._renderService.dimensions.css.cell.width*n,o=this.buffer.y*this._renderService.dimensions.css.cell.height,l=s*this._renderService.dimensions.css.cell.width;this.textarea.style.left=l+"px",this.textarea.style.top=o+"px",this.textarea.style.width=a+"px",this.textarea.style.height=i+"px",this.textarea.style.lineHeight=i+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this._register(f5(this.element,"copy",e=>{var r;this.hasSelection()&&(r=this._selectionService,e.clipboardData&&e.clipboardData.setData("text/plain",r.selectionText),e.preventDefault())}));let e=e=>{var r,s,i;return r=this.textarea,s=this.coreService,i=this.optionsService,void(e.stopPropagation(),e.clipboardData&&uW(e.clipboardData.getData("text/plain"),r,s,i))};this._register(f5(this.textarea,"paste",e)),this._register(f5(this.element,"paste",e)),mv?this._register(f5(this.element,"mousedown",e=>{2===e.button&&uU(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(f5(this.element,"contextmenu",e=>{uU(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),mk&&this._register(f5(this.element,"auxclick",e=>{1===e.button&&uH(e,this.textarea,this.screenElement)}))}_bindKeys(){this._register(f5(this.textarea,"keyup",e=>this._keyUp(e),!0)),this._register(f5(this.textarea,"keydown",e=>this._keyDown(e),!0)),this._register(f5(this.textarea,"keypress",e=>this._keyPress(e),!0)),this._register(f5(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this._register(f5(this.textarea,"compositionupdate",e=>this._compositionHelper.compositionupdate(e))),this._register(f5(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this._register(f5(this.textarea,"input",e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw 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 r=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),r.appendChild(this._viewportElement),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._register(f5(this.screenElement,"mousemove",e=>this.updateCursorStyle(e))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),r.appendChild(this.screenElement);let s=this.textarea=this._document.createElement("textarea");this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",uz),mN||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",()=>s.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(ma,this.textarea,e.ownerDocument.defaultView??window,this._document??"u">typeof window?window.document:null)),this._instantiationService.setService(hi,this._coreBrowserService),this._register(f5(this.textarea,"focus",e=>this._handleTextAreaFocus(e))),this._register(f5(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(mr,this._document,this._helperContainer),this._instantiationService.setService(hs,this._charSizeService),this._themeService=this._instantiationService.createInstance(mJ),this._instantiationService.setService(hc,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(pZ),this._instantiationService.setService(hl,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(mF,this.rows,this.screenElement)),this._instantiationService.setService(ha,this._renderService),this._register(this._renderService.onRenderedViewportChange(e=>this._onRender.fire(e))),this.onResize(e=>this._renderService.resize(e.cols,e.rows)),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(pN,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(md),this._instantiationService.setService(hn,this._mouseService);let i=this._linkifier.value=this._register(this._instantiationService.createInstance(g7,this.screenElement));this.element.appendChild(r);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(py,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(e=>{super.scrollLines(e,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(mH,this.element,this.screenElement,i)),this._instantiationService.setService(ho,this._selectionService),this._register(this._selectionService.onRequestScrollLines(e=>this.scrollLines(e.amount,e.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()})),this._register(hq.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(pb,this.screenElement)),this._register(f5(this.element,"mousedown",e=>this._selectionService.handleMouseDown(e))),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(g8,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",e=>this._handleScreenReaderModeOptionChange(e))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(pk,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(pk,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(mt,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,r=this.element;function s(r){let s,i,n=e._mouseService.getMouseReportCoords(r,e.screenElement);if(!n)return!1;switch(r.overrideType||r.type){case"mousemove":i=32,void 0===r.buttons?(s=3,void 0!==r.button&&(s=r.button<3?r.button:3)):s=1&r.buttons?0:4&r.buttons?1:2&r.buttons?2:3;break;case"mouseup":i=0,s=r.button<3?r.button:3;break;case"mousedown":i=1,s=r.button<3?r.button:3;break;case"wheel":if(e._customWheelEventHandler&&!1===e._customWheelEventHandler(r))return!1;let a=r.deltaY;if(0===a||0===e.coreMouseService.consumeWheelEvent(r,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr))return!1;i=a<0?0:1,s=4;break;default:return!1}return void 0!==i&&void 0!==s&&!(s>4)&&e.coreMouseService.triggerMouseEvent({col:n.col,row:n.row,x:n.x,y:n.y,button:s,action:i,ctrl:r.ctrlKey,alt:r.altKey,shift:r.shiftKey})}let i={mouseup:null,wheel:null,mousedrag:null,mousemove:null},n=e=>(s(e),e.buttons||(this._document.removeEventListener("mouseup",i.mouseup),i.mousedrag&&this._document.removeEventListener("mousemove",i.mousedrag)),this.cancel(e)),a=e=>(s(e),this.cancel(e,!0)),o=e=>{e.buttons&&s(e)},l=e=>{e.buttons||s(e)};this._register(this.coreMouseService.onProtocolChange(e=>{e?("debug"===this.optionsService.rawOptions.logLevel&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(e)),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()),8&e?i.mousemove||(r.addEventListener("mousemove",l),i.mousemove=l):(r.removeEventListener("mousemove",i.mousemove),i.mousemove=null),16&e?i.wheel||(r.addEventListener("wheel",a,{passive:!1}),i.wheel=a):(r.removeEventListener("wheel",i.wheel),i.wheel=null),2&e?i.mouseup||(i.mouseup=n):(this._document.removeEventListener("mouseup",i.mouseup),i.mouseup=null),4&e?i.mousedrag||(i.mousedrag=o):(this._document.removeEventListener("mousemove",i.mousedrag),i.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(f5(r,"mousedown",e=>{if(e.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(e)))return s(e),i.mouseup&&this._document.addEventListener("mouseup",i.mouseup),i.mousedrag&&this._document.addEventListener("mousemove",i.mousedrag),this.cancel(e)})),this._register(f5(r,"wheel",r=>{if(!i.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(r))return!1;if(!this.buffer.hasScrollback){if(0===r.deltaY)return!1;if(0===e.coreMouseService.consumeWheelEvent(r,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr))return this.cancel(r,!0);let s=pF.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(r.deltaY<0?"A":"B");return this.coreService.triggerDataEvent(s,!0),this.cancel(r,!0)}}},{passive:!1}))}refresh(e,r){this._renderService?.refreshRows(e,r)}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,r){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,r),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 r=e-this._bufferService.buffer.ydisp;0!==r&&this.scrollLines(r)}paste(e){uW(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 Error("Terminal must be opened first");let r=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),r}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw 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}select(e,r,s){this._selectionService.setSelection(e,r,s)}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,r){this._selectionService?.selectLines(e,r)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;let r=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!r&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;r||"Dead"!==e.key&&"AltGraph"!==e.key||(this._unprocessedDeadKey=!0);let s=function(e,r,s,i){let n={type:0,cancel:!1,key:void 0},a=!!e.shiftKey|2*!!e.altKey|4*!!e.ctrlKey|8*!!e.metaKey;switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?r?n.key=pF.ESC+"OA":n.key=pF.ESC+"[A":"UIKeyInputLeftArrow"===e.key?r?n.key=pF.ESC+"OD":n.key=pF.ESC+"[D":"UIKeyInputRightArrow"===e.key?r?n.key=pF.ESC+"OC":n.key=pF.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(r?n.key=pF.ESC+"OB":n.key=pF.ESC+"[B");break;case 8:n.key=e.ctrlKey?"\b":pF.DEL,e.altKey&&(n.key=pF.ESC+n.key);break;case 9:if(e.shiftKey){n.key=pF.ESC+"[Z";break}n.key=pF.HT,n.cancel=!0;break;case 13:n.key=e.altKey?pF.ESC+pF.CR:pF.CR,n.cancel=!0;break;case 27:n.key=pF.ESC,e.altKey&&(n.key=pF.ESC+pF.ESC),n.cancel=!0;break;case 37:if(e.metaKey)break;a?n.key=pF.ESC+"[1;"+(a+1)+"D":r?n.key=pF.ESC+"OD":n.key=pF.ESC+"[D";break;case 39:if(e.metaKey)break;a?n.key=pF.ESC+"[1;"+(a+1)+"C":r?n.key=pF.ESC+"OC":n.key=pF.ESC+"[C";break;case 38:if(e.metaKey)break;a?n.key=pF.ESC+"[1;"+(a+1)+"A":r?n.key=pF.ESC+"OA":n.key=pF.ESC+"[A";break;case 40:if(e.metaKey)break;a?n.key=pF.ESC+"[1;"+(a+1)+"B":r?n.key=pF.ESC+"OB":n.key=pF.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(n.key=pF.ESC+"[2~");break;case 46:a?n.key=pF.ESC+"[3;"+(a+1)+"~":n.key=pF.ESC+"[3~";break;case 36:a?n.key=pF.ESC+"[1;"+(a+1)+"H":r?n.key=pF.ESC+"OH":n.key=pF.ESC+"[H";break;case 35:a?n.key=pF.ESC+"[1;"+(a+1)+"F":r?n.key=pF.ESC+"OF":n.key=pF.ESC+"[F";break;case 33:e.shiftKey?n.type=2:e.ctrlKey?n.key=pF.ESC+"[5;"+(a+1)+"~":n.key=pF.ESC+"[5~";break;case 34:e.shiftKey?n.type=3:e.ctrlKey?n.key=pF.ESC+"[6;"+(a+1)+"~":n.key=pF.ESC+"[6~";break;case 112:a?n.key=pF.ESC+"[1;"+(a+1)+"P":n.key=pF.ESC+"OP";break;case 113:a?n.key=pF.ESC+"[1;"+(a+1)+"Q":n.key=pF.ESC+"OQ";break;case 114:a?n.key=pF.ESC+"[1;"+(a+1)+"R":n.key=pF.ESC+"OR";break;case 115:a?n.key=pF.ESC+"[1;"+(a+1)+"S":n.key=pF.ESC+"OS";break;case 116:a?n.key=pF.ESC+"[15;"+(a+1)+"~":n.key=pF.ESC+"[15~";break;case 117:a?n.key=pF.ESC+"[17;"+(a+1)+"~":n.key=pF.ESC+"[17~";break;case 118:a?n.key=pF.ESC+"[18;"+(a+1)+"~":n.key=pF.ESC+"[18~";break;case 119:a?n.key=pF.ESC+"[19;"+(a+1)+"~":n.key=pF.ESC+"[19~";break;case 120:a?n.key=pF.ESC+"[20;"+(a+1)+"~":n.key=pF.ESC+"[20~";break;case 121:a?n.key=pF.ESC+"[21;"+(a+1)+"~":n.key=pF.ESC+"[21~";break;case 122:a?n.key=pF.ESC+"[23;"+(a+1)+"~":n.key=pF.ESC+"[23~";break;case 123:a?n.key=pF.ESC+"[24;"+(a+1)+"~":n.key=pF.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if((!s||i)&&e.altKey&&!e.metaKey){let r=gQ[e.keyCode]?.[+!!e.shiftKey];if(r)n.key=pF.ESC+r;else if(e.keyCode>=65&&e.keyCode<=90){let r=String.fromCharCode(e.ctrlKey?e.keyCode-64:e.keyCode+32);e.shiftKey&&(r=r.toUpperCase()),n.key=pF.ESC+r}else if(32===e.keyCode)n.key=pF.ESC+(e.ctrlKey?pF.NUL:" ");else if("Dead"===e.key&&e.code.startsWith("Key")){let r=e.code.slice(3,4);e.shiftKey||(r=r.toLowerCase()),n.key=pF.ESC+r,n.cancel=!0}}else!s||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?!e.key||e.ctrlKey||e.altKey||e.metaKey||!(e.keyCode>=48)||1!==e.key.length?e.key&&e.ctrlKey&&("_"===e.key&&(n.key=pF.US),"@"===e.key&&(n.key=pF.NUL)):n.key=e.key:65===e.keyCode&&(n.type=1);else e.keyCode>=65&&e.keyCode<=90?n.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?n.key=pF.NUL:e.keyCode>=51&&e.keyCode<=55?n.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?n.key=pF.DEL:219===e.keyCode?n.key=pF.ESC:220===e.keyCode?n.key=pF.FS:221===e.keyCode&&(n.key=pF.GS)}return n}(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===s.type||2===s.type){let r=this.rows-1;return this.scrollLines(2===s.type?-r:r),this.cancel(e,!0)}return 1===s.type&&this.selectAll(),!!(this._isThirdLevelShift(this.browser,e)||(s.cancel&&this.cancel(e,!0),!s.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&90>=e.key.charCodeAt(0))||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):((s.key===pF.ETX||s.key===pF.CR)&&(this.textarea.value=""),this._onKey.fire({key:s.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(s.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)?this.cancel(e,!0):void(this._keyDownHandled=!0))}_isThirdLevelShift(e,r){let s=e.isMac&&!this.options.macOptionIsMeta&&r.altKey&&!r.ctrlKey&&!r.metaKey||e.isWindows&&r.altKey&&r.ctrlKey&&!r.metaKey||e.isWindows&&r.getModifierState("AltGraph");return"keypress"===r.type?s:s&&(!r.keyCode||r.keyCode>47)}_keyUp(e){var r;this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(16===(r=e).keyCode||17===r.keyCode||18===r.keyCode||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let r;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)r=e.charCode;else if(null===e.which||void 0===e.which)r=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;r=e.which}return!!r&&(!e.altKey&&!e.ctrlKey&&!e.metaKey||!!this._isThirdLevelShift(this.browser,e))&&(r=String.fromCharCode(r),this._onKey.fire({key:r,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(r,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&"insertText"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let r=e.data;return this.coreService.triggerDataEvent(r,!0),this.cancel(e),!0}return!1}resize(e,r){if(e===this.cols&&r===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,r)}_afterResize(e,r){this._charSizeService?.measure()}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){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(m3));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(pF.ESC+"[I"):this.coreService.triggerDataEvent(pF.ESC+"[O")}_reportWindowsOptions(e){if(this._renderService)switch(e){case 0:let r=this._renderService.dimensions.css.canvas.width.toFixed(0),s=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${pF.ESC}[4;${s};${r}t`);break;case 1:let i=this._renderService.dimensions.css.cell.width.toFixed(0),n=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${pF.ESC}[6;${n};${i}t`)}}cancel(e,r){if(!(!this.options.cancelEvents&&!r))return e.preventDefault(),e.stopPropagation(),!1}},xe=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,r){let s={instance:r,dispose:r.dispose,isDisposed:!1};this._addons.push(s),r.dispose=()=>this._wrappedAddonDispose(s),r.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let r=-1;for(let s=0;s<this._addons.length;s++)if(this._addons[s]===e){r=s;break}if(-1===r)throw Error("Could not dispose an addon that has not been loaded");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(r,1)}},xt=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,r){if(!(e<0||e>=this._line.length))return r?(this._line.loadCell(e,r),r):this._line.loadCell(e,new uJ)}translateToString(e,r,s){return this._line.translateToString(e,r,s)}},xr=class{constructor(e,r){this._buffer=e,this.type=r}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 r=this._buffer.lines.get(e);if(r)return new xt(r)}getNullCell(){return new uJ}},xs=class extends hj{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new hQ),this.onBufferChange=this._onBufferChange.event,this._normal=new xr(this._core.buffers.normal,"normal"),this._alternate=new xr(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 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)}},xi=class{constructor(e){this._core=e}registerCsiHandler(e,r){return this._core.registerCsiHandler(e,e=>r(e.toArray()))}addCsiHandler(e,r){return this.registerCsiHandler(e,r)}registerDcsHandler(e,r){return this._core.registerDcsHandler(e,(e,s)=>r(e,s.toArray()))}addDcsHandler(e,r){return this.registerDcsHandler(e,r)}registerEscHandler(e,r){return this._core.registerEscHandler(e,r)}addEscHandler(e,r){return this.registerEscHandler(e,r)}registerOscHandler(e,r){return this._core.registerOscHandler(e,r)}addOscHandler(e,r){return this.registerOscHandler(e,r)}},xn=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}},xa=["cols","rows"],xo=0,xl=class extends hj{constructor(e){super(),this._core=this._register(new g9(e)),this._addonManager=this._register(new xe),this._publicOptions={...this._core.options};let r=e=>this._core.options[e],s=(e,r)=>{this._checkReadonlyOptions(e),this._core.options[e]=r};for(let e in this._core.options){let i={get:r.bind(this,e),set:s.bind(this,e)};Object.defineProperty(this._publicOptions,e,i)}}_checkReadonlyOptions(e){if(xa.includes(e))throw Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw 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 xi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new xn(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 xs(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let e=this._core.coreService.decPrivateModes,r="none";switch(this._core.coreMouseService.activeProtocol){case"X10":r="x10";break;case"VT200":r="vt200";break;case"DRAG":r="drag";break;case"ANY":r="any"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:r,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 r in e)this._publicOptions[r]=e[r]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,r=!0){this._core.input(e,r)}resize(e,r){this._verifyIntegers(e,r),this._core.resize(e,r)}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,r,s){this._verifyIntegers(e,r,s),this._core.select(e,r,s)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,r){this._verifyIntegers(e,r),this._core.selectLines(e,r)}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,r){this._core.write(e,r)}writeln(e,r){this._core.write(e),this._core.write(`\r
28
- `,r)}paste(e){this._core.paste(e)}refresh(e,r){this._verifyIntegers(e,r),this._core.refresh(e,r)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return uz},set promptLabel(t){uz=t},get tooMuchOutput(){return u$},set tooMuchOutput(t){u$=t}}}_verifyIntegers(...e){for(xo of e)if(xo===1/0||isNaN(xo)||xo%1!=0)throw Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(xo of e)if(xo&&(xo===1/0||isNaN(xo)||xo%1!=0||xo<0))throw Error("This API only accepts positive integers")}},xc=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let r=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(r._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(0===e.css.cell.width||0===e.css.cell.height)return;let r=0===this._terminal.options.scrollback?0:this._terminal.options.overviewRuler?.width||14,s=window.getComputedStyle(this._terminal.element.parentElement),i=parseInt(s.getPropertyValue("height")),n=Math.max(0,parseInt(s.getPropertyValue("width"))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue("padding-top")),bottom:parseInt(a.getPropertyValue("padding-bottom")),right:parseInt(a.getPropertyValue("padding-right")),left:parseInt(a.getPropertyValue("padding-left"))},l=o.top+o.bottom;return{cols:Math.max(2,Math.floor((n-(o.right+o.left)-r)/e.css.cell.width)),rows:Math.max(1,Math.floor((i-l)/e.css.cell.height))}}},xd=class{constructor(e,r,s,i={}){this._terminal=e,this._regex=r,this._handler=s,this._options=i}provideLinks(e,r){let s=xu.computeLink(e,this._regex,this._terminal,this._handler);r(this._addCallbacks(s))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(r,s)=>{if(this._options.hover){let{range:i}=e;this._options.hover(r,s,i)}},e))}},xu=class e{static computeLink(r,s,i,n){let a=RegExp(s.source,(s.flags||"")+"g"),[o,l]=e._getWindowedLineStrings(r-1,i),c=o.join(""),d,u=[];for(;d=a.exec(c);){let r=d[0];if(!function(e){try{let r=new URL(e),s=r.password&&r.username?`${r.protocol}//${r.username}:${r.password}@${r.host}`:r.username?`${r.protocol}//${r.username}@${r.host}`:`${r.protocol}//${r.host}`;return e.toLocaleLowerCase().startsWith(s.toLocaleLowerCase())}catch{return!1}}(r))continue;let[s,a]=e._mapStrIdx(i,l,0,d.index),[o,c]=e._mapStrIdx(i,s,a,r.length);if(-1===s||-1===a||-1===o||-1===c)continue;let h={start:{x:a+1,y:s+1},end:{x:c,y:o+1}};u.push({range:h,text:r,activate:n})}return u}static _getWindowedLineStrings(e,r){let s,i=e,n=e,a=0,o="",l=[];if(s=r.buffer.active.getLine(e)){let e=s.translateToString(!0);if(s.isWrapped&&" "!==e[0]){for(a=0;(s=r.buffer.active.getLine(--i))&&a<2048&&(a+=(o=s.translateToString(!0)).length,l.push(o),!(!s.isWrapped||-1!==o.indexOf(" "))););l.reverse()}for(l.push(e),a=0;(s=r.buffer.active.getLine(++n))&&s.isWrapped&&a<2048&&(a+=(o=s.translateToString(!0)).length,l.push(o),-1===o.indexOf(" ")););}return[l,i]}static _mapStrIdx(e,r,s,i){let n=e.buffer.active,a=n.getNullCell(),o=s;for(;i;){let e=n.getLine(r);if(!e)return[-1,-1];for(let s=o;s<e.length;++s){e.getCell(s,a);let o=a.getChars();if(a.getWidth()&&(i-=o.length||1,s===e.length-1&&""===o)){let e=n.getLine(r+1);e&&e.isWrapped&&(e.getCell(0,a),2===a.getWidth()&&(i+=1))}if(i<0)return[r,s]}r++,o=0}return[r,o]}},xh=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function xf(e,r){let s=window.open();if(s){try{s.opener=null}catch{}s.location.href=r}else console.warn("Opening link blocked as opener could not be cleared")}var xp=class{constructor(e=xf,r={}){this._handler=e,this._options=r}activate(e){this._terminal=e;let r=this._options,s=r.urlRegex||xh;this._linkProvider=this._terminal.registerLinkProvider(new xd(this._terminal,s,this._handler,r))}dispose(){this._linkProvider?.dispose()}};let xm=(0,ew.default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var xg=e.i(754219);let xx=/\x1B(?:\][^\x07]*(?:\x07|\x1B\\)|[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g;function xv({logs:e,isPty:r,className:s,onInput:i,onResize:n,muteInput:a,processId:o,executorId:l,target:c,status:d,exitCode:u}){let h=(0,$.useRef)(null),f=(0,$.useRef)(null),p=(0,$.useRef)(null),m=(0,$.useRef)(0),g=(0,$.useRef)(0),x=(0,$.useRef)(a);x.current!==a&&console.log(`[ExecutorOutput] muteInput changed: ${x.current} → ${a}`),x.current=a;let{settings:v}=(0,d4.useTerminalSettings)(),_=(0,$.useRef)(v),[y,b]=(0,$.useState)(!1),w=(0,$.useRef)(0),S=(0,$.useRef)(e);S.current=e;let C=async()=>{if(!y){w.current=S.current.length,b(!0);return}let e=S.current,r=Math.min(w.current,e.length),s=e.slice(r).map(e=>"stdout"===e.type||"stderr"===e.type||"pty"===e.type?e.data:"").join("");b(!1);let i=s.replace(xx,"");if(!i)return void xg.toast.info("Capture stopped — no output to copy");try{await navigator.clipboard.writeText(i),xg.toast.success("Copied captured output to clipboard")}catch{xg.toast.error("Failed to copy to clipboard")}};(0,$.useEffect)(()=>{if(!h.current||f.current)return;let e=_.current,s=new xl({cursorBlink:r,cursorStyle:r?"block":"underline",disableStdin:!r,convertEol:!0,fontSize:e.fontSize,fontFamily:e.fontFamily,scrollback:e.scrollback,theme:{background:"#09090b",foreground:"#fafafa",cursor:r?"#fafafa":"#09090b",cursorAccent:"#09090b",selectionBackground:"#3f3f46",black:"#09090b",red:"#f87171",green:"#4ade80",yellow:"#facc15",blue:"#60a5fa",magenta:"#c084fc",cyan:"#22d3ee",white:"#fafafa",brightBlack:"#71717a",brightRed:"#fca5a5",brightGreen:"#86efac",brightYellow:"#fde047",brightBlue:"#93c5fd",brightMagenta:"#d8b4fe",brightCyan:"#67e8f9",brightWhite:"#ffffff"},allowProposedApi:!0}),a=new xc,o=new xp;return s.loadAddon(a),s.loadAddon(o),s.open(h.current),setTimeout(()=>{try{let e=h.current;if(!e||0===e.clientWidth||0===e.clientHeight)return;a.fit(),r&&n?.(s.cols,s.rows)}catch{}},0),f.current=s,p.current=a,r&&i&&s.onData(e=>{x.current||0!==g.current||i(e)}),r&&n&&s.onResize(({cols:e,rows:r})=>{n(e,r)}),()=>{s.dispose(),f.current=null,p.current=null,m.current=0,g.current=0}},[r,i,n]),(0,$.useEffect)(()=>{if(!f.current)return;e.length<m.current&&(f.current.reset(),m.current=0);let r="",s="";for(let i=m.current;i<e.length;i++){let n=e[i];("pty"===n.type||"stdout"===n.type||"stderr"===n.type)&&(n.historical?r+=n.data:s+=n.data)}if(m.current=e.length,r){g.current++;try{f.current.write(r,()=>{g.current=Math.max(0,g.current-1)})}catch(e){g.current=Math.max(0,g.current-1),console.error("[ExecutorOutput] terminal write failed",e)}}if(s)try{f.current.write(s)}catch(e){console.error("[ExecutorOutput] terminal write failed",e)}},[e]),(0,$.useEffect)(()=>{let e=f.current;if(e){e.options.fontSize=v.fontSize,e.options.fontFamily=v.fontFamily,e.options.scrollback=v.scrollback;try{p.current?.fit()}catch{}}},[v.fontSize,v.fontFamily,v.scrollback]),(0,$.useEffect)(()=>{if(!h.current||!p.current)return;let e=new ResizeObserver(()=>{try{let e=h.current;if(!e||0===e.clientWidth||0===e.clientHeight)return;p.current?.fit()}catch{}});return e.observe(h.current),()=>{e.disconnect()}},[]);let j="closed"===d&&null!==u?`closed \xb7 exit ${u}`:d??null;return(0,z.jsxs)("div",{className:(0,ey.cn)("relative h-[300px] rounded-md border bg-zinc-950 overflow-hidden",s),children:[(0,z.jsx)("div",{ref:h,className:"h-full w-full"}),(0,z.jsxs)("div",{className:"absolute top-2 right-3 z-10 flex items-center gap-1.5",children:[(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{type:"button",title:"Process info","aria-label":"Show process info",className:(0,ey.cn)("flex h-6 w-6 items-center justify-center rounded","bg-zinc-900/70 backdrop-blur-sm border border-zinc-700/60","text-zinc-400 hover:text-zinc-100 hover:border-zinc-500 transition-colors"),children:(0,z.jsx)(xm,{className:"h-3 w-3"})})}),(0,z.jsxs)(ag,{align:"end",className:"w-72",children:[(0,z.jsx)(ab,{className:"text-xs text-muted-foreground",children:"Process info"}),[{label:"Process",value:o??null},{label:"Executor",value:l??null},{label:"Target",value:c??null},{label:"Status",value:j}].map(e=>(0,z.jsxs)(ax,{disabled:!e.value,onSelect:r=>{var s,i;r.preventDefault(),s=e.label,(i=e.value)&&(navigator.clipboard.writeText(i),xg.toast.success(`${s} copied`))},className:"flex items-center justify-between gap-3 font-mono text-xs",children:[(0,z.jsx)("span",{className:"shrink-0 text-muted-foreground",children:e.label}),(0,z.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,z.jsx)("span",{className:"truncate",children:e.value??"—"}),e.value&&(0,z.jsx)(ul.Copy,{className:"h-3 w-3 shrink-0 opacity-60"})]})]},e.label))]})]}),(0,z.jsx)("button",{type:"button",onClick:C,title:y?"Stop capture & copy to clipboard":"Start capturing output","aria-label":y?"Stop capture and copy":"Start capturing output",className:(0,ey.cn)("flex h-6 w-6 items-center justify-center rounded","bg-zinc-900/70 backdrop-blur-sm border border-zinc-700/60","text-zinc-400 hover:text-zinc-100 hover:border-zinc-500 transition-colors",y&&"text-red-400 border-red-500/70 hover:text-red-300"),children:y?(0,z.jsx)(uA,{className:"h-3 w-3 fill-current"}):(0,z.jsx)(rS,{className:"h-3 w-3"})})]})]})}let x_=(0,ew.default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]),xy=[{name:"Dev Server",command:"pnpm dev",executor_type:"command",pty:!0,description:"Start the development server with hot reload"},{name:"Build",command:"pnpm build",executor_type:"command",pty:!0,description:"Build the project for production"},{name:"Lint",command:"pnpm lint",executor_type:"command",pty:!0,description:"Run the linter to check code quality"},{name:"Type Check",command:"npx tsc --noEmit",executor_type:"command",pty:!0,description:"Run TypeScript type checking without emitting files"},{name:"Test",command:"pnpm test",executor_type:"command",pty:!0,description:"Run the test suite"},{name:"Rebase on and merge into main",command:"Our goal is to sync the current local branch with the local branch/worktree `main`. The two branches may have diverged.\n\nPlease do the following in order. Only proceed to the next step if the previous step succeeds:\n\n1. Rebase the current local branch onto the local branch `main`, and resolve any conflicts if needed.\n2. If, after the rebase, `main` does not yet contain the current branch's commits, switch to the `main` branch/worktree and merge the current branch into `main` using `git merge`. Do not use `git branch -f`.\n3. If the current branch is already fully contained in `main`, and `main` has newer commits, update the current branch so it includes the latest commits from `main`.\n4. Push both the current local branch and the local branch `main` to the remote.",executor_type:"prompt",pty:!1,description:"Rebase current branch onto main, merge into main, and push both branches"},{name:"Reset to main",command:"git reset --hard main",executor_type:"command",pty:!0,description:"Hard reset the current branch to match main"},{name:"Push to remote",command:"git push --force-with-lease",executor_type:"command",pty:!0,description:"Force push to remote with lease safety check"},{name:"Git commit",command:"Inspect the modified and untracked and deleted files in the current repository, generate an appropriate commit message, and commit all relevant files.\n\nCommit message rules:\n- Use Conventional Commits format (feat:, fix:, chore:, refactor:, docs:, test:, ci:, build:, perf:, style:, etc.)\n- Choose the type that best matches the main purpose of the changes\n- Make the message specific to the actual changes\n- Keep it within 50 characters if possible\n- Use lowercase\n- Do not end with a period\n- Do not wrap the message in quotes, backticks, or markdown\n\nCommit requirements:\n- Include all relevant modified and untracked files\n- Do not include unrelated files\n- If there are no meaningful changes to commit, do not create a commit\n\nWhen finished, output only the final commit message.",executor_type:"prompt",pty:!1,description:"Inspect changes, generate a conventional commit message, and commit"},{name:"Tag and push",command:"Find the latest SemVer tag in the repository, increase the patch number by 1, create the new tag from the current commit, and push it to origin.",executor_type:"prompt",pty:!1,description:"Bump the patch version tag and push it to origin"}];function xb({open:e,onOpenChange:r,executor:s,onSubmit:i}){let[n,a]=(0,$.useState)(s?.name??""),[o,l]=(0,$.useState)(s?.executor_type??"command"),[c,d]=(0,$.useState)(s?.prompt_provider??"claude"),[u,h]=(0,$.useState)(s?.command??""),[f,p]=(0,$.useState)(s?.cwd??""),[m,g]=(0,$.useState)(s?.pty??!0),[x,v]=(0,$.useState)(!1),[_,y]=(0,$.useState)(!1),[b,w]=(0,$.useState)(null),[S,C]=(0,$.useState)(null),[j,k]=(0,$.useState)(""),N=!!s;(0,$.useEffect)(()=>{e&&(y(!1),w(null),C(null),k(""),s&&(a(s.name),l(s.executor_type??"command"),d(s.prompt_provider??"claude"),h(s.command),p(s.cwd??""),g(s.pty)))},[e]);let E=async e=>{if(e.preventDefault(),n.trim()&&u.trim()){v(!0);try{await i({name:n.trim(),command:u.trim(),executor_type:o,prompt_provider:"prompt"===o?c:null,cwd:f.trim()||void 0,pty:"prompt"===o||m}),r(!1),N||(a(""),l("command"),d("claude"),h(""),p(""),g(!0))}finally{v(!1)}}};return(0,z.jsx)(t7,{open:e,onOpenChange:r,children:(0,z.jsxs)(rr,{children:[(0,z.jsx)(rs,{children:(0,z.jsxs)("div",{className:"flex items-center justify-between pr-6",children:[(0,z.jsx)(rn,{children:_?"Select Preset":N?"Edit Executor":"Add Executor"}),!N&&!_&&(0,z.jsx)("button",{type:"button",className:"text-sm text-muted-foreground hover:text-foreground transition-colors",onClick:()=>y(!0),children:"Select from presets"})]})}),(0,z.jsxs)("div",{className:"h-[420px] flex flex-col",children:[!_&&(0,z.jsxs)("form",{onSubmit:E,className:"space-y-4 flex-1 flex flex-col",children:[(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Name"}),(0,z.jsx)(ro,{placeholder:"e.g., Dev Server",value:n,onChange:e=>a(e.target.value),required:!0})]}),(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Type"}),(0,z.jsxs)("div",{className:"flex rounded-md border border-input overflow-hidden",children:[(0,z.jsx)("button",{type:"button",className:(0,ey.cn)("flex-1 px-3 py-1.5 text-sm font-medium transition-colors","command"===o?"bg-primary text-primary-foreground":"bg-background text-muted-foreground hover:bg-muted"),onClick:()=>l("command"),children:"Command"}),(0,z.jsx)("button",{type:"button",className:(0,ey.cn)("flex-1 px-3 py-1.5 text-sm font-medium transition-colors border-l border-input","prompt"===o?"bg-primary text-primary-foreground":"bg-background text-muted-foreground hover:bg-muted"),onClick:()=>l("prompt"),children:"Prompt"})]})]}),"prompt"===o&&(0,z.jsxs)("div",{className:"flex gap-3",children:[(0,z.jsxs)("div",{className:"w-[140px] shrink-0 space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Provider"}),(0,z.jsxs)(cX,{value:c,onValueChange:e=>d(e),children:[(0,z.jsx)(cZ,{className:"w-full",children:(0,z.jsx)(cJ,{})}),(0,z.jsxs)(cQ,{children:[(0,z.jsx)(c0,{value:"claude",children:"Claude"}),(0,z.jsx)(c0,{value:"codex",children:"Codex"})]})]})]}),(0,z.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,z.jsxs)("label",{className:"text-sm font-medium",children:["Working Directory"," ",(0,z.jsx)("span",{className:"text-muted-foreground",children:"(optional)"})]}),(0,z.jsx)(ro,{placeholder:"Relative to worktree root",value:f,onChange:e=>p(e.target.value)})]})]}),(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"prompt"===o?"Prompt":"Command"}),"prompt"===o?(0,z.jsx)("textarea",{className:"flex min-h-[90px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 resize-y",placeholder:"e.g., Review the code and suggest improvements",value:u,onChange:e=>h(e.target.value),required:!0}):(0,z.jsx)(ro,{placeholder:"e.g., npm run dev",value:u,onChange:e=>h(e.target.value),required:!0})]}),"command"===o&&(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsxs)("label",{className:"text-sm font-medium",children:["Working Directory"," ",(0,z.jsx)("span",{className:"text-muted-foreground",children:"(optional)"})]}),(0,z.jsx)(ro,{placeholder:"Relative to worktree root (leave empty for root)",value:f,onChange:e=>p(e.target.value)})]}),"command"===o&&(0,z.jsxs)("div",{className:"flex items-center justify-between",children:[(0,z.jsxs)("div",{className:"space-y-0.5",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Terminal Mode (PTY)"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"Enable for interactive commands like top, vim, htop"})]}),(0,z.jsx)("button",{type:"button",role:"switch","aria-checked":m,onClick:()=>g(!m),className:(0,ey.cn)("relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",m?"bg-primary":"bg-input"),children:(0,z.jsx)("span",{className:(0,ey.cn)("pointer-events-none inline-block h-5 w-5 transform rounded-full bg-background shadow-lg ring-0 transition-transform",m?"translate-x-5":"translate-x-0")})})]}),(0,z.jsx)("div",{className:"flex-1"}),(0,z.jsxs)(ri,{children:[(0,z.jsx)(W.Button,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),(0,z.jsx)(W.Button,{type:"submit",disabled:x||!n.trim()||!u.trim(),children:x?"Saving...":N?"Save":"Add"})]})]}),_&&(0,z.jsxs)("div",{className:"space-y-4 flex-1 flex flex-col min-h-0",children:[(0,z.jsx)(ro,{placeholder:"Search presets...",value:j,onChange:e=>k(e.target.value),autoFocus:!0}),(0,z.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0 space-y-1",children:xy.filter(e=>{if(!j.trim())return!0;let r=j.toLowerCase();return e.name.toLowerCase().includes(r)||e.command.toLowerCase().includes(r)||(e.description?.toLowerCase().includes(r)??!1)}).map(e=>{let r=b?.command===e.command,s=S===e.command;return(0,z.jsxs)("div",{className:"rounded-md overflow-hidden",children:[(0,z.jsxs)("button",{type:"button",className:(0,ey.cn)("w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",r?"bg-primary/10 text-primary":"hover:bg-muted"),onClick:()=>w(e),children:["command"===e.executor_type?(0,z.jsx)(aN,{className:"h-4 w-4 shrink-0 text-muted-foreground"}):(0,z.jsx)(x_,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,z.jsx)("span",{className:"font-medium flex-1 text-left",children:e.name}),(0,z.jsx)("button",{type:"button",className:"shrink-0 p-0.5 rounded hover:bg-muted-foreground/10 transition-colors",onClick:r=>{r.stopPropagation(),C(s?null:e.command)},children:s?(0,z.jsx)(sw,{className:"h-4 w-4 text-muted-foreground"}):(0,z.jsx)(af,{className:"h-4 w-4 text-muted-foreground"})})]}),s&&(0,z.jsxs)("div",{className:(0,ey.cn)("px-3 pb-2 pt-1 text-xs text-muted-foreground space-y-1 border-t border-border/50",r?"bg-primary/5":"bg-muted/50"),children:[e.description&&(0,z.jsx)("p",{children:e.description}),(0,z.jsx)("pre",{className:"whitespace-pre-wrap break-all bg-muted/50 rounded px-2 py-1 font-mono",children:e.command}),(0,z.jsxs)("div",{className:"flex gap-3",children:[(0,z.jsxs)("span",{children:["Type: ",(0,z.jsx)("span",{className:"font-medium text-foreground/70",children:e.executor_type})]}),(0,z.jsxs)("span",{children:["PTY: ",(0,z.jsx)("span",{className:"font-medium text-foreground/70",children:e.pty?"on":"off"})]})]})]})]},e.command)})}),(0,z.jsxs)(ri,{children:[(0,z.jsx)(W.Button,{type:"button",variant:"outline",onClick:()=>{y(!1),w(null),C(null)},children:"Cancel"}),(0,z.jsx)(W.Button,{type:"button",disabled:!b,onClick:()=>{b&&(a(b.name),h(b.command),l(b.executor_type),g(b.pty),y(!1),w(null),C(null))},children:"Select"})]})]})]})]})})}let xw={logs:[],status:"connecting",exitCode:null,isPty:!1,replayingHistory:!0},xS=(0,$.createContext)(null);function xC({projectId:e,children:r}){let s=(0,$.useRef)(new Map),i=(0,$.useRef)(new Map),n=(0,$.useRef)(new Set),a=(0,$.useRef)(null),o=(0,$.useRef)(0),l=(0,$.useRef)(null),c=(0,$.useCallback)(e=>{i.current.get(e)?.forEach(e=>e())},[]),d=(0,$.useCallback)((e,r)=>{let i=s.current.get(e)??xw;s.current.set(e,{...i,...r}),c(e)},[c]),u=(0,$.useCallback)(e=>{a.current?.readyState===WebSocket.OPEN&&a.current.send(JSON.stringify(e))},[]),h=(0,$.useCallback)(e=>{let{processId:r}=e,i="error"===e.type?e.message:"finished"===e.type?`exitCode=${e.exitCode}`:"init"===e.type?`isPty=${e.isPty}`:"history_end"===e.type?"":`${e.data.length}b`;if(console.log("[diag:mux] recv",e.type,r,i),"init"===e.type)d(r,{isPty:e.isPty,replayingHistory:!0,logs:[],status:"connected"});else if("history_end"===e.type)d(r,{replayingHistory:!1});else if("finished"===e.type)console.log(`[diag:remote-stop] ${new Date().toISOString()} mux received FINISHED processId=${r} exitCode=${e.exitCode} — will trigger markProcessFinished → button flips to Start`),d(r,{exitCode:e.exitCode,status:"closed"});else if("error"===e.type)console.log(`[diag:remote-stop] ${new Date().toISOString()} mux received ERROR processId=${r} — status=error, does NOT flip isRunning`),d(r,{status:"error"});else{let i=s.current.get(r)??xw,{processId:n,...a}=e;d(r,{logs:[...i.logs,{...a,historical:i.replayingHistory}]})}},[d]);(0,$.useEffect)(()=>{if(!e)return;let r=!1;o.current=0;let i=()=>{r||(0,rv.getFreshToken)().then(()=>{r||(()=>{if(r)return;let c=new WebSocket((0,rv.getWebSocketUrl)(`/api/executor-logs/stream?projectId=${encodeURIComponent(e)}`));a.current=c,c.onopen=()=>{if(!r)for(let e of(o.current=0,console.log("[diag:mux] WS open, resubscribing",[...n.current]),n.current))c.send(JSON.stringify({type:"subscribe",processId:e}))},c.onmessage=e=>{if(!r)try{h(JSON.parse(e.data))}catch(e){console.error("[ExecutorLogs] parse error:",e)}},c.onclose=()=>{if(a.current=null,console.log("[diag:mux] WS close, reconnectAttempt=",o.current,"cancelled=",r),r)return;let e=e=>{let r=s.current.get(e);return r?.status==="closed"||r?.status==="error"};if(o.current<8){let s=o.current++,a=Math.min(15e3,1e3*2**s),c=a+a*Math.random()*.25;for(let r of n.current)e(r)||d(r,{status:"connecting"});l.current=setTimeout(()=>{l.current=null,r||i()},c)}else for(let r of n.current)e(r)||d(r,{status:"error"})}})()})};return i(),()=>{r=!0,l.current&&clearTimeout(l.current),l.current=null,a.current?.close(),a.current=null}},[e,h,d]);let f=(0,$.useMemo)(()=>({subscribeProcess:e=>{n.current.has(e)||(n.current.add(e),s.current.set(e,{...xw}),c(e),console.log("[diag:mux] send subscribe",e,"(state reset to EMPTY)"),u({type:"subscribe",processId:e}))},unsubscribeProcess:e=>{n.current.has(e)&&(n.current.delete(e),console.log("[diag:mux] send unsubscribe",e),u({type:"unsubscribe",processId:e}))},sendInput:(e,r)=>u({type:"input",processId:e,data:r}),sendResize:(e,r,s)=>u({type:"resize",processId:e,cols:r,rows:s}),onProcessChange:(e,r)=>{let s=i.current.get(e);return s||(s=new Set,i.current.set(e,s)),s.add(r),()=>{s?.delete(r)}},getProcessState:e=>s.current.get(e)??xw}),[c,u]);return(0,z.jsx)(xS.Provider,{value:f,children:r})}let xj="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function xk(e){let r=Object.prototype.toString.call(e);return"[object Window]"===r||"[object global]"===r}function xN(e){return"nodeType"in e}function xE(e){var r,s;return e?xk(e)?e:xN(e)&&null!=(r=null==(s=e.ownerDocument)?void 0:s.defaultView)?r:window:window}function xD(e){let{Document:r}=xE(e);return e instanceof r}function xR(e){return!xk(e)&&e instanceof xE(e).HTMLElement}function xA(e){return e instanceof xE(e).SVGElement}function xM(e){return e?xk(e)?e.document:xN(e)?xD(e)?e:xR(e)||xA(e)?e.ownerDocument:document:document:document}let xF=xj?$.useLayoutEffect:$.useEffect;function xT(e){let r=(0,$.useRef)(e);return xF(()=>{r.current=e}),(0,$.useCallback)(function(){for(var e=arguments.length,s=Array(e),i=0;i<e;i++)s[i]=arguments[i];return null==r.current?void 0:r.current(...s)},[])}function xP(e,r){void 0===r&&(r=[e]);let s=(0,$.useRef)(e);return xF(()=>{s.current!==e&&(s.current=e)},r),s}function xB(e,r){let s=(0,$.useRef)();return(0,$.useMemo)(()=>{let r=e(s.current);return s.current=r,r},[...r])}function xL(e){let r=xT(e),s=(0,$.useRef)(null),i=(0,$.useCallback)(e=>{e!==s.current&&(null==r||r(e,s.current)),s.current=e},[]);return[s,i]}function xI(e){let r=(0,$.useRef)();return(0,$.useEffect)(()=>{r.current=e},[e]),r.current}let xO={};function xz(e,r){return(0,$.useMemo)(()=>{if(r)return r;let s=null==xO[e]?0:xO[e]+1;return xO[e]=s,e+"-"+s},[e,r])}function x$(e){return function(r){for(var s=arguments.length,i=Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];return i.reduce((r,s)=>{for(let[i,n]of Object.entries(s)){let s=r[i];null!=s&&(r[i]=s+e*n)}return r},{...r})}}let xW=x$(1),xH=x$(-1);function xU(e){if(!e)return!1;let{KeyboardEvent:r}=xE(e.target);return r&&e instanceof r}function xK(e){if(function(e){if(!e)return!1;let{TouchEvent:r}=xE(e.target);return r&&e instanceof r}(e)){if(e.touches&&e.touches.length){let{clientX:r,clientY:s}=e.touches[0];return{x:r,y:s}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:r,clientY:s}=e.changedTouches[0];return{x:r,y:s}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let xq=Object.freeze({Translate:{toString(e){if(!e)return;let{x:r,y:s}=e;return"translate3d("+(r?Math.round(r):0)+"px, "+(s?Math.round(s):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:r,scaleY:s}=e;return"scaleX("+r+") scaleY("+s+")"}},Transform:{toString(e){if(e)return[xq.Translate.toString(e),xq.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:r,duration:s,easing:i}=e;return r+" "+s+"ms "+i}}}),xV="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",xY={display:"none"};function xG(e){let{id:r,value:s}=e;return $.default.createElement("div",{id:r,style:xY},s)}function xX(e){let{id:r,announcement:s,ariaLiveType:i="assertive"}=e;return $.default.createElement("div",{id:r,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":i,"aria-atomic":!0},s)}let xJ=(0,$.createContext)(null),xZ={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},xQ={onDragStart(e){let{active:r}=e;return"Picked up draggable item "+r.id+"."},onDragOver(e){let{active:r,over:s}=e;return s?"Draggable item "+r.id+" was moved over droppable area "+s.id+".":"Draggable item "+r.id+" is no longer over a droppable area."},onDragEnd(e){let{active:r,over:s}=e;return s?"Draggable item "+r.id+" was dropped over droppable area "+s.id:"Draggable item "+r.id+" was dropped."},onDragCancel(e){let{active:r}=e;return"Dragging was cancelled. Draggable item "+r.id+" was dropped."}};function x0(e){var r;let s,{announcements:i=xQ,container:n,hiddenTextDescribedById:a,screenReaderInstructions:o=xZ}=e,{announce:l,announcement:c}=function(){let[e,r]=(0,$.useState)("");return{announce:(0,$.useCallback)(e=>{null!=e&&r(e)},[]),announcement:e}}(),d=xz("DndLiveRegion"),[u,h]=(0,$.useState)(!1);if((0,$.useEffect)(()=>{h(!0)},[]),r=(0,$.useMemo)(()=>({onDragStart(e){let{active:r}=e;l(i.onDragStart({active:r}))},onDragMove(e){let{active:r,over:s}=e;i.onDragMove&&l(i.onDragMove({active:r,over:s}))},onDragOver(e){let{active:r,over:s}=e;l(i.onDragOver({active:r,over:s}))},onDragEnd(e){let{active:r,over:s}=e;l(i.onDragEnd({active:r,over:s}))},onDragCancel(e){let{active:r,over:s}=e;l(i.onDragCancel({active:r,over:s}))}}),[l,i]),s=(0,$.useContext)(xJ),(0,$.useEffect)(()=>{if(!s)throw Error("useDndMonitor must be used within a children of <DndContext>");return s(r)},[r,s]),!u)return null;let f=$.default.createElement($.default.Fragment,null,$.default.createElement(xG,{id:a,value:o.draggable}),$.default.createElement(xX,{id:d,announcement:c}));return n?(0,ee.createPortal)(f,n):f}function x1(){}function x2(e,r){return(0,$.useMemo)(()=>({sensor:e,options:null!=r?r:{}}),[e,r])}(_=E||(E={})).DragStart="dragStart",_.DragMove="dragMove",_.DragEnd="dragEnd",_.DragCancel="dragCancel",_.DragOver="dragOver",_.RegisterDroppable="registerDroppable",_.SetDroppableDisabled="setDroppableDisabled",_.UnregisterDroppable="unregisterDroppable";let x5=Object.freeze({x:0,y:0});function x3(e,r){return Math.sqrt(Math.pow(e.x-r.x,2)+Math.pow(e.y-r.y,2))}function x4(e,r){let{data:{value:s}}=e,{data:{value:i}}=r;return s-i}function x6(e,r){let{data:{value:s}}=e,{data:{value:i}}=r;return i-s}function x8(e){let{left:r,top:s,height:i,width:n}=e;return[{x:r,y:s},{x:r+n,y:s},{x:r,y:s+i},{x:r+n,y:s+i}]}function x7(e,r){if(!e||0===e.length)return null;let[s]=e;return r?s[r]:s}function x9(e,r,s){return void 0===r&&(r=e.left),void 0===s&&(s=e.top),{x:r+.5*e.width,y:s+.5*e.height}}let ve=e=>{let{collisionRect:r,droppableRects:s,droppableContainers:i}=e,n=[];for(let e of i){let{id:i}=e,a=s.get(i);if(a){let s=function(e,r){let s=Math.max(r.top,e.top),i=Math.max(r.left,e.left),n=Math.min(r.left+r.width,e.left+e.width),a=Math.min(r.top+r.height,e.top+e.height);if(i<n&&s<a){let o=r.width*r.height,l=e.width*e.height,c=(n-i)*(a-s);return Number((c/(o+l-c)).toFixed(4))}return 0}(a,r);s>0&&n.push({id:i,data:{droppableContainer:e,value:s}})}}return n.sort(x6)};function vt(e,r){return e&&r?{x:e.left-r.left,y:e.top-r.top}:x5}let vr=function(e){for(var r=arguments.length,s=Array(r>1?r-1:0),i=1;i<r;i++)s[i-1]=arguments[i];return s.reduce((e,r)=>({...e,top:e.top+ +r.y,bottom:e.bottom+ +r.y,left:e.left+ +r.x,right:e.right+ +r.x}),{...e})},vs={ignoreTransform:!1};function vi(e,r){void 0===r&&(r=vs);let s=e.getBoundingClientRect();if(r.ignoreTransform){let{transform:r,transformOrigin:i}=xE(e).getComputedStyle(e);r&&(s=function(e,r,s){let i=function(e){if(e.startsWith("matrix3d(")){let r=e.slice(9,-1).split(/, /);return{x:+r[12],y:+r[13],scaleX:+r[0],scaleY:+r[5]}}if(e.startsWith("matrix(")){let r=e.slice(7,-1).split(/, /);return{x:+r[4],y:+r[5],scaleX:+r[0],scaleY:+r[3]}}return null}(r);if(!i)return e;let{scaleX:n,scaleY:a,x:o,y:l}=i,c=e.left-o-(1-n)*parseFloat(s),d=e.top-l-(1-a)*parseFloat(s.slice(s.indexOf(" ")+1)),u=n?e.width/n:e.width,h=a?e.height/a:e.height;return{width:u,height:h,top:d,right:c+u,bottom:d+h,left:c}}(s,r,i))}let{top:i,left:n,width:a,height:o,bottom:l,right:c}=s;return{top:i,left:n,width:a,height:o,bottom:l,right:c}}function vn(e){return vi(e,{ignoreTransform:!0})}function va(e,r){let s=[];return e?function i(n){var a,o;let l;if(null!=r&&s.length>=r||!n)return s;if(xD(n)&&null!=n.scrollingElement&&!s.includes(n.scrollingElement))return s.push(n.scrollingElement),s;if(!xR(n)||xA(n)||s.includes(n))return s;let c=xE(e).getComputedStyle(n);return(n!==e&&(void 0===(a=c)&&(a=xE(n).getComputedStyle(n)),l=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(e=>{let r=a[e];return"string"==typeof r&&l.test(r)}))&&s.push(n),void 0===(o=c)&&(o=xE(n).getComputedStyle(n)),"fixed"===o.position)?s:i(n.parentNode)}(e):s}function vo(e){let[r]=va(e,1);return null!=r?r:null}function vl(e){return xj&&e?xk(e)?e:xN(e)?xD(e)||e===xM(e).scrollingElement?window:xR(e)?e:null:null:null}function vc(e){return xk(e)?e.scrollX:e.scrollLeft}function vd(e){return xk(e)?e.scrollY:e.scrollTop}function vu(e){return{x:vc(e),y:vd(e)}}function vh(e){return!!xj&&!!e&&e===document.scrollingElement}function vf(e){let r={x:0,y:0},s=vh(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},i={x:e.scrollWidth-s.width,y:e.scrollHeight-s.height},n=e.scrollTop<=r.y,a=e.scrollLeft<=r.x;return{isTop:n,isLeft:a,isBottom:e.scrollTop>=i.y,isRight:e.scrollLeft>=i.x,maxScroll:i,minScroll:r}}(y=D||(D={}))[y.Forward=1]="Forward",y[y.Backward=-1]="Backward";let vp={x:.2,y:.2};function vm(e){return e.reduce((e,r)=>xW(e,vu(r)),x5)}let vg=[["x",["left","right"],function(e){return e.reduce((e,r)=>e+vc(r),0)}],["y",["top","bottom"],function(e){return e.reduce((e,r)=>e+vd(r),0)}]];class vx{constructor(e,r){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const s=va(r),i=vm(s);for(const[r,n,a]of(this.rect={...e},this.width=e.width,this.height=e.height,vg))for(const e of n)Object.defineProperty(this,e,{get:()=>{let n=a(s),o=i[r]-n;return this.rect[e]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class vv{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var r;return null==(r=this.target)?void 0:r.removeEventListener(...e)})},this.target=e}add(e,r,s){var i;null==(i=this.target)||i.addEventListener(e,r,s),this.listeners.push([e,r,s])}}function v_(e,r){let s=Math.abs(e.x),i=Math.abs(e.y);return"number"==typeof r?Math.sqrt(s**2+i**2)>r:"x"in r&&"y"in r?s>r.x&&i>r.y:"x"in r?s>r.x:"y"in r&&i>r.y}function vy(e){e.preventDefault()}function vb(e){e.stopPropagation()}(b=R||(R={})).Click="click",b.DragStart="dragstart",b.Keydown="keydown",b.ContextMenu="contextmenu",b.Resize="resize",b.SelectionChange="selectionchange",b.VisibilityChange="visibilitychange",(w=A||(A={})).Space="Space",w.Down="ArrowDown",w.Right="ArrowRight",w.Left="ArrowLeft",w.Up="ArrowUp",w.Esc="Escape",w.Enter="Enter",w.Tab="Tab";let vw={start:[A.Space,A.Enter],cancel:[A.Esc],end:[A.Space,A.Enter,A.Tab]},vS=(e,r)=>{let{currentCoordinates:s}=r;switch(e.code){case A.Right:return{...s,x:s.x+25};case A.Left:return{...s,x:s.x-25};case A.Down:return{...s,y:s.y+25};case A.Up:return{...s,y:s.y-25}}};class vC{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:r}}=e;this.props=e,this.listeners=new vv(xM(r)),this.windowListeners=new vv(xE(r)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(R.Resize,this.handleCancel),this.windowListeners.add(R.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(R.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:r}=this.props,s=e.node.current;s&&function(e,r){if(void 0===r&&(r=vi),!e)return;let{top:s,left:i,bottom:n,right:a}=r(e);vo(e)&&(n<=0||a<=0||s>=window.innerHeight||i>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(s),r(x5)}handleKeyDown(e){if(xU(e)){let{active:r,context:s,options:i}=this.props,{keyboardCodes:n=vw,coordinateGetter:a=vS,scrollBehavior:o="smooth"}=i,{code:l}=e;if(n.end.includes(l))return void this.handleEnd(e);if(n.cancel.includes(l))return void this.handleCancel(e);let{collisionRect:c}=s.current,d=c?{x:c.left,y:c.top}:x5;this.referenceCoordinates||(this.referenceCoordinates=d);let u=a(e,{active:r,context:s.current,currentCoordinates:d});if(u){let r=xH(u,d),i={x:0,y:0},{scrollableAncestors:n}=s.current;for(let s of n){let n=e.code,{isTop:a,isRight:l,isLeft:c,isBottom:d,maxScroll:h,minScroll:f}=vf(s),p=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:r}=window;return{top:0,left:0,right:e,bottom:r,width:e,height:r}}let{top:r,left:s,right:i,bottom:n}=e.getBoundingClientRect();return{top:r,left:s,right:i,bottom:n,width:e.clientWidth,height:e.clientHeight}}(s),m={x:Math.min(n===A.Right?p.right-p.width/2:p.right,Math.max(n===A.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(n===A.Down?p.bottom-p.height/2:p.bottom,Math.max(n===A.Down?p.top:p.top+p.height/2,u.y))},g=n===A.Right&&!l||n===A.Left&&!c,x=n===A.Down&&!d||n===A.Up&&!a;if(g&&m.x!==u.x){let e=s.scrollLeft+r.x,a=n===A.Right&&e<=h.x||n===A.Left&&e>=f.x;if(a&&!r.y)return void s.scrollTo({left:e,behavior:o});a?i.x=s.scrollLeft-e:i.x=n===A.Right?s.scrollLeft-h.x:s.scrollLeft-f.x,i.x&&s.scrollBy({left:-i.x,behavior:o});break}if(x&&m.y!==u.y){let e=s.scrollTop+r.y,a=n===A.Down&&e<=h.y||n===A.Up&&e>=f.y;if(a&&!r.x)return void s.scrollTo({top:e,behavior:o});a?i.y=s.scrollTop-e:i.y=n===A.Down?s.scrollTop-h.y:s.scrollTop-f.y,i.y&&s.scrollBy({top:-i.y,behavior:o});break}}this.handleMove(e,xW(xH(u,this.referenceCoordinates),i))}}}handleMove(e,r){let{onMove:s}=this.props;e.preventDefault(),s(r)}handleEnd(e){let{onEnd:r}=this.props;e.preventDefault(),this.detach(),r()}handleCancel(e){let{onCancel:r}=this.props;e.preventDefault(),this.detach(),r()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function vj(e){return!!(e&&"distance"in e)}function vk(e){return!!(e&&"delay"in e)}vC.activators=[{eventName:"onKeyDown",handler:(e,r,s)=>{let{keyboardCodes:i=vw,onActivation:n}=r,{active:a}=s,{code:o}=e.nativeEvent;if(i.start.includes(o)){let r=a.activatorNode.current;return(!r||e.target===r)&&(e.preventDefault(),null==n||n({event:e.nativeEvent}),!0)}return!1}}];class vN{constructor(e,r,s){var i;void 0===s&&(s=function(e){let{EventTarget:r}=xE(e);return e instanceof r?e:xM(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=r;const{event:n}=e,{target:a}=n;this.props=e,this.events=r,this.document=xM(a),this.documentListeners=new vv(this.document),this.listeners=new vv(s),this.windowListeners=new vv(xE(a)),this.initialCoordinates=null!=(i=xK(n))?i:x5,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:r,bypassActivationConstraint:s}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(R.Resize,this.handleCancel),this.windowListeners.add(R.DragStart,vy),this.windowListeners.add(R.VisibilityChange,this.handleCancel),this.windowListeners.add(R.ContextMenu,vy),this.documentListeners.add(R.Keydown,this.handleKeydown),r){if(null!=s&&s({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(vk(r)){this.timeoutId=setTimeout(this.handleStart,r.delay),this.handlePending(r);return}if(vj(r))return void this.handlePending(r)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,r){let{active:s,onPending:i}=this.props;i(s,e,this.initialCoordinates,r)}handleStart(){let{initialCoordinates:e}=this,{onStart:r}=this.props;e&&(this.activated=!0,this.documentListeners.add(R.Click,vb,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(R.SelectionChange,this.removeTextSelection),r(e))}handleMove(e){var r;let{activated:s,initialCoordinates:i,props:n}=this,{onMove:a,options:{activationConstraint:o}}=n;if(!i)return;let l=null!=(r=xK(e))?r:x5,c=xH(i,l);if(!s&&o){if(vj(o)){if(null!=o.tolerance&&v_(c,o.tolerance))return this.handleCancel();if(v_(c,o.distance))return this.handleStart()}return vk(o)&&v_(c,o.tolerance)?this.handleCancel():void this.handlePending(o,c)}e.cancelable&&e.preventDefault(),a(l)}handleEnd(){let{onAbort:e,onEnd:r}=this.props;this.detach(),this.activated||e(this.props.active),r()}handleCancel(){let{onAbort:e,onCancel:r}=this.props;this.detach(),this.activated||e(this.props.active),r()}handleKeydown(e){e.code===A.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let vE={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class vD extends vN{constructor(e){const{event:r}=e;super(e,vE,xM(r.target))}}vD.activators=[{eventName:"onPointerDown",handler:(e,r)=>{let{nativeEvent:s}=e,{onActivation:i}=r;return!!s.isPrimary&&0===s.button&&(null==i||i({event:s}),!0)}}];(S=M||(M={}))[S.RightClick=2]="RightClick";(C=F||(F={}))[C.Pointer=0]="Pointer",C[C.DraggableRect=1]="DraggableRect",(j=T||(T={}))[j.TreeOrder=0]="TreeOrder",j[j.ReversedTreeOrder=1]="ReversedTreeOrder";let vR={x:{[D.Backward]:!1,[D.Forward]:!1},y:{[D.Backward]:!1,[D.Forward]:!1}};(k=P||(P={}))[k.Always=0]="Always",k[k.BeforeDragging=1]="BeforeDragging",k[k.WhileDragging=2]="WhileDragging",(B||(B={})).Optimized="optimized";let vA=new Map;function vM(e,r){return xB(s=>e?s||("function"==typeof r?r(e):e):null,[r,e])}function vF(e){let{callback:r,disabled:s}=e,i=xT(r),n=(0,$.useMemo)(()=>{if(s||"undefined"==typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(i)},[s]);return(0,$.useEffect)(()=>()=>null==n?void 0:n.disconnect(),[n]),n}function vT(e){return new vx(vi(e),e)}function vP(e,r,s){void 0===r&&(r=vT);let[i,n]=(0,$.useState)(null);function a(){n(i=>{if(!e)return null;if(!1===e.isConnected){var n;return null!=(n=null!=i?i:s)?n:null}let a=r(e);return JSON.stringify(i)===JSON.stringify(a)?i:a})}let o=function(e){let{callback:r,disabled:s}=e,i=xT(r),n=(0,$.useMemo)(()=>{if(s||"undefined"==typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(i)},[i,s]);return(0,$.useEffect)(()=>()=>null==n?void 0:n.disconnect(),[n]),n}({callback(r){if(e)for(let s of r){let{type:r,target:i}=s;if("childList"===r&&i instanceof HTMLElement&&i.contains(e)){a();break}}}}),l=vF({callback:a});return xF(()=>{a(),e?(null==l||l.observe(e),null==o||o.observe(document.body,{childList:!0,subtree:!0})):(null==l||l.disconnect(),null==o||o.disconnect())},[e]),i}let vB=[];function vL(e,r){void 0===r&&(r=[]);let s=(0,$.useRef)(null);return(0,$.useEffect)(()=>{s.current=null},r),(0,$.useEffect)(()=>{let r=e!==x5;r&&!s.current&&(s.current=e),!r&&s.current&&(s.current=null)},[e]),s.current?xH(e,s.current):x5}function vI(e){return(0,$.useMemo)(()=>{let r,s;return e?(r=e.innerWidth,{top:0,left:0,right:r,bottom:s=e.innerHeight,width:r,height:s}):null},[e])}let vO=[],vz=[{sensor:vD,options:{}},{sensor:vC,options:{}}],v$={current:{}},vW={draggable:{measure:vn},droppable:{measure:vn,strategy:P.WhileDragging,frequency:B.Optimized},dragOverlay:{measure:vi}};class vH extends Map{get(e){var r;return null!=e&&null!=(r=super.get(e))?r:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:r}=e;return!r})}getNodeFor(e){var r,s;return null!=(r=null==(s=this.get(e))?void 0:s.node.current)?r:void 0}}let vU={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new vH,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:x1},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:vW,measureDroppableContainers:x1,windowRect:null,measuringScheduled:!1},vK={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:x1,draggableNodes:new Map,over:null,measureDroppableContainers:x1},vq=(0,$.createContext)(vK),vV=(0,$.createContext)(vU);function vY(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new vH}}}function vG(e,r){switch(r.type){case E.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:r.initialCoordinates,active:r.active}};case E.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:r.coordinates.x-e.draggable.initialCoordinates.x,y:r.coordinates.y-e.draggable.initialCoordinates.y}}};case E.DragEnd:case E.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case E.RegisterDroppable:{let{element:s}=r,{id:i}=s,n=new vH(e.droppable.containers);return n.set(i,s),{...e,droppable:{...e.droppable,containers:n}}}case E.SetDroppableDisabled:{let{id:s,key:i,disabled:n}=r,a=e.droppable.containers.get(s);if(!a||i!==a.key)return e;let o=new vH(e.droppable.containers);return o.set(s,{...a,disabled:n}),{...e,droppable:{...e.droppable,containers:o}}}case E.UnregisterDroppable:{let{id:s,key:i}=r,n=e.droppable.containers.get(s);if(!n||i!==n.key)return e;let a=new vH(e.droppable.containers);return a.delete(s),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function vX(e){let{disabled:r}=e,{active:s,activatorEvent:i,draggableNodes:n}=(0,$.useContext)(vq),a=xI(i),o=xI(null==s?void 0:s.id);return(0,$.useEffect)(()=>{if(!r&&!i&&a&&null!=o){if(!xU(a)||document.activeElement===a.target)return;let e=n.get(o);if(!e)return;let{activatorNode:r,node:s}=e;(r.current||s.current)&&requestAnimationFrame(()=>{for(let e of[r.current,s.current]){if(!e)continue;let r=e.matches(xV)?e:e.querySelector(xV);if(r){r.focus();break}}})}},[i,r,n,o,a]),null}let vJ=(0,$.createContext)({...x5,scaleX:1,scaleY:1});(N=L||(L={}))[N.Uninitialized=0]="Uninitialized",N[N.Initializing=1]="Initializing",N[N.Initialized=2]="Initialized";let vZ=(0,$.memo)(function(e){var r,s,i,n,a,o,l,c;let d,u,h,f,p,m,g,x,{id:v,accessibility:_,autoScroll:y=!0,children:b,sensors:w=vz,collisionDetection:S=ve,measuring:C,modifiers:j,...k}=e,[N,R]=(0,$.useReducer)(vG,void 0,vY),[A,M]=function(){let[e]=(0,$.useState)(()=>new Set),r=(0,$.useCallback)(r=>(e.add(r),()=>e.delete(r)),[e]);return[(0,$.useCallback)(r=>{let{type:s,event:i}=r;e.forEach(e=>{var r;return null==(r=e[s])?void 0:r.call(e,i)})},[e]),r]}(),[B,I]=(0,$.useState)(L.Uninitialized),O=B===L.Initialized,{draggable:{active:z,nodes:W,translate:H},droppable:{containers:U}}=N,K=null!=z?W.get(z):null,q=(0,$.useRef)({initial:null,translated:null}),V=(0,$.useMemo)(()=>{var e;return null!=z?{id:z,data:null!=(e=null==K?void 0:K.data)?e:v$,rect:q}:null},[z,K]),Y=(0,$.useRef)(null),[G,X]=(0,$.useState)(null),[J,Z]=(0,$.useState)(null),Q=xP(k,Object.values(k)),et=xz("DndDescribedBy",v),er=(0,$.useMemo)(()=>U.getEnabled(),[U]),es=(0,$.useMemo)(()=>({draggable:{...vW.draggable,...null==C?void 0:C.draggable},droppable:{...vW.droppable,...null==C?void 0:C.droppable},dragOverlay:{...vW.dragOverlay,...null==C?void 0:C.dragOverlay}}),[null==C?void 0:C.draggable,null==C?void 0:C.droppable,null==C?void 0:C.dragOverlay]),{droppableRects:ei,measureDroppableContainers:en,measuringScheduled:ea}=function(e,r){let{dragging:s,dependencies:i,config:n}=r,[a,o]=(0,$.useState)(null),{frequency:l,measure:c,strategy:d}=n,u=(0,$.useRef)(e),h=function(){switch(d){case P.Always:return!1;case P.BeforeDragging:return s;default:return!s}}(),f=xP(h),p=(0,$.useCallback)(function(e){void 0===e&&(e=[]),f.current||o(r=>null===r?e:r.concat(e.filter(e=>!r.includes(e))))},[f]),m=(0,$.useRef)(null),g=xB(r=>{if(h&&!s)return vA;if(!r||r===vA||u.current!==e||null!=a){let r=new Map;for(let s of e){if(!s)continue;if(a&&a.length>0&&!a.includes(s.id)&&s.rect.current){r.set(s.id,s.rect.current);continue}let e=s.node.current,i=e?new vx(c(e),e):null;s.rect.current=i,i&&r.set(s.id,i)}return r}return r},[e,a,s,h,c]);return(0,$.useEffect)(()=>{u.current=e},[e]),(0,$.useEffect)(()=>{h||p()},[s,h]),(0,$.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,$.useEffect)(()=>{h||"number"!=typeof l||null!==m.current||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,h,p,...i]),{droppableRects:g,measureDroppableContainers:p,measuringScheduled:null!=a}}(er,{dragging:O,dependencies:[H.x,H.y],config:es.droppable}),eo=xB(e=>{var r;return null==z?null:null!=(r=null!=p?p:e)?r:null},[p=(f=null!=z?W.get(z):void 0)?f.node.current:null,z]),el=(0,$.useMemo)(()=>J?xK(J):null,[J]),ec=(d=(null==G?void 0:G.autoScrollEnabled)===!1,u="object"==typeof y?!1===y.enabled:!1===y,h=O&&!d&&!u,"object"==typeof y?{...y,enabled:h}:{enabled:h}),ed=vM(eo,es.draggable.measure);!function(e){let{activeNode:r,measure:s,initialRect:i,config:n=!0}=e,a=(0,$.useRef)(!1),{x:o,y:l}="boolean"==typeof n?{x:n,y:n}:n;xF(()=>{if(!o&&!l||!r){a.current=!1;return}if(a.current||!i)return;let e=null==r?void 0:r.node.current;if(!e||!1===e.isConnected)return;let n=vt(s(e),i);if(o||(n.x=0),l||(n.y=0),a.current=!0,Math.abs(n.x)>0||Math.abs(n.y)>0){let r=vo(e);r&&r.scrollBy({top:n.y,left:n.x})}},[r,o,l,i,s])}({activeNode:null!=z?W.get(z):null,config:ec.layoutShiftCompensation,initialRect:ed,measure:es.draggable.measure});let eu=vP(eo,es.draggable.measure,ed),eh=vP(eo?eo.parentElement:null),ef=(0,$.useRef)({activatorEvent:null,active:null,activeNode:eo,collisionRect:null,collisions:null,droppableRects:ei,draggableNodes:W,draggingNode:null,draggingNodeRect:null,droppableContainers:U,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ep=U.getNodeFor(null==(r=ef.current.over)?void 0:r.id),em=function(e){let{measure:r}=e,[s,i]=(0,$.useState)(null),n=vF({callback:(0,$.useCallback)(e=>{for(let{target:s}of e)if(xR(s)){i(e=>{let i=r(s);return e?{...e,width:i.width,height:i.height}:i});break}},[r])}),[a,o]=xL((0,$.useCallback)(e=>{let s=function(e){if(!e)return null;if(e.children.length>1)return e;let r=e.children[0];return xR(r)?r:e}(e);null==n||n.disconnect(),s&&(null==n||n.observe(s)),i(s?r(s):null)},[r,n]));return(0,$.useMemo)(()=>({nodeRef:a,rect:s,setRef:o}),[s,a,o])}({measure:es.dragOverlay.measure}),eg=null!=(s=em.nodeRef.current)?s:eo,ex=O?null!=(i=em.rect)?i:eu:null,ev=!!(em.nodeRef.current&&em.rect),e_=(m=vM(a=ev?null:eu),vt(a,m)),ey=vI(eg?xE(eg):null),eb=(o=O?null!=ep?ep:eo:null,g=(0,$.useRef)(o),x=xB(e=>o?e&&e!==vB&&o&&g.current&&o.parentNode===g.current.parentNode?e:va(o):vB,[o]),(0,$.useEffect)(()=>{g.current=o},[o]),x),ew=function(e,r){void 0===r&&(r=vi);let[s]=e,i=vI(s?xE(s):null),[n,a]=(0,$.useState)(vO);function o(){a(()=>e.length?e.map(e=>vh(e)?i:new vx(r(e),e)):vO)}let l=vF({callback:o});return xF(()=>{null==l||l.disconnect(),o(),e.forEach(e=>null==l?void 0:l.observe(e))},[e]),n}(eb),eS=function(e,r){let{transform:s,...i}=r;return null!=e&&e.length?e.reduce((e,r)=>r({transform:e,...i}),s):s}(j,{transform:{x:H.x-e_.x,y:H.y-e_.y,scaleX:1,scaleY:1},activatorEvent:J,active:V,activeNodeRect:eu,containerNodeRect:eh,draggingNodeRect:ex,over:ef.current.over,overlayNodeRect:em.rect,scrollableAncestors:eb,scrollableAncestorRects:ew,windowRect:ey}),eC=el?xW(el,H):null,ej=function(e){let[r,s]=(0,$.useState)(null),i=(0,$.useRef)(e),n=(0,$.useCallback)(e=>{let r=vl(e.target);r&&s(e=>e?(e.set(r,vu(r)),new Map(e)):null)},[]);return(0,$.useEffect)(()=>{let r=i.current;if(e!==r){a(r);let o=e.map(e=>{let r=vl(e);return r?(r.addEventListener("scroll",n,{passive:!0}),[r,vu(r)]):null}).filter(e=>null!=e);s(o.length?new Map(o):null),i.current=e}return()=>{a(e),a(r)};function a(e){e.forEach(e=>{let r=vl(e);null==r||r.removeEventListener("scroll",n)})}},[n,e]),(0,$.useMemo)(()=>e.length?r?Array.from(r.values()).reduce((e,r)=>xW(e,r),x5):vm(e):x5,[e,r])}(eb),ek=vL(ej),eN=vL(ej,[eu]),eE=xW(eS,ek),eD=ex?vr(ex,eS):null,eR=V&&eD?S({active:V,collisionRect:eD,droppableRects:ei,droppableContainers:er,pointerCoordinates:eC}):null,eA=x7(eR,"id"),[eM,eF]=(0,$.useState)(null),eT=(l=ev?eS:xW(eS,eN),c=null!=(n=null==eM?void 0:eM.rect)?n:null,{...l,scaleX:c&&eu?c.width/eu.width:1,scaleY:c&&eu?c.height/eu.height:1}),eP=(0,$.useRef)(null),eB=(0,$.useCallback)((e,r)=>{let{sensor:s,options:i}=r;if(null==Y.current)return;let n=W.get(Y.current);if(!n)return;let a=e.nativeEvent,o=new s({active:Y.current,activeNode:n,event:a,options:i,context:ef,onAbort(e){if(!W.get(e))return;let{onDragAbort:r}=Q.current,s={id:e};null==r||r(s),A({type:"onDragAbort",event:s})},onPending(e,r,s,i){if(!W.get(e))return;let{onDragPending:n}=Q.current,a={id:e,constraint:r,initialCoordinates:s,offset:i};null==n||n(a),A({type:"onDragPending",event:a})},onStart(e){let r=Y.current;if(null==r)return;let s=W.get(r);if(!s)return;let{onDragStart:i}=Q.current,n={activatorEvent:a,active:{id:r,data:s.data,rect:q}};(0,ee.unstable_batchedUpdates)(()=>{null==i||i(n),I(L.Initializing),R({type:E.DragStart,initialCoordinates:e,active:r}),A({type:"onDragStart",event:n}),X(eP.current),Z(a)})},onMove(e){R({type:E.DragMove,coordinates:e})},onEnd:l(E.DragEnd),onCancel:l(E.DragCancel)});function l(e){return async function(){let{active:r,collisions:s,over:i,scrollAdjustedTranslate:n}=ef.current,o=null;if(r&&n){let{cancelDrop:l}=Q.current;o={activatorEvent:a,active:r,collisions:s,delta:n,over:i},e===E.DragEnd&&"function"==typeof l&&await Promise.resolve(l(o))&&(e=E.DragCancel)}Y.current=null,(0,ee.unstable_batchedUpdates)(()=>{R({type:e}),I(L.Uninitialized),eF(null),X(null),Z(null),eP.current=null;let r=e===E.DragEnd?"onDragEnd":"onDragCancel";if(o){let e=Q.current[r];null==e||e(o),A({type:r,event:o})}})}}eP.current=o},[W]),eL=(0,$.useCallback)((e,r)=>(s,i)=>{let n=s.nativeEvent,a=W.get(i);null!==Y.current||!a||n.dndKit||n.defaultPrevented||!0===e(s,r.options,{active:a})&&(n.dndKit={capturedBy:r.sensor},Y.current=i,eB(s,r))},[W,eB]),eI=(0,$.useMemo)(()=>w.reduce((e,r)=>{let{sensor:s}=r;return[...e,...s.activators.map(e=>({eventName:e.eventName,handler:eL(e.handler,r)}))]},[]),[w,eL]);(0,$.useEffect)(()=>{if(!xj)return;let e=w.map(e=>{let{sensor:r}=e;return null==r.setup?void 0:r.setup()});return()=>{for(let r of e)null==r||r()}},w.map(e=>{let{sensor:r}=e;return r})),xF(()=>{eu&&B===L.Initializing&&I(L.Initialized)},[eu,B]),(0,$.useEffect)(()=>{let{onDragMove:e}=Q.current,{active:r,activatorEvent:s,collisions:i,over:n}=ef.current;if(!r||!s)return;let a={active:r,activatorEvent:s,collisions:i,delta:{x:eE.x,y:eE.y},over:n};(0,ee.unstable_batchedUpdates)(()=>{null==e||e(a),A({type:"onDragMove",event:a})})},[eE.x,eE.y]),(0,$.useEffect)(()=>{let{active:e,activatorEvent:r,collisions:s,droppableContainers:i,scrollAdjustedTranslate:n}=ef.current;if(!e||null==Y.current||!r||!n)return;let{onDragOver:a}=Q.current,o=i.get(eA),l=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:r,collisions:s,delta:{x:n.x,y:n.y},over:l};(0,ee.unstable_batchedUpdates)(()=>{eF(l),null==a||a(c),A({type:"onDragOver",event:c})})},[eA]),xF(()=>{ef.current={activatorEvent:J,active:V,activeNode:eo,collisionRect:eD,collisions:eR,droppableRects:ei,draggableNodes:W,draggingNode:eg,draggingNodeRect:ex,droppableContainers:U,over:eM,scrollableAncestors:eb,scrollAdjustedTranslate:eE},q.current={initial:ex,translated:eD}},[V,eo,eR,eD,W,eg,ex,ei,U,eM,eb,eE]),function(e){let r,{acceleration:s,activator:i=F.Pointer,canScroll:n,draggingRect:a,enabled:o,interval:l=5,order:c=T.TreeOrder,pointerCoordinates:d,scrollableAncestors:u,scrollableAncestorRects:h,delta:f,threshold:p}=e,m=function(e){let{delta:r,disabled:s}=e,i=xI(r);return xB(e=>{if(s||!i||!e)return vR;let n={x:Math.sign(r.x-i.x),y:Math.sign(r.y-i.y)};return{x:{[D.Backward]:e.x[D.Backward]||-1===n.x,[D.Forward]:e.x[D.Forward]||1===n.x},y:{[D.Backward]:e.y[D.Backward]||-1===n.y,[D.Forward]:e.y[D.Forward]||1===n.y}}},[s,r,i])}({delta:f,disabled:!o}),[g,x]=(r=(0,$.useRef)(null),[(0,$.useCallback)((e,s)=>{r.current=setInterval(e,s)},[]),(0,$.useCallback)(()=>{null!==r.current&&(clearInterval(r.current),r.current=null)},[])]),v=(0,$.useRef)({x:0,y:0}),_=(0,$.useRef)({x:0,y:0}),y=(0,$.useMemo)(()=>{switch(i){case F.Pointer:return d?{top:d.y,bottom:d.y,left:d.x,right:d.x}:null;case F.DraggableRect:return a}},[i,a,d]),b=(0,$.useRef)(null),w=(0,$.useCallback)(()=>{let e=b.current;if(!e)return;let r=v.current.x*_.current.x,s=v.current.y*_.current.y;e.scrollBy(r,s)},[]),S=(0,$.useMemo)(()=>c===T.TreeOrder?[...u].reverse():u,[c,u]);(0,$.useEffect)(()=>{if(!o||!u.length||!y)return void x();for(let e of S){if((null==n?void 0:n(e))===!1)continue;let r=h[u.indexOf(e)];if(!r)continue;let{direction:i,speed:a}=function(e,r,s,i,n){let{top:a,left:o,right:l,bottom:c}=s;void 0===i&&(i=10),void 0===n&&(n=vp);let{isTop:d,isBottom:u,isLeft:h,isRight:f}=vf(e),p={x:0,y:0},m={x:0,y:0},g={height:r.height*n.y,width:r.width*n.x};return!d&&a<=r.top+g.height?(p.y=D.Backward,m.y=i*Math.abs((r.top+g.height-a)/g.height)):!u&&c>=r.bottom-g.height&&(p.y=D.Forward,m.y=i*Math.abs((r.bottom-g.height-c)/g.height)),!f&&l>=r.right-g.width?(p.x=D.Forward,m.x=i*Math.abs((r.right-g.width-l)/g.width)):!h&&o<=r.left+g.width&&(p.x=D.Backward,m.x=i*Math.abs((r.left+g.width-o)/g.width)),{direction:p,speed:m}}(e,r,y,s,p);for(let e of["x","y"])m[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){x(),b.current=e,g(w,l),v.current=a,_.current=i;return}}v.current={x:0,y:0},_.current={x:0,y:0},x()},[s,w,n,x,o,l,JSON.stringify(y),JSON.stringify(m),g,u,S,h,JSON.stringify(p)])}({...ec,delta:H,draggingRect:eD,pointerCoordinates:eC,scrollableAncestors:eb,scrollableAncestorRects:ew});let eO=(0,$.useMemo)(()=>({active:V,activeNode:eo,activeNodeRect:eu,activatorEvent:J,collisions:eR,containerNodeRect:eh,dragOverlay:em,draggableNodes:W,droppableContainers:U,droppableRects:ei,over:eM,measureDroppableContainers:en,scrollableAncestors:eb,scrollableAncestorRects:ew,measuringConfiguration:es,measuringScheduled:ea,windowRect:ey}),[V,eo,eu,J,eR,eh,em,W,U,ei,eM,en,eb,ew,es,ea,ey]),ez=(0,$.useMemo)(()=>({activatorEvent:J,activators:eI,active:V,activeNodeRect:eu,ariaDescribedById:{draggable:et},dispatch:R,draggableNodes:W,over:eM,measureDroppableContainers:en}),[J,eI,V,eu,R,et,W,eM,en]);return $.default.createElement(xJ.Provider,{value:M},$.default.createElement(vq.Provider,{value:ez},$.default.createElement(vV.Provider,{value:eO},$.default.createElement(vJ.Provider,{value:eT},b)),$.default.createElement(vX,{disabled:(null==_?void 0:_.restoreFocus)===!1})),$.default.createElement(x0,{..._,hiddenTextDescribedById:et}))}),vQ=(0,$.createContext)(null),v0="button",v1={timeout:25},v2={position:"fixed",touchAction:"none"},v5=e=>xU(e)?"transform 250ms ease":void 0;function v3(e,r,s){let i=e.slice();return i.splice(s<0?i.length+s:s,0,i.splice(r,1)[0]),i}function v4(e){return null!==e&&e>=0}(e,r)=>{let{as:s,activatorEvent:i,adjustScale:n,children:a,className:o,rect:l,style:c,transform:d,transition:u=v5}=e;if(!l)return null;let h=n?d:{...d,scaleX:1,scaleY:1},f={...v2,width:l.width,height:l.height,top:l.top,left:l.left,transform:xq.Transform.toString(h),transformOrigin:n&&i?function(e,r){let s=xK(e);if(!s)return"0 0";let i={x:(s.x-r.left)/r.width*100,y:(s.y-r.top)/r.height*100};return i.x+"% "+i.y+"%"}(i,l):void 0,transition:"function"==typeof u?u(i):u,...c};return $.default.createElement(s,{className:o,style:f,ref:r},a)},x={styles:{active:{opacity:"0"}}};let v6=e=>{let{rects:r,activeIndex:s,overIndex:i,index:n}=e,a=v3(r,i,s),o=r[n],l=a[n];return l&&o?{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}:null},v8={scaleX:1,scaleY:1},v7=e=>{var r,s,i,n;let a,o,l,{activeIndex:c,activeNodeRect:d,index:u,rects:h,overIndex:f}=e,p=null!=(r=h[c])?r:d;if(!p)return null;if(u===c){let e=h[f];return e?{x:0,y:c<f?e.top+e.height-(p.top+p.height):e.top-p.top,...v8}:null}let m=(s=h,i=u,n=c,a=s[i],o=s[i-1],l=s[i+1],a?n<i?o?a.top-(o.top+o.height):l?l.top-(a.top+a.height):0:l?l.top-(a.top+a.height):o?a.top-(o.top+o.height):0:0);return u>c&&u<=f?{x:0,y:-p.height-m,...v8}:u<c&&u>=f?{x:0,y:p.height+m,...v8}:{x:0,y:0,...v8}},v9="Sortable",_e=$.default.createContext({activeIndex:-1,containerId:v9,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:v6,disabled:{draggable:!1,droppable:!1}});function _t(e){let{children:r,id:s,items:i,strategy:n=v6,disabled:a=!1}=e,{active:o,dragOverlay:l,droppableRects:c,over:d,measureDroppableContainers:u}=(0,$.useContext)(vV),h=xz(v9,s),f=null!==l.rect,p=(0,$.useMemo)(()=>i.map(e=>"object"==typeof e&&"id"in e?e.id:e),[i]),m=null!=o,g=o?p.indexOf(o.id):-1,x=d?p.indexOf(d.id):-1,v=(0,$.useRef)(p),_=!function(e,r){if(e===r)return!0;if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==r[s])return!1;return!0}(p,v.current),y=-1!==x&&-1===g||_,b="boolean"==typeof a?{draggable:a,droppable:a}:a;xF(()=>{_&&m&&u(p)},[_,p,m,u]),(0,$.useEffect)(()=>{v.current=p},[p]);let w=(0,$.useMemo)(()=>({activeIndex:g,containerId:h,disabled:b,disableTransforms:y,items:p,overIndex:x,useDragOverlay:f,sortedRects:p.reduce((e,r,s)=>{let i=c.get(r);return i&&(e[s]=i),e},Array(p.length)),strategy:n}),[g,h,b.draggable,b.droppable,y,p,x,c,f,n]);return $.default.createElement(_e.Provider,{value:w},r)}let _r=e=>{let{id:r,items:s,activeIndex:i,overIndex:n}=e;return v3(s,i,n).indexOf(r)},_s=e=>{let{containerId:r,isSorting:s,wasDragging:i,index:n,items:a,newIndex:o,previousItems:l,previousContainerId:c,transition:d}=e;return!!d&&!!i&&(l===a||n!==o)&&(!!s||o!==n&&r===c)},_i={duration:200,easing:"ease"},_n="transform",_a=xq.Transition.toString({property:_n,duration:0,easing:"linear"}),_o={roleDescription:"sortable"};function _l(e){if(!e)return!1;let r=e.data.current;return!!r&&"sortable"in r&&"object"==typeof r.sortable&&"containerId"in r.sortable&&"items"in r.sortable&&"index"in r.sortable}let _c=[A.Down,A.Right,A.Up,A.Left],_d=(e,r)=>{let{context:{active:s,collisionRect:i,droppableRects:n,droppableContainers:a,over:o,scrollableAncestors:l}}=r;if(_c.includes(e.code)){if(e.preventDefault(),!s||!i)return;let r=[];a.getEnabled().forEach(s=>{if(!s||null!=s&&s.disabled)return;let a=n.get(s.id);if(a)switch(e.code){case A.Down:i.top<a.top&&r.push(s);break;case A.Up:i.top>a.top&&r.push(s);break;case A.Left:i.left>a.left&&r.push(s);break;case A.Right:i.left<a.left&&r.push(s)}});let u=(e=>{let{collisionRect:r,droppableRects:s,droppableContainers:i}=e,n=x8(r),a=[];for(let e of i){let{id:r}=e,i=s.get(r);if(i){let s=x8(i),o=Number((n.reduce((e,r,i)=>e+x3(s[i],r),0)/4).toFixed(4));a.push({id:r,data:{droppableContainer:e,value:o}})}}return a.sort(x4)})({active:s,collisionRect:i,droppableRects:n,droppableContainers:r,pointerCoordinates:null}),h=x7(u,"id");if(h===(null==o?void 0:o.id)&&u.length>1&&(h=u[1].id),null!=h){let e=a.get(s.id),r=a.get(h),o=r?n.get(r.id):null,u=null==r?void 0:r.node.current;if(u&&o&&e&&r){var c,d;let s=va(u).some((e,r)=>l[r]!==e),n=_u(e,r),a=(c=e,d=r,!!_l(c)&&!!_l(d)&&!!_u(c,d)&&c.data.current.sortable.index<d.data.current.sortable.index),h=s||!n?{x:0,y:0}:{x:a?i.width-o.width:0,y:a?i.height-o.height:0},f={x:o.left,y:o.top};return h.x&&h.y?f:xH(f,h)}}}};function _u(e,r){return!!_l(e)&&!!_l(r)&&e.data.current.sortable.containerId===r.data.current.sortable.containerId}function _h({executor:e,executorMode:r,isOpen:s,onOpenChange:i,onStart:n,onStop:a,onUpdate:o,onDelete:l,onProcessFinished:c}){let d,u,h,f,p,m,g,[x,v]=(0,$.useState)(!1),[_,y]=(0,$.useState)(e.currentProcessId??e.lastProcessId),b=(0,$.useRef)(!1),w=(0,$.useRef)(e.currentProcessId),{attributes:S,listeners:C,setNodeRef:j,transform:k,transition:N,isDragging:D}=function(e){var r,s,i,n;let{animateLayoutChanges:a=_s,attributes:o,disabled:l,data:c,getNewIndex:d=_r,id:u,strategy:h,resizeObserverConfig:f,transition:p=_i}=e,{items:m,containerId:g,activeIndex:x,disabled:v,disableTransforms:_,sortedRects:y,overIndex:b,useDragOverlay:w,strategy:S}=(0,$.useContext)(_e),C=(r=l,s=v,"boolean"==typeof r?{draggable:r,droppable:!1}:{draggable:null!=(i=null==r?void 0:r.draggable)?i:s.draggable,droppable:null!=(n=null==r?void 0:r.droppable)?n:s.droppable}),j=m.indexOf(u),k=(0,$.useMemo)(()=>({sortable:{containerId:g,index:j,items:m},...c}),[g,c,j,m]),N=(0,$.useMemo)(()=>m.slice(m.indexOf(u)),[m,u]),{rect:D,node:R,isOver:A,setNodeRef:M}=function(e){let{data:r,disabled:s=!1,id:i,resizeObserverConfig:n}=e,a=xz("Droppable"),{active:o,dispatch:l,over:c,measureDroppableContainers:d}=(0,$.useContext)(vq),u=(0,$.useRef)({disabled:s}),h=(0,$.useRef)(!1),f=(0,$.useRef)(null),p=(0,$.useRef)(null),{disabled:m,updateMeasurementsFor:g,timeout:x}={...v1,...n},v=xP(null!=g?g:i),_=vF({callback:(0,$.useCallback)(()=>{if(!h.current){h.current=!0;return}null!=p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{d(Array.isArray(v.current)?v.current:[v.current]),p.current=null},x)},[x]),disabled:m||!o}),[y,b]=xL((0,$.useCallback)((e,r)=>{_&&(r&&(_.unobserve(r),h.current=!1),e&&_.observe(e))},[_])),w=xP(r);return(0,$.useEffect)(()=>{_&&y.current&&(_.disconnect(),h.current=!1,_.observe(y.current))},[y,_]),(0,$.useEffect)(()=>(l({type:E.RegisterDroppable,element:{id:i,key:a,disabled:s,node:y,rect:f,data:w}}),()=>l({type:E.UnregisterDroppable,key:a,id:i})),[i]),(0,$.useEffect)(()=>{s!==u.current.disabled&&(l({type:E.SetDroppableDisabled,id:i,key:a,disabled:s}),u.current.disabled=s)},[i,a,s,l]),{active:o,rect:f,isOver:(null==c?void 0:c.id)===i,node:y,over:c,setNodeRef:b}}({id:u,data:k,disabled:C.droppable,resizeObserverConfig:{updateMeasurementsFor:N,...f}}),{active:F,activatorEvent:T,activeNodeRect:P,attributes:B,setNodeRef:L,listeners:I,isDragging:O,over:z,setActivatorNodeRef:W,transform:H}=function(e){let{id:r,data:s,disabled:i=!1,attributes:n}=e,a=xz("Draggable"),{activators:o,activatorEvent:l,active:c,activeNodeRect:d,ariaDescribedById:u,draggableNodes:h,over:f}=(0,$.useContext)(vq),{role:p=v0,roleDescription:m="draggable",tabIndex:g=0}=null!=n?n:{},x=(null==c?void 0:c.id)===r,v=(0,$.useContext)(x?vJ:vQ),[_,y]=xL(),[b,w]=xL(),S=(0,$.useMemo)(()=>o.reduce((e,s)=>{let{eventName:i,handler:n}=s;return e[i]=e=>{n(e,r)},e},{}),[o,r]),C=xP(s);return xF(()=>(h.set(r,{id:r,key:a,node:_,activatorNode:b,data:C}),()=>{let e=h.get(r);e&&e.key===a&&h.delete(r)}),[h,r]),{active:c,activatorEvent:l,activeNodeRect:d,attributes:(0,$.useMemo)(()=>({role:p,tabIndex:g,"aria-disabled":i,"aria-pressed":!!x&&p===v0||void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[i,p,g,x,m,u.draggable]),isDragging:x,listeners:i?void 0:S,node:_,over:f,setNodeRef:y,setActivatorNodeRef:w,transform:v}}({id:u,data:k,attributes:{..._o,...o},disabled:C.draggable}),U=function(){for(var e=arguments.length,r=Array(e),s=0;s<e;s++)r[s]=arguments[s];return(0,$.useMemo)(()=>e=>{r.forEach(r=>r(e))},r)}(M,L),K=!!F,q=K&&!_&&v4(x)&&v4(b),V=!w&&O,Y=V&&q?H:null,G=q?null!=Y?Y:(null!=h?h:S)({rects:y,activeNodeRect:P,activeIndex:x,overIndex:b,index:j}):null,X=v4(x)&&v4(b)?d({id:u,items:m,activeIndex:x,overIndex:b}):j,J=null==F?void 0:F.id,Z=(0,$.useRef)({activeId:J,items:m,newIndex:X,containerId:g}),Q=m!==Z.current.items,ee=a({active:F,containerId:g,isDragging:O,isSorting:K,id:u,index:j,items:m,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:p,wasDragging:null!=Z.current.activeId}),et=function(e){let{disabled:r,index:s,node:i,rect:n}=e,[a,o]=(0,$.useState)(null),l=(0,$.useRef)(s);return xF(()=>{if(!r&&s!==l.current&&i.current){let e=n.current;if(e){let r=vi(i.current,{ignoreTransform:!0}),s={x:e.left-r.left,y:e.top-r.top,scaleX:e.width/r.width,scaleY:e.height/r.height};(s.x||s.y)&&o(s)}}s!==l.current&&(l.current=s)},[r,s,i,n]),(0,$.useEffect)(()=>{a&&o(null)},[a]),a}({disabled:!ee,index:j,node:R,rect:D});return(0,$.useEffect)(()=>{K&&Z.current.newIndex!==X&&(Z.current.newIndex=X),g!==Z.current.containerId&&(Z.current.containerId=g),m!==Z.current.items&&(Z.current.items=m)},[K,X,g,m]),(0,$.useEffect)(()=>{if(J===Z.current.activeId)return;if(null!=J&&null==Z.current.activeId){Z.current.activeId=J;return}let e=setTimeout(()=>{Z.current.activeId=J},50);return()=>clearTimeout(e)},[J]),{active:F,activeIndex:x,attributes:B,data:k,rect:D,index:j,newIndex:X,items:m,isOver:A,isSorting:K,isDragging:O,listeners:I,node:R,overIndex:b,over:z,setNodeRef:U,setActivatorNodeRef:W,setDroppableNodeRef:M,setDraggableNodeRef:L,transform:null!=et?et:G,transition:et||Q&&Z.current.newIndex===j?_a:(!V||xU(T))&&p&&(K||ee)?xq.Transition.toString({...p,property:_n}):void 0}}({id:e.id}),R={transform:xq.Translate.toString(k),transition:N,zIndex:D?50:void 0,position:D?"relative":void 0,opacity:D?1:void 0},{logs:A,status:M,exitCode:F,isPty:T,replayingHistory:P,sendInput:B,sendResize:L}=(d=function(){let e=(0,$.useContext)(xS);if(!e)throw Error("useExecutorLogsStore must be used within ExecutorLogsProvider");return e}(),u=(0,$.useCallback)(e=>{if(!_)return()=>{};d.subscribeProcess(_);let r=d.onProcessChange(_,e);return()=>{r(),d.unsubscribeProcess(_)}},[_,r,d]),h=(0,$.useCallback)(()=>_?d.getProcessState(_):null,[_,d]),f=(0,$.useSyncExternalStore)(u,h,h),p=(0,$.useCallback)(()=>{},[]),m=(0,$.useCallback)(e=>{_&&d.sendInput(_,e)},[_,d]),g=(0,$.useCallback)((e,r)=>{_&&d.sendResize(_,e,r)},[_,d]),{logs:f?.logs??[],status:f?.status??"closed",exitCode:f?.exitCode??null,isPty:f?.isPty??!1,replayingHistory:f?.replayingHistory??!0,clearLogs:p,sendInput:m,sendResize:g});(0,$.useEffect)(()=>(console.log("[diag:mux] ExecutorItem MOUNT",e.id,"localProcessId=",_),()=>console.log("[diag:mux] ExecutorItem UNMOUNT",e.id)),[]),(0,$.useEffect)(()=>{console.log("[diag:mux] localProcessId →",_,"executor=",e.id)},[_,e.id]),(0,$.useEffect)(()=>{let r=w.current;w.current=e.currentProcessId,e.currentProcessId&&e.currentProcessId!==r&&(y(e.currentProcessId),b.current=!1,i(!0))},[e.currentProcessId,i]),(0,$.useEffect)(()=>{e.currentProcessId||e.lastProcessId&&y(r=>r??e.lastProcessId)},[e.currentProcessId,e.lastProcessId]),(0,$.useEffect)(()=>{"closed"!==M||null===F||b.current||(b.current=!0,console.log(`[diag:remote-stop] ${new Date().toISOString()} executor-item marking finished executorId=${e.id} processId=${_} exitCode=${F} — removing from runningProcesses (button → Start)`),c(_))},[M,F,_,c]);let I=async()=>{console.log(`[ExecutorItem] Starting executor ${e.id}`),b.current=!1;let r=await n();console.log(`[ExecutorItem] Got processId: ${r}`),r&&(y(r),i(!0))},O=async()=>{await a(_||void 0)},H=e.isRunning,U=e.isDisabled,K=e.lastStartedAt?new Date(e.lastStartedAt).toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"}):null;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(uE,{open:s,onOpenChange:i,children:(0,z.jsxs)("div",{ref:j,style:R,className:(0,ey.cn)("border rounded-lg",D&&"shadow-lg bg-background"),children:[(0,z.jsx)(uD,{asChild:!0,children:(0,z.jsxs)("div",{className:"group flex items-center justify-between p-3 cursor-pointer hover:bg-muted/50",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)("button",{type:"button",className:"cursor-grab touch-none text-muted-foreground hover:text-foreground",...S,...C,onClick:e=>e.stopPropagation(),children:(0,z.jsx)(uF,{className:"h-4 w-4"})}),s?(0,z.jsx)(sw,{className:"h-4 w-4"}):(0,z.jsx)(af,{className:"h-4 w-4"}),(0,z.jsx)("span",{className:(0,ey.cn)("font-medium",U&&"text-muted-foreground line-through"),children:e.name}),U?(0,z.jsxs)(sb,{variant:"outline",className:"text-muted-foreground border-muted-foreground/40 gap-1",children:[(0,z.jsx)(uT,{className:"h-3 w-3"}),"Disabled"]}):(0,z.jsx)(sb,{variant:H?"default":"secondary",className:(0,ey.cn)(H&&"bg-green-600 hover:bg-green-600"),children:H?"Running":null!==F?0===F?"Completed":"Failed":"Stopped"})]}),(0,z.jsxs)("div",{className:"flex items-center gap-2",onClick:e=>e.stopPropagation(),children:[K&&(0,z.jsxs)("span",{className:"text-xs text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity",title:new Date(e.lastStartedAt).toLocaleString(),children:["Last run: ",K]}),H?(0,z.jsxs)(W.Button,{size:"sm",variant:"destructive",onClick:O,className:"w-20 border border-destructive",children:[(0,z.jsx)(uA,{className:"h-3 w-3 mr-1"}),"Stop"]}):(0,z.jsxs)(W.Button,{size:"sm",onClick:I,disabled:U,title:U?"Executor is disabled":void 0,className:"w-20",children:[(0,z.jsx)(rh,{className:"h-3 w-3 mr-1"}),"Start"]}),(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)(W.Button,{size:"icon",variant:"ghost",className:"h-8 w-8",children:(0,z.jsx)(uM,{className:"h-4 w-4"})})}),(0,z.jsxs)(ag,{align:"end",children:[(0,z.jsxs)(ax,{onClick:()=>v(!0),children:[(0,z.jsx)(rg,{className:"h-4 w-4 mr-2"}),"Edit"]}),(0,z.jsx)(ax,{onClick:()=>o({target:r??"local",disabled:!U}),children:U?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(rC,{className:"h-4 w-4 mr-2"}),"Enable"]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(uT,{className:"h-4 w-4 mr-2"}),"Disable"]})}),(0,z.jsxs)(ax,{onClick:l,className:"text-destructive",children:[(0,z.jsx)(rc,{className:"h-4 w-4 mr-2"}),"Delete"]})]})]})]})]})}),(0,z.jsx)(uR,{children:(0,z.jsxs)("div",{className:"px-3 pb-3",children:[(0,z.jsx)("div",{className:"text-xs text-muted-foreground mb-2 font-mono",children:"prompt"===e.executor_type?`${e.prompt_provider??"claude"} → ${e.command}`:`$ ${e.command}`}),(0,z.jsx)(xv,{logs:A,isPty:T,onInput:B,onResize:L,muteInput:P,processId:_,executorId:e.id,target:r??"local",status:M,exitCode:F})]})})]})}),(0,z.jsx)(xb,{open:x,onOpenChange:v,executor:e,onSubmit:async e=>{await o(e)}})]})}let _f=(0,$.createContext)(null);function _p({projectId:e,children:r}){let s=sc(e,{withStatus:!0});return(0,z.jsx)(_f.Provider,{value:s,children:r})}function _m(){let e=(0,$.useContext)(_f);if(!e)throw Error("useProjectRemotesContext must be used within a ProjectRemotesProvider");return e}let _g=e=>{let{droppableContainers:r,pointerCoordinates:s}=e;if(!s)return(e=>{let{collisionRect:r,droppableRects:s,droppableContainers:i}=e,n=x9(r,r.left,r.top),a=[];for(let e of i){let{id:r}=e,i=s.get(r);if(i){let s=x3(x9(i),n);a.push({id:r,data:{droppableContainer:e,value:s}})}}return a.sort(x4)})(e);let i=[];for(let e of r){let r=e.rect.current;if(!r)continue;let n=r.top,a=r.top+52;s.x>=r.left&&s.x<=r.right&&s.y>=n&&s.y<=a&&i.push({id:e.id,data:{droppableContainer:e}})}if(i.length>0)return i;let n=null;for(let e of r){let r=e.rect.current;if(!r)continue;let i=r.top+26,a=r.left+r.width/2,o=Math.sqrt(Math.pow(s.x-a,2)+Math.pow(s.y-i,2));(!n||o<n.distance)&&(n={id:e.id,distance:o,data:{droppableContainer:e}})}return n?[{id:n.id,data:n.data}]:[]};function _x({projectId:e,selectedBranch:r,project:s,onExecutorModeChange:i}){let[n,a]=(0,$.useState)(!1),[o,l]=(0,$.useState)(new Set),{remotes:c}=_m(),d=[];for(let e of(s?.path&&d.push({id:"local",label:"Local",icon:aD}),c))d.push({id:e.remote_server_id,label:e.server_name,icon:sd(e)});let{activeGroup:u,loading:h,createGroup:f}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(null),[o,l]=(0,$.useState)(!0),c=r??"",d=(0,$.useCallback)(async()=>{if(!e){i([]),a(null),l(!1);return}try{let[r,s]=await Promise.all([rv.api.getExecutorGroups(e),rv.api.getExecutorGroupByBranch(e,c)]);i(r),a(s)}catch(e){console.error("Failed to fetch executor groups:",e)}finally{l(!1)}},[e,c]);(0,$.useEffect)(()=>{l(!0),d()},[d]);let u=(0,$.useCallback)(async r=>{if(!e)return null;try{let s=await rv.api.createExecutorGroup(e,{name:r,branch:c});return i(e=>[...e,s]),a(s),s}catch(e){return console.error("Failed to create executor group:",e),null}},[e,c]);return{groups:s,activeGroup:n,loading:o,createGroup:u,updateGroup:(0,$.useCallback)(async(e,r)=>{try{let s=await rv.api.updateExecutorGroup(e,r);return i(r=>r.map(r=>r.id===e?s:r)),a(r=>r?.id===e?s:r),s}catch(e){return console.error("Failed to update executor group:",e),null}},[]),deleteGroup:(0,$.useCallback)(async e=>{try{await rv.api.deleteExecutorGroup(e),i(r=>r.filter(r=>r.id!==e)),a(r=>r?.id===e?null:r)}catch(e){console.error("Failed to delete executor group:",e)}},[]),refetch:d}}(e,r),{executors:p,loading:m,createExecutor:g,updateExecutor:x,deleteExecutor:v,startExecutor:_,stopExecutor:y,markProcessFinished:b,reorderExecutors:w}=function(e,r,s){let[i,n]=(0,$.useState)([]),[a,o]=(0,$.useState)(new Map),[l,c]=(0,$.useState)(new Map),[d,u]=(0,$.useState)(!0),h=(0,$.useCallback)(async()=>{if(!e||!r){n([]),u(!1);return}try{let s=await rv.api.getExecutors(e,r);n(s)}catch(e){console.error("Failed to fetch executors:",e)}finally{u(!1)}},[e,r]),f=(0,$.useCallback)(async()=>{try{let e=await rv.api.getRunningProcesses();console.log(`[useExecutors] fetchRunningProcesses: ${e.length} running`,e.map(e=>`${e.executor_id}/${e.id}/${e.target??"local"}`));let{runningProcesses:r,lastStartedProcess:s}=function(e){let r=new Map,s=new Map;for(let i of e){let e={processId:i.id,target:i.target??"local"},n=r.get(i.executor_id);n?n.push(e):r.set(i.executor_id,[e]),s.set(i.executor_id,e)}return{runningProcesses:r,lastStartedProcess:s}}(e);o(r),c(e=>{let i=function(e,r){let s=new Map;for(let[i,n]of e)r.get(i)?.some(e=>e.processId===n.processId&&e.target===n.target)&&s.set(i,n);return s}(e,r);for(let[e,r]of s)i.set(e,r);return i})}catch(e){console.error("Failed to fetch running processes:",e)}},[]);(0,$.useEffect)(()=>{h()},[h]),(0,$.useEffect)(()=>{f()},[f]),(0,$.useEffect)(()=>{e&&f()},[e,f]),(0,$.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&f()};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[f]);let p=(0,$.useRef)(new Set);(0,$.useEffect)(()=>{p.current=new Set(i.map(e=>e.id))},[i]),(0,ok.useGlobalEventStream)(r=>{if(("executor:started"===r.type||"executor:stopped"===r.type)&&console.log(`[useExecutors] SSE received: ${r.type} executor=${r.executorId} process=${r.processId} target=${r.target??"local"} project=${r.projectId}`),!e||r.projectId!==e){("executor:started"===r.type||"executor:stopped"===r.type)&&console.log(`[useExecutors] SSE filtered: projectId mismatch (event=${r.projectId}, hook=${e})`);return}if(!p.current.has(r.executorId)){("executor:started"===r.type||"executor:stopped"===r.type)&&console.log(`[useExecutors] SSE filtered: executorId ${r.executorId} not in current group (known: ${Array.from(p.current).join(",")})`);return}"executor:started"===r.type?(console.log("[useExecutors] Processing executor:started, adding to runningProcesses"),o(e=>{let s=e.get(r.executorId)??[];if(s.some(e=>e.processId===r.processId))return e;let i=new Map(e);return i.set(r.executorId,[...s,{processId:r.processId,target:r.target??"local"}]),i}),c(e=>{let s=new Map(e);return s.set(r.executorId,{processId:r.processId,target:r.target??"local"}),s}),n(e=>e.map(e=>{if(e.id!==r.executorId)return e;let s=r.target??"local";return{...e,last_runs:{...e.last_runs??{},[s]:{started_at:new Date().toISOString(),process_id:r.processId}}}}))):"executor:stopped"===r.type&&(console.log("[useExecutors] Processing executor:stopped, removing from runningProcesses"),console.log(`[diag:remote-stop] ${new Date().toISOString()} SSE executor:stopped executor=${r.executorId} process=${r.processId} target=${r.target??"local"} — flips button via SSE (NOT the mux finished path)`),o(e=>{let s=e.get(r.executorId);if(!s)return e;let i=s.filter(e=>e.processId!==r.processId),n=new Map(e);return 0===i.length?n.delete(r.executorId):n.set(r.executorId,i),n}),c(e=>{let s=e.get(r.executorId);if(!s||s.processId!==r.processId)return e;let i=new Map(e);return i.delete(r.executorId),i}))});let m=(0,$.useCallback)(async s=>{if(!e||!r)return null;try{let i=await rv.api.createExecutor(e,{...s,group_id:r});return n(e=>[...e,i]),i}catch(e){return console.error("Failed to create executor:",e),null}},[e,r]),g=(0,$.useCallback)(async(e,r)=>{try{let s=await rv.api.updateExecutor(e,r);return n(r=>r.map(r=>r.id===e?s:r)),s}catch(e){return console.error("Failed to update executor:",e),xg.toast.error("Failed to update executor",{description:e instanceof Error?e.message:void 0}),null}},[]),x=(0,$.useCallback)(async e=>{try{await rv.api.deleteExecutor(e),n(r=>r.filter(r=>r.id!==e))}catch(e){console.error("Failed to delete executor:",e)}},[]),v=(0,$.useCallback)(async(e,r)=>{try{let i=await rv.api.startExecutor(e,r,s),a=s??"local";return o(r=>{let s=r.get(e)??[],n=new Map(r);return n.set(e,[...s,{processId:i,target:a}]),n}),c(r=>{let s=new Map(r);return s.set(e,{processId:i,target:a}),s}),n(r=>r.map(r=>r.id!==e?r:{...r,last_runs:{...r.last_runs??{},[a]:{started_at:new Date().toISOString(),process_id:i}}})),i}catch(e){return console.error("Failed to start executor:",e),null}},[s]),_=(0,$.useCallback)(async(e,r)=>{let i=a.get(e),n=i?.find(e=>e.target===(s??"local")),l=r||n?.processId;if(l){try{await rv.api.stopProcess(l)}catch(e){console.error("Failed to stop executor:",e)}o(r=>{let s=r.get(e);if(!s)return r;let i=s.filter(e=>e.processId!==l),n=new Map(r);return 0===i.length?n.delete(e):n.set(e,i),n}),c(r=>{let s=r.get(e);if(!s||s.processId!==l)return r;let i=new Map(r);return i.delete(e),i})}},[a,s]),y=(0,$.useCallback)((e,r)=>{o(s=>{let i=s.get(e);if(!i)return s;if(r){let n=i.filter(e=>e.processId!==r);if(n.length===i.length)return s;let a=new Map(s);return 0===n.length?a.delete(e):a.set(e,n),a}let n=new Map(s);return n.delete(e),n}),c(s=>{if(!r){if(!s.has(e))return s;let r=new Map(s);return r.delete(e),r}let i=s.get(e);if(!i||i.processId!==r)return s;let n=new Map(s);return n.delete(e),n})},[]),b=(0,$.useCallback)(async s=>{if(e&&r){n(s.map(e=>i.find(r=>r.id===e)).filter(e=>void 0!==e));try{await rv.api.reorderExecutors(e,s,r)}catch(e){console.error("Failed to reorder executors:",e),n(i)}}},[e,r,i]);return{executors:i.map(e=>{let r=a.get(e.id),i=s??"local",n=r?.find(e=>e.target===i),o=l.get(e.id),c=o?.target===i?o:void 0,d=e.last_runs?.[i];return{...e,currentProcessId:n?.processId??c?.processId??null,isRunning:!!n,lastProcessId:d?.process_id??null,lastStartedAt:d?.started_at??null,isDisabled:e.disabled_targets.includes(i)}}),loading:d,createExecutor:m,updateExecutor:g,deleteExecutor:x,startExecutor:v,stopExecutor:_,markProcessFinished:y,reorderExecutors:b,refetch:h}}(e,u?.id,s?.executor_mode),S=function(){for(var e=arguments.length,r=Array(e),s=0;s<e;s++)r[s]=arguments[s];return(0,$.useMemo)(()=>[...r].filter(e=>null!=e),[...r])}(x2(vD,{activationConstraint:{distance:8}}),x2(vC,{coordinateGetter:_d}));return e?(0,z.jsx)(xC,{projectId:e,children:(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border/60 h-10",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsxs)("h2",{className:"text-xs font-semibold flex items-center gap-2 text-foreground",children:[(0,z.jsx)(aN,{className:"h-3.5 w-3.5"}),u?u.name:"Executors"]}),d.length>1&&i&&(0,z.jsx)(ak,{targets:d,activeTarget:s?.executor_mode??"local",onTargetChange:i})]}),u&&(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",className:"h-7 text-xs",onClick:()=>a(!0),children:[(0,z.jsx)(eS,{className:"h-3 w-3 mr-1"}),"Add"]})]}),(0,z.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,z.jsx)("div",{className:"p-4 space-y-3",children:h||m?(0,z.jsx)("div",{className:"text-center text-muted-foreground py-8",children:"Loading executors..."}):u?0===p.length?(0,z.jsxs)("div",{className:"text-center text-muted-foreground py-8",children:[(0,z.jsx)("p",{children:"No executors configured"}),(0,z.jsx)("p",{className:"text-sm mt-1",children:'Add an executor to run commands like "npm run dev"'})]}):(0,z.jsx)(vZ,{sensors:S,collisionDetection:_g,onDragEnd:e=>{let{active:r,over:s}=e;if(s&&r.id!==s.id){let e=p.findIndex(e=>e.id===r.id),i=p.findIndex(e=>e.id===s.id),n=[...p],[a]=n.splice(e,1);n.splice(i,0,a),w(n.map(e=>e.id))}},children:(0,z.jsx)(_t,{items:p.map(e=>e.id),strategy:v7,children:p.map(e=>(0,z.jsx)(_h,{executor:e,executorMode:s?.executor_mode??"local",isOpen:o.has(e.id),onOpenChange:r=>l(s=>{let i=new Set(s);return r?i.add(e.id):i.delete(e.id),i}),onStart:()=>_(e.id,r),onStop:r=>y(e.id,r||e.currentProcessId||void 0),onUpdate:r=>x(e.id,r),onDelete:()=>v(e.id),onProcessFinished:r=>b(e.id,r)},`${e.id}-${s?.executor_mode??"local"}`))})}):(0,z.jsxs)("div",{className:"text-center text-muted-foreground py-8",children:[(0,z.jsx)("p",{children:"No executor group for this branch"}),(0,z.jsx)("p",{className:"text-sm mt-1 mb-4",children:"Create a group to start adding executors"}),(0,z.jsxs)(W.Button,{size:"sm",onClick:()=>f(r?`Executors (${r})`:"Default"),children:[(0,z.jsx)(on,{className:"h-4 w-4 mr-1"}),"Create Group"]})]})})}),(0,z.jsx)(xb,{open:n,onOpenChange:a,onSubmit:async e=>{await g(e)}})]})},`${e??"none"}-${s?.executor_mode??"local"}`):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(aN,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to manage executors"})]})})}let _v=(0,ew.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),__=(0,ew.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);function _y({line:e}){let r="add"===e.type?"+":"delete"===e.type?"-":" ",s="add"===e.type,i="delete"===e.type,n=s?"bg-emerald-500/[0.07]":i?"bg-rose-500/[0.07]":"",a=s?"bg-emerald-500/[0.10]":i?"bg-rose-500/[0.10]":"bg-secondary",o=s?"text-emerald-600":i?"text-rose-600":"text-muted-foreground/70";return(0,z.jsxs)("div",{className:"flex font-mono text-[11.5px] leading-[1.55]",children:[(0,z.jsx)("span",{className:(0,ey.cn)("w-9 flex-shrink-0 text-right pr-2 select-none border-r border-border/60",a,o),children:e.oldLineNo??""}),(0,z.jsx)("span",{className:(0,ey.cn)("w-9 flex-shrink-0 text-right pr-2 select-none border-r border-border/60",a,o),children:e.newLineNo??""}),(0,z.jsx)("span",{className:(0,ey.cn)("w-5 flex-shrink-0 text-center select-none",n,o),children:r}),(0,z.jsx)("span",{className:(0,ey.cn)("whitespace-pre-wrap break-all pr-4 flex-1 min-w-0 pl-2",n,(s||i)&&"text-foreground"),children:e.content})]})}let _b={modified:"bg-yellow-500/20 text-yellow-500",added:"bg-green-500/20 text-green-500",deleted:"bg-red-500/20 text-red-500",renamed:"bg-blue-500/20 text-blue-500"},_w={modified:"Modified",added:"Added",deleted:"Deleted",renamed:"Renamed"};function _S({file:e,defaultOpen:r=!0}){let[s,i]=(0,$.useState)(r);return(0,z.jsxs)(uE,{open:s,onOpenChange:i,className:"border border-border rounded-lg overflow-hidden",children:[(0,z.jsxs)(uD,{className:"flex items-center gap-2 px-4 py-2 bg-secondary border-b border-border w-full cursor-pointer hover:bg-muted transition-colors",children:[s?(0,z.jsx)(sw,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,z.jsx)(af,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,z.jsx)("span",{className:"font-mono text-[11.5px] flex-1 min-w-0 truncate text-left text-foreground font-medium",children:e.oldPath&&"renamed"===e.status?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"text-muted-foreground font-normal",children:e.oldPath}),(0,z.jsx)("span",{className:"mx-2 text-muted-foreground",children:"→"}),e.path]}):e.path}),(0,z.jsx)(sb,{variant:"secondary",className:_b[e.status],children:_w[e.status]})]}),(0,z.jsx)(uR,{children:(0,z.jsx)("div",{children:e.hunks.map((e,r)=>(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:"px-4 py-0.5 bg-accent text-accent-foreground text-[11px] font-mono font-medium sticky top-0",children:["@@ -",e.oldStart,",",e.oldLines," +",e.newStart,",",e.newLines," @@"]}),e.lines.map((e,r)=>(0,z.jsx)(_y,{line:e},r))]},r))})})]})}let _C=(0,ew.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),_j="__head__",_k="__compare__";function _N({commits:e,selectedCommit:r,onSelectCommit:s,compareTarget:i,compareSelected:n,onSelectCompare:a,loading:o,disabled:l}){return(0,z.jsxs)(cX,{value:n?_k:r??_j,onValueChange:e=>{e===_k?a?.():s(e===_j?null:e)},disabled:l||o,children:[(0,z.jsxs)(cZ,{size:"sm",className:"w-[200px]",children:[(0,z.jsx)(_C,{className:"h-3.5 w-3.5 shrink-0"}),(0,z.jsx)(cJ,{placeholder:"Select commit..."})]}),(0,z.jsxs)(cQ,{children:[(0,z.jsx)(c0,{value:_j,children:"HEAD (uncommitted)"}),i&&(0,z.jsxs)(c0,{value:_k,children:["vs ",(0,z.jsx)("span",{className:"font-mono text-xs",children:i})]}),e.map(e=>(0,z.jsxs)(c0,{value:e.hash,children:[(0,z.jsx)("span",{className:"font-mono text-xs",children:e.shortHash})," ",(0,z.jsx)("span",{className:"truncate",children:e.message.length>40?e.message.slice(0,40)+"...":e.message})]},e.hash))]})]})}function _E({projectId:e,selectedBranch:r,onMergeRequest:s,project:i,mergeTarget:n,compareRequestNonce:a}){let[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)(!1),[u,h]=(0,$.useState)(a),[f,p]=(0,$.useState)(r),m=void 0!==a&&a!==u;m&&(h(a),d(!0),l(null)),r!==f&&(p(r),l(null),m||d(!1));let{remotes:g}=_m(),x=[];for(let e of(i?.path&&x.push({id:"local",label:"Local",icon:aD}),g))x.push({id:e.remote_server_id,label:e.server_name,icon:so});let v=i?.path?"local":g.length>0?g[0].remote_server_id:"local",[_,y]=(0,$.useState)(v),[b,w]=(0,$.useState)(!0),[S,C]=(0,$.useState)(0),j="local"===_?i?.path?"local":void 0:"remote",{diff:k,loading:N,error:E,refresh:D}=function(e,r,s,i,n){let[a,o]=(0,$.useState)(null),[l,c]=(0,$.useState)(!1),[d,u]=(0,$.useState)(null),h=(0,$.useCallback)(async()=>{if(!e)return void o(null);c(!0),u(null);try{let a=await rv.api.getDiff(e,r,s,i,n);o(a)}catch(e){u(e instanceof Error?e.message:"Failed to load diff"),o(null)}finally{c(!1)}},[e,r,s,i,n]);return{diff:a,loading:l,error:d,refresh:h}}(e,r,o,j,c&&n?n:null),{commits:R,loading:A,refetch:M}=function(e,r,s,i){let[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)(!1);return{commits:n,loading:o,refetch:(0,$.useCallback)(async()=>{if(!e)return void a([]);l(!0);try{let n=await rv.api.getCommits(e,r,s,i);a(n)}catch{a([])}finally{l(!1)}},[e,r,s,i])}}(e,r,void 0,j);if((0,$.useEffect)(()=>{D()},[D]),(0,$.useEffect)(()=>{M()},[M]),(0,$.useEffect)(()=>{y(v)},[e,v]),!e)return(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(rw,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to view changes"})]})});let F=k?.files.length??0;return(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border/60 h-10",children:[(0,z.jsx)("div",{className:"flex items-center gap-4",children:F>0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)("span",{className:"text-xs text-muted-foreground",children:[F," file",1!==F?"s":""," changed"]}),(0,z.jsxs)(W.Button,{size:"sm",variant:"ghost",onClick:()=>{w(e=>!e),C(e=>e+1)},title:b?"Collapse all":"Expand all",children:[(0,z.jsx)(__,{className:"h-4 w-4 mr-1"}),b?"Collapse all":"Expand all"]})]})}),(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[x.length>1&&(0,z.jsx)(ak,{targets:x,activeTarget:_,onTargetChange:y,disabled:N}),(0,z.jsx)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:"Commit:"}),(0,z.jsx)(_N,{commits:R,selectedCommit:o,onSelectCommit:e=>{d(!1),l(e)},compareTarget:n,compareSelected:c,onSelectCompare:()=>{d(!0),l(null)},loading:A,disabled:N}),(0,z.jsxs)(W.Button,{size:"sm",variant:"outline",onClick:s,disabled:N||0===F,children:[(0,z.jsx)(ld,{className:"h-4 w-4 mr-1"}),"Merge"]}),(0,z.jsxs)(W.Button,{size:"sm",variant:"outline",onClick:D,disabled:N,children:[(0,z.jsx)(_v,{className:`h-4 w-4 mr-1 ${N?"animate-spin":""}`}),"Refresh"]})]})]}),(0,z.jsx)(or,{className:"flex-1 overflow-hidden",children:(0,z.jsx)("div",{className:"p-4 space-y-4",children:N&&!k?(0,z.jsx)("div",{className:"text-center text-muted-foreground py-8",children:"Loading changes..."}):E?(0,z.jsx)("div",{className:"text-center text-red-400 py-8",children:E}):0===F?(0,z.jsx)("div",{className:"text-center text-muted-foreground py-8",children:(0,z.jsx)("p",{children:c&&n?`No changes vs ${n}`:o?"No changes in this commit":"No uncommitted changes"})}):k?.files.map((e,r)=>(0,z.jsx)(_S,{file:e,defaultOpen:b},`${r}-${S}`))})})]})}function _D({terminalId:e,onExit:r}){let{logs:s,sendInput:i,sendResize:n,exitCode:a,replayingHistory:o}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)("closed"),[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)(!1),[u,h]=(0,$.useState)(!0),f=(0,$.useRef)(null),p=(0,$.useRef)(null),m=(0,$.useRef)(0),g=(0,$.useRef)(null),x=(0,$.useRef)(!1),v=(0,$.useCallback)(()=>{i([]),l(null),d(!1)},[]),_=(0,$.useCallback)(e=>{f.current?.readyState===WebSocket.OPEN&&f.current.send(JSON.stringify({type:"input",data:e}))},[]),y=(0,$.useCallback)((e,r)=>{f.current?.readyState===WebSocket.OPEN?f.current.send(JSON.stringify({type:"resize",cols:e,rows:r})):p.current={cols:e,rows:r}},[]);return(0,$.useEffect)(()=>{if(!e)return;i([]),l(null),d(!1),x.current=!1,m.current=0;let r=!1;return function s(){r||x.current||(0,rv.getFreshToken)().then(()=>{r||x.current||function(){if(r||x.current)return;a("connecting");let n=(0,rv.getWebSocketUrl)(`/api/executor-processes/${e}/logs`);console.log(`[useExecutorLogs] Connecting to WebSocket: ${n}`);let o=new WebSocket(n);f.current=o;let c=!1,u=!1;o.onopen=()=>{if(!r&&(console.log("[useExecutorLogs] WebSocket connected"),a("connected"),i([]),p.current)){let{cols:e,rows:r}=p.current;o.send(JSON.stringify({type:"resize",cols:e,rows:r})),p.current=null}},o.onmessage=e=>{if(!r)try{let r=JSON.parse(e.data);if("init"===r.type)d(r.isPty),h(!0),console.log("[useExecutorLogs] init received, setReplayingHistory(true)");else if("history_end"===r.type)u=!0,h(!1),console.log("[useExecutorLogs] history_end received, setReplayingHistory(false)");else if("finished"===r.type)x.current=!0,l(r.exitCode),a("closed");else if("error"===r.type)x.current=!0,a("error");else{u&&(c=!0,m.current=0);let e="stdout"===r.type||"stderr"===r.type||"pty"===r.type?{...r,historical:!u}:r;i(r=>[...r,e])}}catch(e){console.error("Failed to parse WebSocket message:",e)}},o.onerror=e=>{r||console.error("[useExecutorLogs] WebSocket error:",e)},o.onclose=e=>{if(console.log("[useExecutorLogs] WebSocket closed:",e.code,e.reason),f.current=null,x.current||r)return void a("closed");if(u&&!c){console.log(`[useExecutorLogs] Server closed after history with no live data — treating as terminal`),x.current=!0,a("closed");return}if(m.current<8){let e=m.current,i=Math.min(15e3,1e3*Math.pow(2,e)),n=i*Math.random()*.25,o=i+n;console.log(`[useExecutorLogs] Scheduling reconnect in ${Math.round(o)}ms (attempt ${e+1}/8)`),a("connecting"),m.current=e+1,g.current=setTimeout(()=>{g.current=null,r||s()},o)}else console.log("[useExecutorLogs] Max reconnect attempts reached"),a("error")}}()})}(),()=>{r=!0,g.current&&(clearTimeout(g.current),g.current=null),f.current&&(f.current.close(),f.current=null)}},[e,void 0]),{logs:s,status:n,exitCode:o,isPty:c,replayingHistory:u,clearLogs:v,sendInput:_,sendResize:y}}(e);return(0,$.useEffect)(()=>{null!==a&&r(e)},[a,r,e]),(0,z.jsx)(xv,{logs:s,isPty:!0,className:"h-full rounded-none border-0",onInput:i,onResize:n,muteInput:o})}function _R({projectId:e,selectedBranch:r,project:s}){let{terminals:i,activeTerminalId:n,createTerminal:a,closeTerminal:o,setActiveTerminal:l,removeTerminal:c}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(null);(0,$.useEffect)(()=>{if(!e){i([]),a(null);return}rv.api.getTerminals(e,r).then(e=>{i(e),a(e.length>0?e[0].id:null)})},[e,r]);let o=(0,$.useCallback)(async(s,n)=>{if(e)try{let o=await rv.api.createTerminal(e,r,s,n);i(e=>[...e,o]),a(o.id)}catch(e){console.error("[useTerminals] Failed to create terminal:",e)}},[e,r]),l=(0,$.useCallback)(async e=>{await rv.api.closeTerminal(e),i(r=>{let s=r.filter(r=>r.id!==e);return a(r=>r===e?s.length>0?s[s.length-1].id:null:r),s})},[]);return{terminals:s,activeTerminalId:n,createTerminal:o,closeTerminal:l,setActiveTerminal:(0,$.useCallback)(e=>{a(e)},[]),removeTerminal:(0,$.useCallback)(e=>{i(r=>{let s=r.filter(r=>r.id!==e);return a(r=>r===e?s.length>0?s[s.length-1].id:null:r),s})},[])}}(e,r),{remotes:d}=_m(),[u,h]=(0,$.useState)(!1),f=(0,$.useRef)(null),p=!!s?.path,m=d.length>0,g=p&&m||d.length>1,x=!p&&m||g&&s?.executor_mode!=="local"?"remote":"local",v=(0,$.useCallback)(()=>{a(x)},[a,x]),_=(0,$.useCallback)((e,r)=>{h(!1),a(e,r)},[a]);(0,$.useEffect)(()=>{if(u)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){f.current&&!f.current.contains(e.target)&&h(!1)}},[u]);let y=(0,$.useCallback)(e=>{c(e)},[c]);return e?(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsxs)("div",{className:"flex items-center h-10 border-b border-border/60 px-2 gap-1 shrink-0 bg-muted/20",children:[(0,z.jsx)("div",{className:"flex-1 min-w-0 flex items-center gap-1 overflow-hidden",children:i.map(e=>{let r="remote"===e.location||e.id.startsWith("remote-"),s=g?r?so:aD:aN,i=n===e.id;return(0,z.jsxs)("button",{onClick:()=>l(e.id),title:e.name,className:(0,ey.cn)("group flex items-center gap-1.5 px-2 py-1 rounded-md text-xs transition-all duration-150 border flex-1 min-w-0 basis-0 max-w-[180px]",i?"bg-background text-foreground border-border shadow-sm":"text-muted-foreground hover:text-foreground bg-muted/40 hover:bg-background/60 border-border/30 hover:border-border/60"),children:[(0,z.jsx)(s,{className:"h-3 w-3 shrink-0"}),(0,z.jsx)("span",{className:"truncate flex-1 text-left",children:e.name}),(0,z.jsx)("span",{role:"button",onClick:r=>{r.stopPropagation(),o(e.id)},className:(0,ey.cn)("shrink-0 rounded-sm p-0.5 hover:bg-destructive/10 hover:text-destructive",i?"opacity-80 hover:opacity-100":"opacity-0 group-hover:opacity-80 hover:!opacity-100"),children:(0,z.jsx)(t8,{className:"h-3 w-3"})})]},e.id)})}),(0,z.jsxs)("div",{className:"relative shrink-0",ref:f,children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:g?()=>h(e=>!e):v,children:(0,z.jsx)(eS,{className:"h-3.5 w-3.5"})}),g&&u&&(0,z.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 min-w-[160px] rounded-md border bg-popover p-1 shadow-md",children:[p&&(0,z.jsxs)("button",{className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs hover:bg-accent hover:text-accent-foreground transition-colors",onClick:()=>_("local"),children:[(0,z.jsx)(aD,{className:"h-3.5 w-3.5"}),"Local Terminal"]}),d.map(e=>(0,z.jsxs)("button",{className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs hover:bg-accent hover:text-accent-foreground transition-colors",onClick:()=>_("remote",e.remote_server_id),children:[(0,z.jsx)(so,{className:"h-3.5 w-3.5"}),e.server_name," Terminal"]},e.remote_server_id))]})]})]}),(0,z.jsx)("div",{className:"flex-1 overflow-hidden bg-zinc-950",children:n?(0,z.jsx)(_D,{terminalId:n,onExit:y},n):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsx)(aN,{className:"h-10 w-10 text-muted-foreground/70"})})})]}):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(aN,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to use the terminal"})]})})}let _A=(0,ew.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),_M=(0,$.createContext)(null),_F=({className:e,children:r,defaultUrl:s="",onUrlChange:i,...n})=>{let[a,o]=(0,$.useState)(s),[l,c]=(0,$.useState)(!1);return(0,z.jsx)(_M.Provider,{value:{url:a,setUrl:e=>{o(e),i?.(e)},consoleOpen:l,setConsoleOpen:c},children:(0,z.jsx)("div",{className:(0,ey.cn)("flex size-full flex-col bg-card",e),...n,children:r})})},_T=({className:e,children:r,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("flex items-center gap-1 border-b p-2 h-14",e),...s,children:r}),_P=({onClick:e,disabled:r,tooltip:s,children:i,...n})=>(0,z.jsx)(ls,{children:(0,z.jsxs)(li,{children:[(0,z.jsx)(ln,{asChild:!0,children:(0,z.jsx)(W.Button,{className:"h-8 w-8 p-0 hover:text-foreground",disabled:r,onClick:e,size:"sm",variant:"ghost",...n,children:i})}),(0,z.jsx)(la,{children:(0,z.jsx)("p",{children:s})})]})}),_B=({value:e,onChange:r,onKeyDown:s,...i})=>{let{url:n,setUrl:a}=(()=>{let e=(0,$.useContext)(_M);if(!e)throw Error("WebPreview components must be used within a WebPreview");return e})(),[o,l]=(0,$.useState)(n);return(0,$.useEffect)(()=>{l(n)},[n]),(0,z.jsx)(ro,{className:"h-8 flex-1 text-sm",onChange:r??(e=>{l(e.target.value),r?.(e)}),onKeyDown:e=>{"Enter"===e.key&&a(e.target.value),s?.(e)},placeholder:"Enter URL...",value:e??o,...i})};var _L=e.i(254824);function _I({projectId:e}){let r=(0,$.useRef)(null),s=(0,$.useRef)(null),{addFrame:i,updateFrameUrl:n,refreshFrame:a,hasFrame:o,claimFrame:l,getFrameUrl:c}=(0,_L.useBrowserFrames)(),d=e?c(e):void 0;(0,$.useEffect)(()=>{if(e&&d&&r.current){let i=setTimeout(()=>{r.current&&(s.current?.(),s.current=l(e,r.current))},50);return()=>{clearTimeout(i),s.current?.(),s.current=null}}return()=>{s.current?.(),s.current=null}},[e,d,l]);let u=(0,$.useCallback)(()=>{e&&a(e)},[e,a]),h=(0,$.useCallback)(()=>{d&&window.open(d,"_blank")},[d]),f=(0,$.useCallback)(r=>{e&&(o(e)?n(e,r):i(e,r))},[e,o,n,i]);return(0,z.jsx)("div",{className:"h-full flex flex-col",children:(0,z.jsxs)(_F,{defaultUrl:d??"",onUrlChange:f,className:"h-full",children:[(0,z.jsxs)(_T,{className:"h-10 p-1.5 gap-0.5",children:[(0,z.jsx)(_P,{tooltip:"Refresh",onClick:u,disabled:!d,children:(0,z.jsx)(_v,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(_P,{tooltip:"Open in browser",onClick:h,disabled:!d,children:(0,z.jsx)(_A,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(_B,{className:"h-7 text-xs"})]}),d?(0,z.jsx)("div",{ref:r,className:"flex-1 bg-white"}):(0,z.jsx)("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,z.jsx)(ry,{className:"h-8 w-8 opacity-40"}),(0,z.jsx)("p",{className:"text-sm",children:"Enter a URL above to preview"})]})})]})})}let _O=(0,ew.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),_z=(0,ew.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),_$=(0,ew.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]),_W=(0,ew.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);var _H=e.i(553154);let _U=(0,ew.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),_K=(0,$.createContext)(null);_K.displayName="PanelGroupContext";let _q="data-panel-group-direction",_V="data-panel-group-id",_Y="data-resize-handle",_G="data-panel-resize-handle-id",_X=$.useLayoutEffect,_J=$["useId".toString()],_Z="function"==typeof _J?_J:()=>null,_Q=0;function _0(e=null){let r=_Z(),s=(0,$.useRef)(e||r||null);return null===s.current&&(s.current=""+_Q++),null!=e?e:s.current}function _1({children:e,className:r="",collapsedSize:s,collapsible:i,defaultSize:n,forwardedRef:a,id:o,maxSize:l,minSize:c,onCollapse:d,onExpand:u,onResize:h,order:f,style:p,tagName:m="div",...g}){let x=(0,$.useContext)(_K);if(null===x)throw Error("Panel components must be rendered within a PanelGroup container");let{collapsePanel:v,expandPanel:_,getPanelSize:y,getPanelStyle:b,groupId:w,isPanelCollapsed:S,reevaluatePanelConstraints:C,registerPanel:j,resizePanel:k,unregisterPanel:N}=x,E=_0(o),D=(0,$.useRef)({callbacks:{onCollapse:d,onExpand:u,onResize:h},constraints:{collapsedSize:s,collapsible:i,defaultSize:n,maxSize:l,minSize:c},id:E,idIsFromProps:void 0!==o,order:f});(0,$.useRef)({didLogMissingDefaultSizeWarning:!1}),_X(()=>{let{callbacks:e,constraints:r}=D.current,a={...r};D.current.id=E,D.current.idIsFromProps=void 0!==o,D.current.order=f,e.onCollapse=d,e.onExpand=u,e.onResize=h,r.collapsedSize=s,r.collapsible=i,r.defaultSize=n,r.maxSize=l,r.minSize=c,(a.collapsedSize!==r.collapsedSize||a.collapsible!==r.collapsible||a.maxSize!==r.maxSize||a.minSize!==r.minSize)&&C(D.current,a)}),_X(()=>{let e=D.current;return j(e),()=>{N(e)}},[f,E,j,N]),(0,$.useImperativeHandle)(a,()=>({collapse:()=>{v(D.current)},expand:e=>{_(D.current,e)},getId:()=>E,getSize:()=>y(D.current),isCollapsed:()=>S(D.current),isExpanded:()=>!S(D.current),resize:e=>{k(D.current,e)}}),[v,_,y,S,E,k]);let R=b(D.current,n);return(0,$.createElement)(m,{...g,children:e,className:r,id:E,style:{...R,...p},[_V]:w,"data-panel":"","data-panel-collapsible":i||void 0,"data-panel-id":E,"data-panel-size":parseFloat(""+R.flexGrow).toFixed(1)})}let _2=(0,$.forwardRef)((e,r)=>(0,$.createElement)(_1,{...e,forwardedRef:r}));_1.displayName="Panel",_2.displayName="forwardRef(Panel)";let _5=null,_3=-1,_4=null;function _6(e,s){var i,n,a;let o=function(e,r){if(r){let e=(r&ya)!=0,s=(r&yo)!=0,i=(r&yl)!=0,n=(r&yc)!=0;if(e)if(i)return"se-resize";else if(n)return"ne-resize";else return"e-resize";if(s)if(i)return"sw-resize";else if(n)return"nw-resize";else return"w-resize";if(i)return"s-resize";else if(n)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}(e,s);_5!==o&&(_5=o,null===_4&&(_4=document.createElement("style"),r&&_4.setAttribute("nonce",r),document.head.appendChild(_4)),_3>=0&&(null==(a=_4.sheet)||a.removeRule(_3)),_3=null!=(i=null==(n=_4.sheet)?void 0:n.insertRule(`*{cursor: ${o} !important;}`))?i:-1)}function _8(e){return"keydown"===e.type}function _7(e){return e.type.startsWith("pointer")}function _9(e){return e.type.startsWith("mouse")}function ye(e){if(_7(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(_9(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}let yt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function yr(e){let r=e.length;for(;r--;){let s=e[r];if(yj(s,"Missing node"),function(e){var r;let s,i=getComputedStyle(e);return"fixed"===i.position||!!("auto"!==i.zIndex&&("static"!==i.position||"flex"===(s=getComputedStyle(null!=(r=yn(e))?r:e).display)||"inline-flex"===s)||1>+i.opacity||"transform"in i&&"none"!==i.transform||"webkitTransform"in i&&"none"!==i.webkitTransform||"mixBlendMode"in i&&"normal"!==i.mixBlendMode||"filter"in i&&"none"!==i.filter||"webkitFilter"in i&&"none"!==i.webkitFilter||"isolation"in i&&"isolate"===i.isolation||yt.test(i.willChange))||"touch"===i.webkitOverflowScrolling}(s))return s}return null}function ys(e){return e&&Number(getComputedStyle(e).zIndex)||0}function yi(e){let r=[];for(;e;)r.push(e),e=yn(e);return r}function yn(e){let{parentNode:r}=e;return r&&r instanceof ShadowRoot?r.host:r}let ya=1,yo=2,yl=4,yc=8,yd="coarse"===function(){if("function"==typeof matchMedia)return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}(),yu=[],yh=!1,yf=new Map,yp=new Map,ym=new Set;function yg(e){let{target:r}=e,{x:s,y:i}=ye(e);yh=!0,yy({target:r,x:s,y:i}),yS(),yu.length>0&&(yC("down",e),e.preventDefault(),y_(r)||e.stopImmediatePropagation())}function yx(e){let{x:r,y:s}=ye(e);if(yh&&0===e.buttons&&(yh=!1,yC("up",e)),!yh){let{target:i}=e;yy({target:i,x:r,y:s})}yC("move",e),yb(),yu.length>0&&e.preventDefault()}function yv(e){let{target:r}=e,{x:s,y:i}=ye(e);yp.clear(),yh=!1,yu.length>0&&(e.preventDefault(),y_(r)||e.stopImmediatePropagation()),yC("up",e),yy({target:r,x:s,y:i}),yb(),yS()}function y_(e){let r=e;for(;r;){if(r.hasAttribute(_Y))return!0;r=r.parentElement}return!1}function yy({target:e,x:r,y:s}){yu.splice(0);let i=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(i=e),ym.forEach(e=>{let{element:n,hitAreaMargins:a}=e,o=n.getBoundingClientRect(),{bottom:l,left:c,right:d,top:u}=o,h=yd?a.coarse:a.fine;if(r>=c-h&&r<=d+h&&s>=u-h&&s<=l+h){if(null!==i&&document.contains(i)&&n!==i&&!n.contains(i)&&!i.contains(n)&&function(e,r){let s;if(e===r)throw Error("Cannot compare node with itself");let i={a:yi(e),b:yi(r)};for(;i.a.at(-1)===i.b.at(-1);)e=i.a.pop(),r=i.b.pop(),s=e;yj(s,"Stacking order can only be calculated for elements with a common ancestor");let n={a:ys(yr(i.a)),b:ys(yr(i.b))};if(n.a===n.b){let e=s.childNodes,r={a:i.a.at(-1),b:i.b.at(-1)},n=e.length;for(;n--;){let s=e[n];if(s===r.a)return 1;if(s===r.b)return -1}}return Math.sign(n.a-n.b)}(i,n)>0){let e=i,r=!1;for(;e;){var f;if(e.contains(n))break;if(f=e.getBoundingClientRect(),f.x<o.x+o.width&&f.x+f.width>o.x&&f.y<o.y+o.height&&f.y+f.height>o.y){r=!0;break}e=e.parentElement}if(r)return}yu.push(e)}})}function yb(){let e=!1,r=!1;yu.forEach(s=>{let{direction:i}=s;"horizontal"===i?e=!0:r=!0});let s=0;yp.forEach(e=>{s|=e}),e&&r?_6("intersection",s):e?_6("horizontal",s):r?_6("vertical",s):null!==_4&&(document.head.removeChild(_4),_5=null,_4=null,_3=-1)}let yw=new AbortController;function yS(){yw.abort();let e={capture:!0,signal:(yw=new AbortController).signal};ym.size&&(yh?(yu.length>0&&yf.forEach((r,s)=>{let{body:i}=s;r>0&&(i.addEventListener("contextmenu",yv,e),i.addEventListener("pointerleave",yx,e),i.addEventListener("pointermove",yx,e))}),window.addEventListener("pointerup",yv,e),window.addEventListener("pointercancel",yv,e)):yf.forEach((r,s)=>{let{body:i}=s;r>0&&(i.addEventListener("pointerdown",yg,e),i.addEventListener("pointermove",yx,e))}))}function yC(e,r){ym.forEach(s=>{let{setResizeHandlerState:i}=s;i(e,yu.includes(s),r)})}function yj(e,r){if(!e)throw console.error(r),Error(r)}function yk(e,r,s=10){return e.toFixed(s)===r.toFixed(s)?0:e>r?1:-1}function yN(e,r,s=10){return 0===yk(e,r,s)}function yE(e,r,s){return 0===yk(e,r,s)}function yD({panelConstraints:e,panelIndex:r,size:s}){let i=e[r];yj(null!=i,`Panel constraints not found for index ${r}`);let{collapsedSize:n=0,collapsible:a,maxSize:o=100,minSize:l=0}=i;return 0>yk(s,l)&&(s=a&&0>yk(s,(n+l)/2)?n:l),s=parseFloat((s=Math.min(o,s)).toFixed(10))}function yR({delta:e,initialLayout:r,panelConstraints:s,pivotIndices:i,prevLayout:n,trigger:a}){if(yE(e,0))return r;let o=[...r],[l,c]=i;yj(null!=l,"Invalid first pivot index"),yj(null!=c,"Invalid second pivot index");let d=0;if("keyboard"===a){{let i=e<0?c:l,n=s[i];yj(n,`Panel constraints not found for index ${i}`);let{collapsedSize:a=0,collapsible:o,minSize:d=0}=n;if(o){let s=r[i];if(yj(null!=s,`Previous layout not found for panel index ${i}`),yE(s,a)){let r=d-s;yk(r,Math.abs(e))>0&&(e=e<0?0-r:r)}}}{let i=e<0?l:c,n=s[i];yj(n,`No panel constraints found for index ${i}`);let{collapsedSize:a=0,collapsible:o,minSize:d=0}=n;if(o){let s=r[i];if(yj(null!=s,`Previous layout not found for panel index ${i}`),yE(s,d)){let r=s-a;yk(r,Math.abs(e))>0&&(e=e<0?0-r:r)}}}}{let i=e<0?1:-1,n=e<0?c:l,a=0;for(;;){let e=r[n];if(yj(null!=e,`Previous layout not found for panel index ${n}`),a+=yD({panelConstraints:s,panelIndex:n,size:100})-e,(n+=i)<0||n>=s.length)break}let o=Math.min(Math.abs(e),Math.abs(a));e=e<0?0-o:o}{let i=e<0?l:c;for(;i>=0&&i<s.length;){let n=Math.abs(e)-Math.abs(d),a=r[i];yj(null!=a,`Previous layout not found for panel index ${i}`);let l=yD({panelConstraints:s,panelIndex:i,size:a-n});if(!yE(a,l)&&(d+=a-l,o[i]=l,d.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?i--:i++}}if(function(e,r,s){if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(!yE(e[s],r[s],void 0))return!1;return!0}(n,o))return n;{let i=e<0?c:l,n=r[i];yj(null!=n,`Previous layout not found for panel index ${i}`);let a=n+d,u=yD({panelConstraints:s,panelIndex:i,size:a});if(o[i]=u,!yE(u,a)){let r=a-u,i=e<0?c:l;for(;i>=0&&i<s.length;){let n=o[i];yj(null!=n,`Previous layout not found for panel index ${i}`);let a=yD({panelConstraints:s,panelIndex:i,size:n+r});if(yE(n,a)||(r-=a-n,o[i]=a),yE(r,0))break;e>0?i--:i++}}}return yE(o.reduce((e,r)=>r+e,0),100)?o:n}function yA(e,r=document){return Array.from(r.querySelectorAll(`[${_G}][data-panel-group-id="${e}"]`))}function yM(e,r,s=document){let i=yA(e,s).findIndex(e=>e.getAttribute(_G)===r);return null!=i?i:null}function yF(e,r,s){let i=yM(e,r,s);return null!=i?[i,i+1]:[-1,-1]}function yT(e,r=document){var s;if(r instanceof HTMLElement&&(null==r||null==(s=r.dataset)?void 0:s.panelGroupId)==e)return r;let i=r.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return i||null}function yP(e,r=document){let s=r.querySelector(`[${_G}="${e}"]`);return s||null}function yB(e,r){if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==r[s])return!1;return!0}function yL(e,r){let{x:s,y:i}=ye(r);return"horizontal"===e?s:i}function yI(e,r,s){r.forEach((r,i)=>{let n=e[i];yj(n,`Panel data not found for index ${i}`);let{callbacks:a,constraints:o,id:l}=n,{collapsedSize:c=0,collapsible:d}=o,u=s[l];if(null==u||r!==u){s[l]=r;let{onCollapse:e,onExpand:i,onResize:n}=a;n&&n(r,u),d&&(e||i)&&(i&&(null==u||yN(u,c))&&!yN(r,c)&&i(),e&&(null==u||!yN(u,c))&&yN(r,c)&&e())}})}function yO(e,r){if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!=r[s])return!1;return!0}function yz(e){try{if("undefined"!=typeof localStorage)e.getItem=e=>localStorage.getItem(e),e.setItem=(e,r)=>{localStorage.setItem(e,r)};else throw Error("localStorage not supported in this environment")}catch(r){console.error(r),e.getItem=()=>null,e.setItem=()=>{}}}function y$(e){return`react-resizable-panels:${e}`}function yW(e){return e.map(e=>{let{constraints:r,id:s,idIsFromProps:i,order:n}=e;return i?s:n?`${n}:${JSON.stringify(r)}`:JSON.stringify(r)}).sort((e,r)=>e.localeCompare(r)).join(",")}function yH(e,r){try{let s=y$(e),i=r.getItem(s);if(i){let e=JSON.parse(i);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function yU(e,r,s,i,n){var a;let o=y$(e),l=yW(r),c=null!=(a=yH(e,n))?a:{};c[l]={expandToSizes:Object.fromEntries(s.entries()),layout:i};try{n.setItem(o,JSON.stringify(c))}catch(e){console.error(e)}}function yK({layout:e,panelConstraints:r}){let s=[...e],i=s.reduce((e,r)=>e+r,0);if(s.length!==r.length)throw Error(`Invalid ${r.length} panel layout: ${s.map(e=>`${e}%`).join(", ")}`);if(!yE(i,100)&&s.length>0)for(let e=0;e<r.length;e++){let r=s[e];yj(null!=r,`No layout data found for index ${e}`);let n=100/i*r;s[e]=n}let n=0;for(let e=0;e<r.length;e++){let i=s[e];yj(null!=i,`No layout data found for index ${e}`);let a=yD({panelConstraints:r,panelIndex:e,size:i});i!=a&&(n+=i-a,s[e]=a)}if(!yE(n,0))for(let e=0;e<r.length;e++){let i=s[e];yj(null!=i,`No layout data found for index ${e}`);let a=yD({panelConstraints:r,panelIndex:e,size:i+n});if(i!==a&&(n-=a-i,s[e]=a,yE(n,0)))break}return s}let yq={getItem:e=>(yz(yq),yq.getItem(e)),setItem:(e,r)=>{yz(yq),yq.setItem(e,r)}},yV={};function yY({autoSaveId:e=null,children:r,className:s="",direction:i,forwardedRef:n,id:a=null,onLayout:o=null,keyboardResizeBy:l=null,storage:c=yq,style:d,tagName:u="div",...h}){let f=_0(a),p=(0,$.useRef)(null),[m,g]=(0,$.useState)(null),[x,v]=(0,$.useState)([]),_=function(){let[e,r]=(0,$.useState)(0);return(0,$.useCallback)(()=>r(e=>e+1),[])}(),y=(0,$.useRef)({}),b=(0,$.useRef)(new Map),w=(0,$.useRef)(0),S=(0,$.useRef)({autoSaveId:e,direction:i,dragState:m,id:f,keyboardResizeBy:l,onLayout:o,storage:c}),C=(0,$.useRef)({layout:x,panelDataArray:[],panelDataArrayChanged:!1});(0,$.useRef)({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),(0,$.useImperativeHandle)(n,()=>({getId:()=>S.current.id,getLayout:()=>{let{layout:e}=C.current;return e},setLayout:e=>{let{onLayout:r}=S.current,{layout:s,panelDataArray:i}=C.current,n=yK({layout:e,panelConstraints:i.map(e=>e.constraints)});yB(s,n)||(v(n),C.current.layout=n,r&&r(n),yI(i,n,y.current))}}),[]),_X(()=>{S.current.autoSaveId=e,S.current.direction=i,S.current.dragState=m,S.current.id=f,S.current.onLayout=o,S.current.storage=c}),function({committedValuesRef:e,eagerValuesRef:r,groupId:s,layout:i,panelDataArray:n,panelGroupElement:a,setLayout:o}){(0,$.useRef)({didWarnAboutMissingResizeHandle:!1}),_X(()=>{if(!a)return;let e=yA(s,a);for(let r=0;r<n.length-1;r++){let{valueMax:s,valueMin:a,valueNow:o}=function({layout:e,panelsArray:r,pivotIndices:s}){let i=0,n=100,a=0,o=0,l=s[0];return yj(null!=l,"No pivot index found"),r.forEach((e,r)=>{let{constraints:s}=e,{maxSize:c=100,minSize:d=0}=s;r===l?(i=d,n=c):(a+=d,o+=c)}),{valueMax:Math.min(n,100-a),valueMin:Math.max(i,100-o),valueNow:e[l]}}({layout:i,panelsArray:n,pivotIndices:[r,r+1]}),l=e[r];if(null==l);else{let e=n[r];yj(e,`No panel data found for index "${r}"`),l.setAttribute("aria-controls",e.id),l.setAttribute("aria-valuemax",""+Math.round(s)),l.setAttribute("aria-valuemin",""+Math.round(a)),l.setAttribute("aria-valuenow",null!=o?""+Math.round(o):"")}}return()=>{e.forEach((e,r)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")})}},[s,i,n,a]),(0,$.useEffect)(()=>{if(!a)return;let e=r.current;yj(e,"Eager values not found");let{panelDataArray:n}=e;yj(null!=yT(s,a),`No group found for id "${s}"`);let l=yA(s,a);yj(l,`No resize handles found for group id "${s}"`);let c=l.map(e=>{let r=e.getAttribute(_G);yj(r,"Resize handle element has no handle id attribute");let[l,c]=function(e,r,s,i=document){var n,a,o,l;let c=yP(r,i),d=yA(e,i),u=c?d.indexOf(c):-1;return[null!=(n=null==(a=s[u])?void 0:a.id)?n:null,null!=(o=null==(l=s[u+1])?void 0:l.id)?o:null]}(s,r,n,a);if(null==l||null==c)return()=>{};let d=e=>{if(!e.defaultPrevented&&"Enter"===e.key){e.preventDefault();let c=n.findIndex(e=>e.id===l);if(c>=0){let e=n[c];yj(e,`No panel data found for index ${c}`);let l=i[c],{collapsedSize:d=0,collapsible:u,minSize:h=0}=e.constraints;if(null!=l&&u){let e=yR({delta:yE(l,d)?h-d:d-l,initialLayout:i,panelConstraints:n.map(e=>e.constraints),pivotIndices:yF(s,r,a),prevLayout:i,trigger:"keyboard"});i!==e&&o(e)}}}};return e.addEventListener("keydown",d),()=>{e.removeEventListener("keydown",d)}});return()=>{c.forEach(e=>e())}},[a,e,r,s,i,n,o])}({committedValuesRef:S,eagerValuesRef:C,groupId:f,layout:x,panelDataArray:C.current.panelDataArray,setLayout:v,panelGroupElement:p.current}),(0,$.useEffect)(()=>{let{panelDataArray:r}=C.current;if(e){if(0===x.length||x.length!==r.length)return;let s=yV[e];null==s&&(s=function(e,r=10){let s=null;return(...i)=>{null!==s&&clearTimeout(s),s=setTimeout(()=>{e(...i)},r)}}(yU,100),yV[e]=s),s(e,[...r],new Map(b.current),x,c)}},[e,x,c]),(0,$.useEffect)(()=>{});let j=(0,$.useCallback)(e=>{let{onLayout:r}=S.current,{layout:s,panelDataArray:i}=C.current;if(e.constraints.collapsible){let n=i.map(e=>e.constraints),{collapsedSize:a=0,panelSize:o,pivotIndices:l}=yJ(i,e,s);if(yj(null!=o,`Panel size not found for panel "${e.id}"`),!yN(o,a)){b.current.set(e.id,o);let c=yR({delta:yX(i,e)===i.length-1?o-a:a-o,initialLayout:s,panelConstraints:n,pivotIndices:l,prevLayout:s,trigger:"imperative-api"});yO(s,c)||(v(c),C.current.layout=c,r&&r(c),yI(i,c,y.current))}}},[]),k=(0,$.useCallback)((e,r)=>{let{onLayout:s}=S.current,{layout:i,panelDataArray:n}=C.current;if(e.constraints.collapsible){let a=n.map(e=>e.constraints),{collapsedSize:o=0,panelSize:l=0,minSize:c=0,pivotIndices:d}=yJ(n,e,i),u=null!=r?r:c;if(yN(l,o)){let r=b.current.get(e.id),o=null!=r&&r>=u?r:u,c=yR({delta:yX(n,e)===n.length-1?l-o:o-l,initialLayout:i,panelConstraints:a,pivotIndices:d,prevLayout:i,trigger:"imperative-api"});yO(i,c)||(v(c),C.current.layout=c,s&&s(c),yI(n,c,y.current))}}},[]),N=(0,$.useCallback)(e=>{let{layout:r,panelDataArray:s}=C.current,{panelSize:i}=yJ(s,e,r);return yj(null!=i,`Panel size not found for panel "${e.id}"`),i},[]),E=(0,$.useCallback)((e,r)=>{let{panelDataArray:s}=C.current,i=yX(s,e);return function({defaultSize:e,dragState:r,layout:s,panelData:i,panelIndex:n,precision:a=3}){let o=s[n];return{flexBasis:0,flexGrow:null==o?void 0!=e?e.toPrecision(a):"1":1===i.length?"1":o.toPrecision(a),flexShrink:1,overflow:"hidden",pointerEvents:null!==r?"none":void 0}}({defaultSize:r,dragState:m,layout:x,panelData:s,panelIndex:i})},[m,x]),D=(0,$.useCallback)(e=>{let{layout:r,panelDataArray:s}=C.current,{collapsedSize:i=0,collapsible:n,panelSize:a}=yJ(s,e,r);return yj(null!=a,`Panel size not found for panel "${e.id}"`),!0===n&&yN(a,i)},[]),R=(0,$.useCallback)(e=>{let{layout:r,panelDataArray:s}=C.current,{collapsedSize:i=0,collapsible:n,panelSize:a}=yJ(s,e,r);return yj(null!=a,`Panel size not found for panel "${e.id}"`),!n||yk(a,i)>0},[]),A=(0,$.useCallback)(e=>{let{panelDataArray:r}=C.current;r.push(e),r.sort((e,r)=>{let s=e.order,i=r.order;return null==s&&null==i?0:null==s?-1:null==i?1:s-i}),C.current.panelDataArrayChanged=!0,_()},[_]);_X(()=>{if(C.current.panelDataArrayChanged){C.current.panelDataArrayChanged=!1;let{autoSaveId:s,onLayout:i,storage:n}=S.current,{layout:a,panelDataArray:o}=C.current,l=null;if(s){var e,r;let i=null!=(r=(null!=(e=yH(s,n))?e:{})[yW(o)])?r:null;i&&(b.current=new Map(Object.entries(i.expandToSizes)),l=i.layout)}null==l&&(l=function({panelDataArray:e}){let r=Array(e.length),s=e.map(e=>e.constraints),i=0,n=100;for(let a=0;a<e.length;a++){let e=s[a];yj(e,`Panel constraints not found for index ${a}`);let{defaultSize:o}=e;null!=o&&(i++,r[a]=o,n-=o)}for(let a=0;a<e.length;a++){let o=s[a];yj(o,`Panel constraints not found for index ${a}`);let{defaultSize:l}=o;if(null!=l)continue;let c=n/(e.length-i);i++,r[a]=c,n-=c}return r}({panelDataArray:o}));let c=yK({layout:l,panelConstraints:o.map(e=>e.constraints)});yB(a,c)||(v(c),C.current.layout=c,i&&i(c),yI(o,c,y.current))}}),_X(()=>{let e=C.current;return()=>{e.layout=[]}},[]);let M=(0,$.useCallback)(e=>{let r=!1,s=p.current;return s&&"rtl"===window.getComputedStyle(s,null).getPropertyValue("direction")&&(r=!0),function(s){var i,n;s.preventDefault();let a=p.current;if(!a)return()=>null;let{direction:o,dragState:l,id:c,keyboardResizeBy:d,onLayout:u}=S.current,{layout:h,panelDataArray:f}=C.current,{initialLayout:m}=null!=l?l:{},g=yF(c,e,a),x=function(e,r,s,i,n,a){if(_8(e)){let r="horizontal"===s,i=0;i=e.shiftKey?100:null!=n?n:10;let a=0;switch(e.key){case"ArrowDown":a=r?0:i;break;case"ArrowLeft":a=r?-i:0;break;case"ArrowRight":a=r?i:0;break;case"ArrowUp":a=r?0:-i;break;case"End":a=100;break;case"Home":a=-100}return a}return null==i?0:function(e,r,s,i,n){let a="horizontal"===s,o=yP(r,n);yj(o,`No resize handle element found for id "${r}"`);let l=o.getAttribute(_V);yj(l,"Resize handle element has no group id attribute");let{initialCursorPosition:c}=i,d=yL(s,e),u=yT(l,n);yj(u,`No group element found for id "${l}"`);let h=u.getBoundingClientRect();return(d-c)/(a?h.width:h.height)*100}(e,r,s,i,a)}(s,e,o,l,d,a),_="horizontal"===o;_&&r&&(x=-x);let b=yR({delta:x,initialLayout:null!=m?m:h,panelConstraints:f.map(e=>e.constraints),pivotIndices:g,prevLayout:h,trigger:_8(s)?"keyboard":"mouse-or-touch"}),j=!yO(h,b);(_7(s)||_9(s))&&w.current!=x&&((w.current=x,j||0===x)?yp.set(e,0):_?(i=x<0?ya:yo,yp.set(e,i)):(n=x<0?yl:yc,yp.set(e,n))),j&&(v(b),C.current.layout=b,u&&u(b),yI(f,b,y.current))}},[]),F=(0,$.useCallback)((e,r)=>{let{onLayout:s}=S.current,{layout:i,panelDataArray:n}=C.current,a=n.map(e=>e.constraints),{panelSize:o,pivotIndices:l}=yJ(n,e,i);yj(null!=o,`Panel size not found for panel "${e.id}"`);let c=yR({delta:yX(n,e)===n.length-1?o-r:r-o,initialLayout:i,panelConstraints:a,pivotIndices:l,prevLayout:i,trigger:"imperative-api"});yO(i,c)||(v(c),C.current.layout=c,s&&s(c),yI(n,c,y.current))},[]),T=(0,$.useCallback)((e,r)=>{let{layout:s,panelDataArray:i}=C.current,{collapsedSize:n=0,collapsible:a}=r,{collapsedSize:o=0,collapsible:l,maxSize:c=100,minSize:d=0}=e.constraints,{panelSize:u}=yJ(i,e,s);null!=u&&(a&&l&&yN(u,n)?yN(n,o)||F(e,o):u<d?F(e,d):u>c&&F(e,c))},[F]),P=(0,$.useCallback)((e,r)=>{let{direction:s}=S.current,{layout:i}=C.current;if(!p.current)return;let n=yP(e,p.current);yj(n,`Drag handle element not found for id "${e}"`);let a=yL(s,r);g({dragHandleId:e,dragHandleRect:n.getBoundingClientRect(),initialCursorPosition:a,initialLayout:i})},[]),B=(0,$.useCallback)(()=>{g(null)},[]),L=(0,$.useCallback)(e=>{let{panelDataArray:r}=C.current,s=yX(r,e);s>=0&&(r.splice(s,1),delete y.current[e.id],C.current.panelDataArrayChanged=!0,_())},[_]),I=(0,$.useMemo)(()=>({collapsePanel:j,direction:i,dragState:m,expandPanel:k,getPanelSize:N,getPanelStyle:E,groupId:f,isPanelCollapsed:D,isPanelExpanded:R,reevaluatePanelConstraints:T,registerPanel:A,registerResizeHandle:M,resizePanel:F,startDragging:P,stopDragging:B,unregisterPanel:L,panelGroupElement:p.current}),[j,m,i,k,N,E,f,D,R,T,A,M,F,P,B,L]);return(0,$.createElement)(_K.Provider,{value:I},(0,$.createElement)(u,{...h,children:r,className:s,id:a,ref:p,style:{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",overflow:"hidden",width:"100%",...d},"data-panel-group":"",[_q]:i,[_V]:f}))}let yG=(0,$.forwardRef)((e,r)=>(0,$.createElement)(yY,{...e,forwardedRef:r}));function yX(e,r){return e.findIndex(e=>e===r||e.id===r.id)}function yJ(e,r,s){let i=yX(e,r),n=i===e.length-1,a=s[i];return{...r.constraints,panelSize:a,pivotIndices:n?[i-1,i]:[i,i+1]}}function yZ({children:e=null,className:r="",disabled:s=!1,hitAreaMargins:i,id:n,onBlur:a,onClick:o,onDragging:l,onFocus:c,onPointerDown:d,onPointerUp:u,style:h={},tabIndex:f=0,tagName:p="div",...m}){var g,x;let v=(0,$.useRef)(null),_=(0,$.useRef)({onClick:o,onDragging:l,onPointerDown:d,onPointerUp:u});(0,$.useEffect)(()=>{_.current.onClick=o,_.current.onDragging=l,_.current.onPointerDown=d,_.current.onPointerUp=u});let y=(0,$.useContext)(_K);if(null===y)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");let{direction:b,groupId:w,registerResizeHandle:S,startDragging:C,stopDragging:j,panelGroupElement:k}=y,N=_0(n),[E,D]=(0,$.useState)("inactive"),[R,A]=(0,$.useState)(!1),[M,F]=(0,$.useState)(null),T=(0,$.useRef)({state:E});_X(()=>{T.current.state=E}),(0,$.useEffect)(()=>{if(s)F(null);else{let e=S(N);F(()=>e)}},[s,N,S]);let P=null!=(g=null==i?void 0:i.coarse)?g:15,B=null!=(x=null==i?void 0:i.fine)?x:5;return(0,$.useEffect)(()=>{if(s||null==M)return;let e=v.current;yj(e,"Element ref not attached");let r=!1;return function(e,r,s,i,n){var a;let{ownerDocument:o}=r,l={direction:s,element:r,hitAreaMargins:i,setResizeHandlerState:n},c=null!=(a=yf.get(o))?a:0;return yf.set(o,c+1),ym.add(l),yS(),function(){var r;yp.delete(e),ym.delete(l);let s=null!=(r=yf.get(o))?r:1;if(yf.set(o,s-1),yS(),1===s&&yf.delete(o),yu.includes(l)){let e=yu.indexOf(l);e>=0&&yu.splice(e,1),yb(),n("up",!0,null)}}}(N,e,b,{coarse:P,fine:B},(e,s,i)=>{if(!s)return void D("inactive");switch(e){case"down":{D("drag"),r=!1,yj(i,'Expected event to be defined for "down" action'),C(N,i);let{onDragging:e,onPointerDown:s}=_.current;null==e||e(!0),null==s||s();break}case"move":{let{state:e}=T.current;r=!0,"drag"!==e&&D("hover"),yj(i,'Expected event to be defined for "move" action'),M(i);break}case"up":{D("hover"),j();let{onClick:e,onDragging:s,onPointerUp:i}=_.current;null==s||s(!1),null==i||i(),r||null==e||e()}}})},[P,b,s,B,S,N,M,C,j]),!function({disabled:e,handleId:r,resizeHandler:s,panelGroupElement:i}){(0,$.useEffect)(()=>{if(e||null==s||null==i)return;let n=yP(r,i);if(null==n)return;let a=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),s(e);break;case"F6":{e.preventDefault();let s=n.getAttribute(_V);yj(s,`No group element found for id "${s}"`);let a=yA(s,i),o=yM(s,r,i);yj(null!==o,`No resize element found for id "${r}"`);let l=e.shiftKey?o>0?o-1:a.length-1:o+1<a.length?o+1:0;a[l].focus()}}};return n.addEventListener("keydown",a),()=>{n.removeEventListener("keydown",a)}},[i,e,r,s])}({disabled:s,handleId:N,resizeHandler:M,panelGroupElement:k}),(0,$.createElement)(p,{...m,children:e,className:r,id:n,onBlur:()=>{A(!1),null==a||a()},onFocus:()=>{A(!0),null==c||c()},ref:v,role:"separator",style:{touchAction:"none",userSelect:"none",...h},tabIndex:f,[_q]:b,[_V]:w,[_Y]:"","data-resize-handle-active":"drag"===E?"pointer":R?"keyboard":void 0,"data-panel-resize-handle-enabled":!s,[_G]:N,"data-resize-handle-state":E})}yY.displayName="PanelGroup",yG.displayName="forwardRef(PanelGroup)",yZ.displayName="PanelResizeHandle";let yQ=({className:e,...r})=>(0,z.jsx)(yG,{className:(0,ey.cn)("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",e),...r}),y0=({withHandle:e,className:r,...s})=>(0,z.jsx)(yZ,{className:(0,ey.cn)("relative flex w-px items-center justify-center bg-border/60 after:absolute after:inset-y-0 after:-left-1 after:-right-1 after:content-[''] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:inset-x-0 data-[panel-group-direction=vertical]:after:-top-1 data-[panel-group-direction=vertical]:after:-bottom-1 data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:right-0 [&[data-resize-handle-active]]:bg-ring",r),...s,children:e&&(0,z.jsx)("div",{className:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border",children:(0,z.jsx)(uF,{className:"h-2.5 w-2.5"})})});function y1({className:e,...r}){return(0,z.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,ey.cn)("group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none","h-9 min-w-0 has-[textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]","has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",e),...r})}let y2=(0,s_.cva)("text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5","block-end":"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"}},defaultVariants:{align:"inline-start"}});function y5({className:e,align:r="inline-start",...s}){return(0,z.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":r,className:(0,ey.cn)(y2({align:r}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...s})}let y3=(0,s_.cva)("text-sm shadow-none flex gap-2 items-center",{variants:{size:{xs:"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",sm:"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function y4({className:e,type:r="button",variant:s="ghost",size:i="xs",...n}){return(0,z.jsx)(W.Button,{type:r,"data-size":i,variant:s,className:(0,ey.cn)(y3({size:i}),e),...n})}function y6({className:e,...r}){return(0,z.jsx)(ro,{"data-slot":"input-group-control",className:(0,ey.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",e),...r})}function y8({className:e,...r}){return(0,z.jsx)(rl,{"data-slot":"input-group-control",className:(0,ey.cn)("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",e),...r})}var y7=/[\\\/_+.#"@\[\(\{&]/,y9=/[\\\/_+.#"@\[\(\{&]/g,be=/[\s-]/,bt=/[\s-]/g;function br(e){return e.toLowerCase().replace(bt," ")}var bs=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let s=sm(`Primitive.${r}`),i=$.forwardRef((e,i)=>{let{asChild:n,...a}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,z.jsx)(n?s:r,{...a,ref:i})});return i.displayName=`Primitive.${r}`,{...e,[r]:i}},{}),bi='[cmdk-group=""]',bn='[cmdk-group-items=""]',ba='[cmdk-item=""]',bo=`${ba}:not([aria-disabled="true"])`,bl="cmdk-item-select",bc="data-value",bd=(e,r,s)=>{var i;return i=e,function e(r,s,i,n,a,o,l){if(o===s.length)return a===r.length?1:.99;var c=`${a},${o}`;if(void 0!==l[c])return l[c];for(var d,u,h,f,p=n.charAt(o),m=i.indexOf(p,a),g=0;m>=0;)(d=e(r,s,i,n,m+1,o+1,l))>g&&(m===a?d*=1:y7.test(r.charAt(m-1))?(d*=.8,(h=r.slice(a,m-1).match(y9))&&a>0&&(d*=Math.pow(.999,h.length))):be.test(r.charAt(m-1))?(d*=.9,(f=r.slice(a,m-1).match(bt))&&a>0&&(d*=Math.pow(.999,f.length))):(d*=.17,a>0&&(d*=Math.pow(.999,m-a))),r.charAt(m)!==s.charAt(o)&&(d*=.9999)),(d<.1&&i.charAt(m-1)===n.charAt(o+1)||n.charAt(o+1)===n.charAt(o)&&i.charAt(m-1)!==n.charAt(o))&&.1*(u=e(r,s,i,n,m+1,o+2,l))>d&&(d=.1*u),d>g&&(g=d),m=i.indexOf(p,m+1);return l[c]=g,g}(i=s&&s.length>0?`${i+" "+s.join(" ")}`:i,r,br(i),br(r),0,0,{})},bu=$.createContext(void 0),bh=$.createContext(void 0),bf=$.createContext(void 0),bp=$.forwardRef((e,r)=>{let s=bC(()=>{var r,s;return{search:"",value:null!=(s=null!=(r=e.value)?r:e.defaultValue)?s:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),i=bC(()=>new Set),n=bC(()=>new Map),a=bC(()=>new Map),o=bC(()=>new Set),l=bw(e),{label:c,children:d,value:u,onValueChange:h,filter:f,shouldFilter:p,loop:m,disablePointerSelection:g=!1,vimBindings:x=!0,...v}=e,_=ek(),y=ek(),b=ek(),w=$.useRef(null),S=bN();bS(()=>{if(void 0!==u){let e=u.trim();s.current.value=e,C.emit()}},[u]),bS(()=>{S(6,R)},[]);let C=$.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>s.current,setState:(e,r,i)=>{var n,a,o,c;if(!Object.is(s.current[e],r)){if(s.current[e]=r,"search"===e)D(),N(),S(1,E);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(b);e?e.focus():null==(n=document.getElementById(_))||n.focus()}if(S(7,()=>{var e;s.current.selectedItemId=null==(e=A())?void 0:e.id,C.emit()}),i||S(5,R),(null==(a=l.current)?void 0:a.value)!==void 0){null==(c=(o=l.current).onValueChange)||c.call(o,null!=r?r:"");return}}C.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),j=$.useMemo(()=>({value:(e,r,i)=>{var n;r!==(null==(n=a.current.get(e))?void 0:n.value)&&(a.current.set(e,{value:r,keywords:i}),s.current.filtered.items.set(e,k(r,i)),S(2,()=>{N(),C.emit()}))},item:(e,r)=>(i.current.add(e),r&&(n.current.has(r)?n.current.get(r).add(e):n.current.set(r,new Set([e]))),S(3,()=>{D(),N(),s.current.value||E(),C.emit()}),()=>{a.current.delete(e),i.current.delete(e),s.current.filtered.items.delete(e);let r=A();S(4,()=>{D(),(null==r?void 0:r.getAttribute("id"))===e&&E(),C.emit()})}),group:e=>(n.current.has(e)||n.current.set(e,new Set),()=>{a.current.delete(e),n.current.delete(e)}),filter:()=>l.current.shouldFilter,label:c||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:_,inputId:b,labelId:y,listInnerRef:w}),[]);function k(e,r){var i,n;let a=null!=(n=null==(i=l.current)?void 0:i.filter)?n:bd;return e?a(e,s.current.search,r):0}function N(){if(!s.current.search||!1===l.current.shouldFilter)return;let e=s.current.filtered.items,r=[];s.current.filtered.groups.forEach(s=>{let i=n.current.get(s),a=0;i.forEach(r=>{a=Math.max(e.get(r),a)}),r.push([s,a])});let i=w.current;M().sort((r,s)=>{var i,n;let a=r.getAttribute("id"),o=s.getAttribute("id");return(null!=(i=e.get(o))?i:0)-(null!=(n=e.get(a))?n:0)}).forEach(e=>{let r=e.closest(bn);r?r.appendChild(e.parentElement===r?e:e.closest(`${bn} > *`)):i.appendChild(e.parentElement===i?e:e.closest(`${bn} > *`))}),r.sort((e,r)=>r[1]-e[1]).forEach(e=>{var r;let s=null==(r=w.current)?void 0:r.querySelector(`${bi}[${bc}="${encodeURIComponent(e[0])}"]`);null==s||s.parentElement.appendChild(s)})}function E(){let e=M().find(e=>"true"!==e.getAttribute("aria-disabled")),r=null==e?void 0:e.getAttribute(bc);C.setState("value",r||void 0)}function D(){var e,r,o,c;if(!s.current.search||!1===l.current.shouldFilter){s.current.filtered.count=i.current.size;return}s.current.filtered.groups=new Set;let d=0;for(let n of i.current){let i=k(null!=(r=null==(e=a.current.get(n))?void 0:e.value)?r:"",null!=(c=null==(o=a.current.get(n))?void 0:o.keywords)?c:[]);s.current.filtered.items.set(n,i),i>0&&d++}for(let[e,r]of n.current)for(let i of r)if(s.current.filtered.items.get(i)>0){s.current.filtered.groups.add(e);break}s.current.filtered.count=d}function R(){var e,r,s;let i=A();i&&((null==(e=i.parentElement)?void 0:e.firstChild)===i&&(null==(s=null==(r=i.closest(bi))?void 0:r.querySelector('[cmdk-group-heading=""]'))||s.scrollIntoView({block:"nearest"})),i.scrollIntoView({block:"nearest"}))}function A(){var e;return null==(e=w.current)?void 0:e.querySelector(`${ba}[aria-selected="true"]`)}function M(){var e;return Array.from((null==(e=w.current)?void 0:e.querySelectorAll(bo))||[])}function F(e){let r=M()[e];r&&C.setState("value",r.getAttribute(bc))}function T(e){var r;let s=A(),i=M(),n=i.findIndex(e=>e===s),a=i[n+e];null!=(r=l.current)&&r.loop&&(a=n+e<0?i[i.length-1]:n+e===i.length?i[0]:i[n+e]),a&&C.setState("value",a.getAttribute(bc))}function P(e){let r=A(),s=null==r?void 0:r.closest(bi),i;for(;s&&!i;)i=null==(s=e>0?function(e,r){let s=e.nextElementSibling;for(;s;){if(s.matches(r))return s;s=s.nextElementSibling}}(s,bi):function(e,r){let s=e.previousElementSibling;for(;s;){if(s.matches(r))return s;s=s.previousElementSibling}}(s,bi))?void 0:s.querySelector(bo);i?C.setState("value",i.getAttribute(bc)):T(e)}let B=()=>F(M().length-1),L=e=>{e.preventDefault(),e.metaKey?B():e.altKey?P(1):T(1)},I=e=>{e.preventDefault(),e.metaKey?F(0):e.altKey?P(-1):T(-1)};return $.createElement(bs.div,{ref:r,tabIndex:-1,...v,"cmdk-root":"",onKeyDown:e=>{var r;null==(r=v.onKeyDown)||r.call(v,e);let s=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||s))switch(e.key){case"n":case"j":x&&e.ctrlKey&&L(e);break;case"ArrowDown":L(e);break;case"p":case"k":x&&e.ctrlKey&&I(e);break;case"ArrowUp":I(e);break;case"Home":e.preventDefault(),F(0);break;case"End":e.preventDefault(),B();break;case"Enter":{e.preventDefault();let r=A();if(r){let e=new Event(bl);r.dispatchEvent(e)}}}}},$.createElement("label",{"cmdk-label":"",htmlFor:j.inputId,id:j.labelId,style:bD},c),bE(e,e=>$.createElement(bh.Provider,{value:C},$.createElement(bu.Provider,{value:j},e))))}),bm=$.forwardRef((e,r)=>{var s,i;let n=ek(),a=$.useRef(null),o=$.useContext(bf),l=$.useContext(bu),c=bw(e),d=null!=(i=null==(s=c.current)?void 0:s.forceMount)?i:null==o?void 0:o.forceMount;bS(()=>{if(!d)return l.item(n,null==o?void 0:o.id)},[d]);let u=bk(n,a,[e.value,e.children,a],e.keywords),h=$.useContext(bh),f=bj(e=>e.value&&e.value===u.current),p=bj(e=>!!d||!1===l.filter()||!e.search||e.filtered.items.get(n)>0);function m(){var e,r;g(),null==(r=(e=c.current).onSelect)||r.call(e,u.current)}function g(){h.setState("value",u.current,!0)}if($.useEffect(()=>{let r=a.current;if(!(!r||e.disabled))return r.addEventListener(bl,m),()=>r.removeEventListener(bl,m)},[p,e.onSelect,e.disabled]),!p)return null;let{disabled:x,value:v,onSelect:_,forceMount:y,keywords:b,...w}=e;return $.createElement(bs.div,{ref:(0,U.composeRefs)(a,r),...w,id:n,"cmdk-item":"",role:"option","aria-disabled":!!x,"aria-selected":!!f,"data-disabled":!!x,"data-selected":!!f,onPointerMove:x||l.getDisablePointerSelection()?void 0:g,onClick:x?void 0:m},e.children)}),bg=$.forwardRef((e,r)=>{let{heading:s,children:i,forceMount:n,...a}=e,o=ek(),l=$.useRef(null),c=$.useRef(null),d=ek(),u=$.useContext(bu),h=bj(e=>!!n||!1===u.filter()||!e.search||e.filtered.groups.has(o));bS(()=>u.group(o),[]),bk(o,l,[e.value,e.heading,c]);let f=$.useMemo(()=>({id:o,forceMount:n}),[n]);return $.createElement(bs.div,{ref:(0,U.composeRefs)(l,r),...a,"cmdk-group":"",role:"presentation",hidden:!h||void 0},s&&$.createElement("div",{ref:c,"cmdk-group-heading":"","aria-hidden":!0,id:d},s),bE(e,e=>$.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":s?d:void 0},$.createElement(bf.Provider,{value:f},e))))}),bx=$.forwardRef((e,r)=>{let{alwaysRender:s,...i}=e,n=$.useRef(null),a=bj(e=>!e.search);return s||a?$.createElement(bs.div,{ref:(0,U.composeRefs)(n,r),...i,"cmdk-separator":"",role:"separator"}):null}),bv=$.forwardRef((e,r)=>{let{onValueChange:s,...i}=e,n=null!=e.value,a=$.useContext(bh),o=bj(e=>e.search),l=bj(e=>e.selectedItemId),c=$.useContext(bu);return $.useEffect(()=>{null!=e.value&&a.setState("search",e.value)},[e.value]),$.createElement(bs.input,{ref:r,...i,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":l,id:c.inputId,type:"text",value:n?e.value:o,onChange:e=>{n||a.setState("search",e.target.value),null==s||s(e.target.value)}})}),b_=$.forwardRef((e,r)=>{let{children:s,label:i="Suggestions",...n}=e,a=$.useRef(null),o=$.useRef(null),l=bj(e=>e.selectedItemId),c=$.useContext(bu);return $.useEffect(()=>{if(o.current&&a.current){let e=o.current,r=a.current,s,i=new ResizeObserver(()=>{s=requestAnimationFrame(()=>{let s=e.offsetHeight;r.style.setProperty("--cmdk-list-height",s.toFixed(1)+"px")})});return i.observe(e),()=>{cancelAnimationFrame(s),i.unobserve(e)}}},[]),$.createElement(bs.div,{ref:(0,U.composeRefs)(a,r),...n,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":i,id:c.listId},bE(e,e=>$.createElement("div",{ref:(0,U.composeRefs)(o,c.listInnerRef),"cmdk-list-sizer":""},e)))}),by=$.forwardRef((e,r)=>{let{open:s,onOpenChange:i,overlayClassName:n,contentClassName:a,container:o,...l}=e;return $.createElement(tF,{open:s,onOpenChange:i},$.createElement(tO,{container:o},$.createElement(t$,{"cmdk-overlay":"",className:n}),$.createElement(tK,{"aria-label":e.label,"cmdk-dialog":"",className:a},$.createElement(bp,{ref:r,...l}))))}),bb=Object.assign(bp,{List:b_,Item:bm,Input:bv,Group:bg,Separator:bx,Dialog:by,Empty:$.forwardRef((e,r)=>bj(e=>0===e.filtered.count)?$.createElement(bs.div,{ref:r,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:$.forwardRef((e,r)=>{let{progress:s,children:i,label:n="Loading...",...a}=e;return $.createElement(bs.div,{ref:r,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":s,"aria-valuemin":0,"aria-valuemax":100,"aria-label":n},bE(e,e=>$.createElement("div",{"aria-hidden":!0},e)))})});function bw(e){let r=$.useRef(e);return bS(()=>{r.current=e}),r}var bS="undefined"==typeof window?$.useEffect:$.useLayoutEffect;function bC(e){let r=$.useRef();return void 0===r.current&&(r.current=e()),r}function bj(e){let r=$.useContext(bh),s=()=>e(r.snapshot());return $.useSyncExternalStore(r.subscribe,s,s)}function bk(e,r,s,i=[]){let n=$.useRef(),a=$.useContext(bu);return bS(()=>{var o;let l=(()=>{var e;for(let r of s){if("string"==typeof r)return r.trim();if("object"==typeof r&&"current"in r)return r.current?null==(e=r.current.textContent)?void 0:e.trim():n.current}})(),c=i.map(e=>e.trim());a.value(e,l,c),null==(o=r.current)||o.setAttribute(bc,l),n.current=l}),n}var bN=()=>{let[e,r]=$.useState(),s=bC(()=>new Map);return bS(()=>{s.current.forEach(e=>e()),s.current=new Map},[e]),(e,i)=>{s.current.set(e,i),r({})}};function bE({asChild:e,children:r},s){let i;return e&&$.isValidElement(r)?$.cloneElement("function"==typeof(i=r.type)?i(r.props):"render"in i?i.render(r.props):r,{ref:r.ref},s(r.props.children)):s(r)}var bD={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function bR({className:e,...r}){return(0,z.jsx)(bb,{"data-slot":"command",className:(0,ey.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...r})}function bA({title:e="Command Palette",description:r="Search for a command to run...",children:s,className:i,showCloseButton:n=!0,shouldFilter:a,...o}){return(0,z.jsxs)(t7,{...o,children:[(0,z.jsxs)(rs,{className:"sr-only",children:[(0,z.jsx)(rn,{children:e}),(0,z.jsx)(ra,{children:r})]}),(0,z.jsx)(rr,{className:(0,ey.cn)("overflow-hidden p-0",i),showCloseButton:n,children:(0,z.jsx)(bR,{shouldFilter:a,className:"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:s})})]})}function bM({className:e,...r}){return(0,z.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,z.jsx)(dt,{className:"size-4 shrink-0 opacity-50"}),(0,z.jsx)(bb.Input,{"data-slot":"command-input",className:(0,ey.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...r})]})}function bF({className:e,...r}){return(0,z.jsx)(bb.List,{"data-slot":"command-list",className:(0,ey.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...r})}function bT({...e}){return(0,z.jsx)(bb.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function bP({className:e,...r}){return(0,z.jsx)(bb.Group,{"data-slot":"command-group",className:(0,ey.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...r})}function bB({className:e,...r}){return(0,z.jsx)(bb.Item,{"data-slot":"command-item",className:(0,ey.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r})}let bL=(0,ew.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]),bI=(0,ew.default)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),bO=(0,ew.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),bz=new Set(["ts","tsx","js","jsx","py","rb","go","rs","java","c","cpp","h","css","scss","html","vue","svelte","php","swift","kt","sh","bash","yaml","yml","toml","json","xml","sql","graphql","proto"]),b$=new Set(["md","txt","log","csv","env","gitignore","dockerignore","editorconfig"]);function bW(e){return Array.from(e.dataTransfer.types).includes("Files")}function bH(e){let r=e.dataTransfer.items;if(r&&r.length>0&&"function"==typeof r[0].webkitGetAsEntry){let e=[];for(let s of Array.from(r)){if("file"!==s.kind)continue;let r=s.webkitGetAsEntry();if(r?.isDirectory)continue;let i=s.getAsFile();i&&e.push(i)}return e}return Array.from(e.dataTransfer.files)}function bU({path:e}){let[r,s]=(0,$.useState)(!1),i=(0,$.useCallback)(r=>{r.stopPropagation(),navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),1500)},[e]);return(0,z.jsx)("button",{onClick:i,className:"p-0.5 rounded hover:bg-muted-foreground/20 transition-colors",title:`Copy path: ${e}`,children:r?(0,z.jsx)(rf.Check,{className:"h-3 w-3 text-green-500"}):(0,z.jsx)(ul.Copy,{className:"h-3 w-3 text-muted-foreground"})})}function bK({entryPath:e,type:r,deleting:s,onRequestDelete:i}){return s?(0,z.jsx)(rk,{className:"h-3 w-3 animate-spin text-muted-foreground"}):(0,z.jsx)("button",{onClick:s=>{s.stopPropagation(),i(e,r)},className:"p-0.5 rounded hover:bg-destructive/20 transition-colors",title:`Delete ${e}`,"aria-label":`Delete ${e}`,children:(0,z.jsx)(rc,{className:"h-3 w-3 text-muted-foreground hover:text-destructive"})})}function bq({entry:e,path:r,depth:s,expandedDirs:i,directoryContents:n,loadingDirs:a,selectedFile:o,uploadingDirs:l,dragOverPath:c,deletingPaths:d,onToggleDirectory:u,onSelectFile:h,onUploadFiles:f,onSetDragOverPath:p,onRequestDelete:m}){var g,x,v;let _,y,b,w,S,C=i.has(r),j=a.has(r),k=n.get(r),N=e.name.startsWith(".");if("directory"===e.type){let g=C?r_:oi,x=c===r,v=l.has(r),_=d.has(r);return(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:(0,ey.cn)("group flex items-center w-full px-2 py-2 rounded-sm transition-colors cursor-pointer",x?"bg-primary/15 outline-2 -outline-offset-2 outline-dashed outline-primary/60":"hover:bg-accent"),style:{paddingLeft:`${16*s+8}px`},onClick:()=>u(r),onDragOver:e=>{bW(e)&&(e.preventDefault(),e.stopPropagation(),p(r))},onDrop:e=>{if(!bW(e))return;e.preventDefault(),e.stopPropagation(),p(null);let s=bH(e);s.length&&f(r,s)},children:[(0,z.jsxs)("div",{className:"flex items-center gap-1 min-w-0 flex-1",children:[v||j?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground"}):(0,z.jsx)(C?sw:af,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,z.jsx)(g,{className:(0,ey.cn)("h-4 w-4 shrink-0 text-blue-500",N&&"opacity-60")}),(0,z.jsx)("span",{className:(0,ey.cn)("truncate",N&&"text-muted-foreground"),children:e.name})]}),(0,z.jsxs)("div",{className:(0,ey.cn)("shrink-0 ml-1 items-center gap-1",_?"flex":"hidden group-hover:flex"),children:[(0,z.jsx)(bU,{path:r}),(0,z.jsx)(bK,{entryPath:r,type:"directory",deleting:_,onRequestDelete:m})]})]}),C&&k&&(0,z.jsx)("div",{children:k.map(e=>{let g=r?`${r}/${e.name}`:e.name;return(0,z.jsx)(bq,{entry:e,path:g,depth:s+1,expandedDirs:i,directoryContents:n,loadingDirs:a,selectedFile:o,uploadingDirs:l,dragOverPath:c,deletingPaths:d,onToggleDirectory:u,onSelectFile:h,onUploadFiles:f,onSetDragOverPath:p,onRequestDelete:m},g)})})]})}let E=(g=e.name,_=g.split(".").pop()?.toLowerCase()??"",bz.has(_)?bI:b$.has(_)?bO:bL),D=o===r,R=r.includes("/")?r.slice(0,r.lastIndexOf("/")):"",A=d.has(r);return(0,z.jsxs)("div",{className:(0,ey.cn)("group flex items-center w-full px-2 py-2 rounded-sm transition-colors cursor-pointer",D?"bg-accent text-accent-foreground":"hover:bg-accent/50"),style:{paddingLeft:`${16*s+8+18}px`},onClick:()=>h(r),onDragOver:e=>{bW(e)&&(e.preventDefault(),e.stopPropagation(),p(R))},onDrop:e=>{if(!bW(e))return;e.preventDefault(),e.stopPropagation(),p(null);let r=bH(e);r.length&&f(R,r)},children:[(0,z.jsxs)("div",{className:"flex items-center gap-1 min-w-0 flex-1",children:[(0,z.jsx)(E,{className:(0,ey.cn)("h-4 w-4 shrink-0 text-muted-foreground",N&&"opacity-60")}),(0,z.jsx)("span",{className:(0,ey.cn)("truncate",N&&"text-muted-foreground"),children:e.name})]}),(0,z.jsxs)("div",{className:"shrink-0 flex items-center gap-2 ml-1",children:[(0,z.jsx)("span",{className:"text-[11px] text-muted-foreground/70 group-hover:hidden whitespace-nowrap w-[52px] text-right tabular-nums",children:e.mtime&&(x=e.mtime,y=Date.now(),S=Math.floor((w=Math.floor((b=Math.floor(Math.floor((y-new Date(x).getTime())/1e3)/60))/60))/24),b<1?"just now":b<60?`${b}m ago`:w<24?`${w}h ago`:S<30?`${S}d ago`:new Date(x).toLocaleDateString(void 0,{month:"short",day:"numeric"}))}),(0,z.jsx)("span",{className:"text-[11px] text-muted-foreground/70 group-hover:hidden whitespace-nowrap w-[52px] text-right tabular-nums",children:null!=e.size&&((v=e.size)<1024?`${v} B`:v<1048576?`${(v/1024).toFixed(1)} KB`:`${(v/1048576).toFixed(1)} MB`)}),(0,z.jsxs)("div",{className:(0,ey.cn)("items-center gap-1",A?"flex":"hidden group-hover:flex"),children:[(0,z.jsx)(bU,{path:r}),(0,z.jsx)(bK,{entryPath:r,type:"file",deleting:A,onRequestDelete:m})]})]})]})}function bV({entries:e,expandedDirs:r,directoryContents:s,loadingDirs:i,selectedFile:n,uploadingDirs:a,rootLoading:o,deletingPaths:l,onToggleDirectory:c,onSelectFile:d,onUploadFiles:u,onDeleteEntry:h}){let[f,p]=(0,$.useState)(null),[m,g]=(0,$.useState)(null),x=""===f,v=a.has(""),_=(0,$.useCallback)((e,r)=>{g({path:e,type:r})},[]),y=m?m.path.includes("/")?m.path.slice(m.path.lastIndexOf("/")+1):m.path:"";return(0,z.jsxs)("div",{className:(0,ey.cn)("h-full transition-colors",x&&"bg-accent/30 outline-2 -outline-offset-2 outline-dashed outline-primary/50"),style:{fontSize:"var(--files-tree-font-size, 14px)"},onDragOver:e=>{bW(e)&&(e.preventDefault(),p(""))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},onDrop:e=>{if(!bW(e))return;e.preventDefault(),p(null);let r=bH(e);r.length&&u("",r)},children:[(0,z.jsx)(or,{className:"h-full",children:(0,z.jsxs)("div",{className:"py-1",children:[v&&(0,z.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1 text-xs text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-3.5 w-3.5 animate-spin"}),"Uploading…"]}),o&&0===e.length?(0,z.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:"Loading files..."}):0===e.length?(0,z.jsx)("div",{className:"flex items-center justify-center py-8 text-muted-foreground text-sm",children:x?"Drop files to upload":"No files found. Drop files here to upload."}):e.map(e=>{let o=e.name;return(0,z.jsx)(bq,{entry:e,path:o,depth:0,expandedDirs:r,directoryContents:s,loadingDirs:i,selectedFile:n,uploadingDirs:a,dragOverPath:f,deletingPaths:l,onToggleDirectory:c,onSelectFile:d,onUploadFiles:u,onSetDragOverPath:p,onRequestDelete:_},o)})]})}),(0,z.jsx)(lU,{open:null!==m,onOpenChange:e=>{e||g(null)},children:(0,z.jsxs)(lV,{children:[(0,z.jsxs)(lY,{children:[(0,z.jsxs)(lX,{children:["Delete ",m?.type==="directory"?"folder":"file","?"]}),(0,z.jsx)(lJ,{children:m?.type==="directory"?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"font-medium text-foreground",children:y})," and all its contents will be permanently deleted. This can't be undone."]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"font-medium text-foreground",children:y})," will be permanently deleted. This can't be undone."]})})]}),(0,z.jsxs)(lG,{children:[(0,z.jsx)(lQ,{children:"Cancel"}),(0,z.jsx)(lZ,{className:(0,ey.cn)((0,W.buttonVariants)({variant:"destructive"}),"border-transparent"),onClick:()=>{m&&h(m.path,m.type)},children:"Delete"})]})]})})]})}let bY=(0,ew.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),bG=(0,ew.default)("file-exclamation-point",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),bX=(0,ew.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),bJ=(0,ew.default)("list-collapse",[["path",{d:"M10 5h11",key:"1hkqpe"}],["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 19h11",key:"14g2nv"}],["path",{d:"m3 10 3-3-3-3",key:"i7pm08"}],["path",{d:"m3 20 3-3-3-3",key:"20gx1n"}]]),bZ=(0,ew.default)("list-tree",[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]]),bQ=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,b0=Object.hasOwnProperty;var b1=e.i(216920);let b2={},b5=new class{constructor(){this.occurrences,this.reset()}slug(e,r){var s,i;let n=(s=e,i=!0===r,"string"!=typeof s?"":(i||(s=s.toLowerCase()),s.replace(bQ,"").replace(/ /g,"-"))),a=n;for(;b0.call(this.occurrences,n);)this.occurrences[a]++,n=a+"-"+this.occurrences[a];return this.occurrences[n]=0,n}reset(){this.occurrences=Object.create(null)}};function b3(e){let r=(e||b2).prefix||"";return function(e){b5.reset(),(0,b1.visit)(e,"element",function(e){let s,i;((i=2===(s="element"===e.type?e.tagName.toLowerCase():"").length&&104===s.charCodeAt(0)?s.charCodeAt(1):0)>48&&i<55?i-48:void 0)&&!e.properties.id&&(e.properties.id=r+b5.slug("children"in e?function e(r){let s=-1,i=[];for(;++s<r.children.length;){var n;i[s]="text"===(n=r.children[s]).type?n.value:"children"in n?e(n):""}return i.join("")}(e):"value"in e?e.value:""))})}}var b4=oM,H=H,b6=e.i(829692),b6=b6,b8=e.i(615742);let b7=(0,$.createContext)({code:""}),b9={name:"line-data",line(e,r){e.properties["data-line"]=String(r)}},we={name:"line-numbers",line(e,r){e.children.unshift({type:"element",tagName:"span",properties:{className:["inline-block","min-w-10","mr-2","text-right","select-none","text-muted-foreground"]},children:[{type:"text",value:String(r)}]})}};async function wt(e,r,s=!1,i){let n=[b9];return i&&i.size>0&&n.push({name:"fold-gutter",line(e,r){e.children.unshift({type:"element",tagName:"span",properties:i.has(r)?{className:["code-fold-toggle"],"data-fold-start":String(r)}:{className:["code-fold-spacer"]},children:[]})}}),s&&n.push(we),await Promise.all([(0,b8.codeToHtml)(e,{lang:r,theme:"one-light",transformers:n}),(0,b8.codeToHtml)(e,{lang:r,theme:"one-dark-pro",transformers:n})])}let wr=(0,$.forwardRef)(function({code:e,language:r,showLineNumbers:s=!1,scrollToLine:i,scrollKey:n,foldable:a=!1,className:o,children:l,...c},d){let[u,h]=(0,$.useState)(""),[f,p]=(0,$.useState)(""),m=(0,$.useRef)(!1),g=(0,$.useRef)(null),x=(0,$.useMemo)(()=>a?function(e,r={}){return function(...e){let r=new Map;for(let s of e.flat())!(s.endLine<=s.startLine)&&(r.has(s.startLine)||r.set(s.startLine,s));let s=[...r.values()].sort((e,r)=>e.startLine-r.startLine||r.endLine-e.endLine),i=[],n=[];for(let e of s){for(;n.length&&n[n.length-1].endLine<e.startLine;)n.pop();let r=n[n.length-1];r&&e.endLine>r.endLine||(i.push(e),n.push(e))}return i}((r.tokenIndex,[]),function(e){let r=e.split("\n"),s=[],i=[],n=0,a=e=>{n>e.line&&s.push({startLine:e.line+1,endLine:n+1})};for(let e=0;e<r.length;e++){let s=function(e){let r=e.match(/^[ \t]*/),s=r?r[0].length:0;return s===e.length?null:s}(r[e]);if(null!==s){for(;i.length&&i[i.length-1].indent>=s;)a(i.pop());i.push({indent:s,line:e}),n=e}}for(;i.length;)a(i.pop());return s}(e))}(e):[],[a,e]),v=(0,$.useMemo)(()=>new Set(x.map(e=>e.startLine)),[x]),[_,y]=(0,$.useState)(new Set),[b,w]=(0,$.useState)(e),[S,C]=(0,$.useState)({line:i,key:n});if((0,$.useImperativeHandle)(d,()=>({foldAll:()=>y(new Set(x.map(e=>e.startLine))),expandAll:()=>y(new Set)}),[x]),(0,$.useEffect)(()=>(wt(e,r,s,v).then(([e,r])=>{m.current||(h(e),p(r),m.current=!0)}),()=>{m.current=!1}),[e,r,s,v]),(0,$.useEffect)(()=>{let e=g.current;if(!e)return;let r=new Map(x.map(e=>[e.startLine,e])),s=new Set;for(let e of _){let i=r.get(e);if(i)for(let e=i.startLine+1;e<=i.endLine;e++)s.add(e)}for(let r of e.querySelectorAll("[data-line]")){let e=Number(r.getAttribute("data-line"));r.style.display=s.has(e)?"none":"",r.classList.toggle("code-line-collapsed",_.has(e))}},[_,x,u,f]),(0,$.useEffect)(()=>{if(!a)return;let e=g.current;if(!e)return;let r=e=>{let r=e.target?.closest?.("[data-fold-start]");if(!r)return;e.stopPropagation(),e.preventDefault();let s=Number(r.getAttribute("data-fold-start"));y(e=>{let r=new Set(e);return r.has(s)?r.delete(s):r.add(s),r})};return e.addEventListener("click",r),()=>e.removeEventListener("click",r)},[a]),(0,$.useEffect)(()=>{if(null==i)return;let e=g.current;if(!e||!u&&!f)return;let r=Array.from(e.querySelectorAll(`[data-line="${i}"]`));if(0===r.length)return;let s=r.find(e=>null!==e.offsetParent)??r[0],n=requestAnimationFrame(()=>{s.scrollIntoView({block:"center",behavior:"auto"}),r.forEach(e=>e.classList.add("code-line-highlight"))}),a=window.setTimeout(()=>r.forEach(e=>e.classList.remove("code-line-highlight")),1600);return()=>{cancelAnimationFrame(n),window.clearTimeout(a),r.forEach(e=>e.classList.remove("code-line-highlight"))}},[i,n,u,f]),e!==b&&(w(e),y(new Set)),(S.line!==i||S.key!==n)&&(C({line:i,key:n}),null!=i&&_.size>0)){let e=!1,r=new Set(_);for(let s of x)r.has(s.startLine)&&i>s.startLine&&i<=s.endLine&&(r.delete(s.startLine),e=!0);e&&y(r)}return(0,z.jsx)(b7.Provider,{value:{code:e},children:(0,z.jsx)("div",{ref:g,className:(0,ey.cn)("group relative w-full overflow-hidden rounded-md border bg-background text-foreground",o),...c,children:(0,z.jsxs)("div",{className:"relative",children:[(0,z.jsx)("div",{className:"overflow-auto dark:hidden [&>pre]:m-0 [&>pre]:bg-background! [&>pre]:p-4 [&>pre]:text-foreground! [&>pre]:text-sm [&_code]:grid [&_code]:font-mono [&_code]:text-sm",dangerouslySetInnerHTML:{__html:u}}),(0,z.jsx)("div",{className:"hidden overflow-auto dark:block [&>pre]:m-0 [&>pre]:bg-background! [&>pre]:p-4 [&>pre]:text-foreground! [&>pre]:text-sm [&_code]:grid [&_code]:font-mono [&_code]:text-sm",dangerouslySetInnerHTML:{__html:f}}),l&&(0,z.jsx)("div",{className:"absolute top-2 right-2 flex items-center gap-2",children:l})]})})})}),ws=({onCopy:e,onError:r,timeout:s=2e3,children:i,className:n,...a})=>{let[o,l]=(0,$.useState)(!1),{code:c}=(0,$.useContext)(b7),d=async()=>{if(!navigator?.clipboard?.writeText)return void r?.(Error("Clipboard API not available"));try{await navigator.clipboard.writeText(c),l(!0),e?.(),setTimeout(()=>l(!1),s)}catch(e){r?.(e)}},u=o?H.default:b6.default;return(0,z.jsx)(W.Button,{className:(0,ey.cn)("shrink-0",n),onClick:d,size:"icon",variant:"ghost",...a,children:i??(0,z.jsx)(u,{size:14})})};var wi="horizontal",wn=["horizontal","vertical"],wa=$.forwardRef((e,r)=>{var s;let{decorative:i,orientation:n=wi,...a}=e,o=(s=n,wn.includes(s))?n:wi;return(0,z.jsx)(er.div,{"data-orientation":o,...i?{role:"none"}:{"aria-orientation":"vertical"===o?o:void 0,role:"separator"},...a,ref:r})});wa.displayName="Separator",e.s(["Root",()=>wa,"Separator",()=>wa],691102),e.i(691102),(0,s_.cva)("flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"}},defaultVariants:{orientation:"horizontal"}}),(0,ew.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var oF=oM;let wo=({className:e,from:r,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("group flex w-full max-w-[95%] flex-col gap-2","user"===r?"is-user ml-auto justify-end":"is-assistant",e),...s}),wl=({children:e,className:r,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("is-user:dark flex w-fit max-w-full min-w-0 flex-col gap-2 overflow-hidden text-sm","group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground","group-[.is-assistant]:text-foreground",r),...s,children:e}),wc=(0,$.memo)(({className:e,...r})=>(0,z.jsx)(oF.i,{className:(0,ey.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",e),...r}),(e,r)=>e.children===r.children);function wd({className:e,...r}){return(0,z.jsx)("div",{"data-slot":"skeleton",className:(0,ey.cn)("bg-accent animate-pulse rounded-md",e),...r})}function wu({projectId:e,symbol:r,branch:s,target:i,currentFile:n,anchor:a,onJump:o,onClose:l}){let[c,d]=(0,$.useState)(!0),[u,h]=(0,$.useState)([]),[f,p]=(0,$.useState)(!1),m=(0,$.useRef)(null);(0,$.useEffect)(()=>{let n=!0;return d(!0),rv.api.searchSymbol(e,r,s,i).then(e=>{n&&(h(e.hits),p(e.truncated))}).catch(()=>{n&&h([])}).finally(()=>{n&&d(!1)}),()=>{n=!1}},[e,r,s,i]),(0,$.useEffect)(()=>{let e=e=>{e.detail>=2||m.current&&!m.current.contains(e.target)&&l()},s=e=>{if("Escape"===e.key)return void l();if((e.metaKey||e.ctrlKey)&&("c"===e.key||"C"===e.key)){let s=window.getSelection();if(s&&s.rangeCount>0&&!s.isCollapsed)return;e.preventDefault(),navigator.clipboard?.writeText(r)}};return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s)}},[l,r]);let g=(e,r)=>Number(r.file===n)-Number(e.file===n),x=u.filter(e=>"definition"===e.kind).sort(g),v=u.filter(e=>"reference"===e.kind).sort(g),_=Math.max(8,Math.min(a.x,window.innerWidth-440-8)),y=window.innerHeight-8-(a.y+18),b=a.y-18-8,w=y>=340||y>=b,S=Math.max(120,Math.min(340,w?y:b)),C=w?{top:a.y+18}:{bottom:window.innerHeight-(a.y-18)},j=({hit:e})=>(0,z.jsxs)("button",{type:"button",onClick:()=>{o(e.file,e.line),l()},className:"flex w-full flex-col items-start gap-0.5 rounded px-2 py-1.5 text-left hover:bg-accent",children:[(0,z.jsxs)("span",{className:"flex w-full items-baseline justify-between gap-2",children:[(0,z.jsxs)("span",{className:"truncate font-mono text-xs",children:[e.file.split("/").pop(),(0,z.jsxs)("span",{className:"text-muted-foreground",children:[":",e.line]})]}),e.file===n&&(0,z.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:"this file"})]}),(0,z.jsx)("code",{className:"w-full truncate text-xs text-muted-foreground",children:e.text.trim()})]}),k=({title:e,children:r})=>(0,z.jsxs)("div",{className:"mb-1",children:[(0,z.jsx)("div",{className:"px-2 py-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground",children:e}),r]});return(0,ee.createPortal)((0,z.jsxs)("div",{ref:m,style:{left:_,...C,width:440,maxHeight:S},className:"fixed z-50 flex flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-lg select-none",children:[(0,z.jsx)("div",{className:"border-b px-3 py-1.5 text-xs font-medium",children:(0,z.jsx)("span",{className:"font-mono",children:r})}),(0,z.jsx)("div",{className:"flex-1 overflow-auto p-1",children:c?(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"})," Searching…"]}):0===u.length?(0,z.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"No results."}):(0,z.jsxs)(z.Fragment,{children:[x.length>0&&(0,z.jsx)(k,{title:`Definitions (${x.length})`,children:x.map((e,r)=>(0,z.jsx)(j,{hit:e},`d-${r}`))}),v.length>0&&(0,z.jsx)(k,{title:`References (${v.length})`,children:v.map((e,r)=>(0,z.jsx)(j,{hit:e},`r-${r}`))}),f&&(0,z.jsx)("div",{className:"px-2 py-1.5 text-[11px] text-muted-foreground",children:"Showing first matches — results truncated."})]})})]}),document.body)}wc.displayName="MessageResponse";let wh=(0,ew.default)("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]);function wf({projectId:e,filePath:r,branch:s,target:i,onDownload:n}){let[a,o]=(0,$.useState)(null),[l,c]=(0,$.useState)(!1);return((0,$.useEffect)(()=>{let n=null,a=!1;return rv.api.getFileBlob(e,r,s,i).then(e=>{a||o(n=URL.createObjectURL(e))}).catch(()=>{a||c(!0)}),()=>{a=!0,n&&URL.revokeObjectURL(n)}},[e,r,s,i]),l)?(0,z.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-muted-foreground",children:[(0,z.jsx)(wh,{className:"h-10 w-10"}),(0,z.jsx)("p",{className:"text-sm",children:"Couldn't load image"}),(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:n,children:[(0,z.jsx)(bY,{className:"h-4 w-4 mr-2"}),"Download"]})]}):a?(0,z.jsx)("div",{className:"flex items-center justify-center h-full p-4 bg-muted/30",children:(0,z.jsx)("img",{src:a,alt:r.split("/").pop()??"image",className:"max-w-full max-h-full object-contain",onError:()=>c(!0)})}):(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,z.jsx)(rk,{className:"h-6 w-6 animate-spin"})})}async function wp(e,r){let s=await (0,b8.codeToTokensBase)(e,{lang:r,theme:"one-light",includeExplanation:"scopeName"}),i=new Map;return s.forEach((e,r)=>{let s=0,n=[];for(let r of e){let e=(r.explanation??[]).flatMap(e=>e.scopes.map(e=>e.scopeName)),i=s+r.content.length;n.push({start:s,end:i,kind:e.some(e=>e.startsWith("comment"))?"comment":e.some(e=>e.startsWith("string")||e.startsWith("constant.character"))?"string":e.some(e=>e.startsWith("keyword")||e.startsWith("storage")||e.startsWith("constant.language")||e.startsWith("variable.language"))?"keyword":"code"}),s=i}i.set(r+1,n)}),i}let wm=new Set(["png","jpg","jpeg","gif","webp","bmp","ico","avif","svg"]);function wg(e){let r=e.split("/").pop()?.split(".").pop()?.toLowerCase()??"";return wm.has(r)}let wx=/^[A-Za-z_$][A-Za-z0-9_$]*$/,wv="symbol-nav";function w_(e,r,s){let i=document.createRange();return i.selectNodeContents(e),i.setEnd(r,s),i.toString().length}function wy(e,r){let s,i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0;for(;s=i.nextNode();){let e=(s.textContent??"").length;if(r<=n+e)return{node:s,offset:r-n};n+=e}return null}function wb(e){let r=Array.from(document.querySelectorAll(`[data-line="${CSS.escape(e.line)}"]`)),s=r.find(e=>null!==e.offsetParent)??r[0];if(!s)return null;let i=wy(s,e.start),n=wy(s,e.end);if(!i||!n)return null;let a=document.createRange();return a.setStart(i.node,i.offset),a.setEnd(n.node,n.offset),a}let ww=/[A-Za-z0-9_$]/;function wS(e,r,s){let i=document,n=null,a=0;if(i.caretRangeFromPoint){let s=i.caretRangeFromPoint(e,r);s&&(n=s.startContainer,a=s.startOffset)}else if(i.caretPositionFromPoint){let s=i.caretPositionFromPoint(e,r);s&&(n=s.offsetNode,a=s.offset)}if(!n||n.nodeType!==Node.TEXT_NODE)return null;let o=n.textContent??"",l=a,c=a;for(;l>0&&ww.test(o[l-1]);)l--;for(;c<o.length&&ww.test(o[c]);)c++;if(l>=c)return null;let d=o.slice(l,c);if(!wx.test(d))return null;let u=document.createRange();u.setStart(n,l),u.setEnd(n,c);let h=function(e){let r=e.startContainer.nodeType===Node.ELEMENT_NODE?e.startContainer:e.startContainer.parentElement,s=r?.closest("[data-line]");if(!s||!s.contains(e.endContainer))return null;let i=s.getAttribute("data-line");if(null===i)return null;let n=w_(s,e.startContainer,e.startOffset),a=w_(s,e.endContainer,e.endOffset);return n>=a?null:{line:i,start:n,end:a}}(u);if(!h)return null;if(s){let e=h.start-h.line.length,r=function(e,r,s){let i=e.get(r);if(!i)return null;for(let e of i)if(s>=e.start&&s<e.end)return e.kind;return null}(s,Number(h.line),e);if(r&&"code"!==r)return null}return{word:d,anchor:h}}function wC(){return"undefined"!=typeof CSS&&"highlights"in CSS&&"undefined"!=typeof Highlight}let wj=!1;function wk(){wC()&&CSS.highlights.delete(wv)}let wN={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",cs:"csharp",css:"css",scss:"scss",html:"html",vue:"vue",svelte:"svelte",php:"php",swift:"swift",kt:"kotlin",sh:"bash",bash:"bash",zsh:"bash",yaml:"yaml",yml:"yaml",toml:"toml",json:"json",xml:"xml",sql:"sql",graphql:"graphql",md:"markdown",mdx:"mdx",dockerfile:"dockerfile",makefile:"makefile",lua:"lua",r:"r",scala:"scala",zig:"zig"};function wE(e){let r=e.split("/").pop()?.toLowerCase()??"";return"dockerfile"===r?"dockerfile":"makefile"===r?"makefile":wN[r.split(".").pop()?.toLowerCase()??""]??"text"}function wD(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function wR({filePath:e,fileContent:r,loading:s,downloadUrl:i,projectId:n,branch:a,target:o,scrollToLine:l,scrollKey:c,onJump:d,restoreScrollTop:u,restoreScrollKey:h,onScroll:f}){let p,[m,g]=(0,$.useState)("rendered"),[x,v]=(0,$.useState)(e),[_,y]=(0,$.useState)(null),b=(0,$.useRef)(null),w=(0,$.useRef)(null),S=(0,$.useRef)(!1);(0,$.useEffect)(()=>{S.current=null!==_},[_]);let C=(0,$.useCallback)(e=>{if(e.detail>=2){let r=window.getSelection();if(S.current){r?.removeAllRanges(),y(e=>e?{...e,selectWord:!0}:e);return}let s=wS(e.clientX,e.clientY),i=s?wb(s.anchor):null;i&&(r?.removeAllRanges(),r?.addRange(i));return}let r=window.getSelection();if(r&&!r.isCollapsed)return;let s=wS(e.clientX,e.clientY,b.current);s&&(r?.removeAllRanges(),y({symbol:s.word,x:e.clientX,y:e.clientY,anchor:s.anchor,selectWord:!1}))},[]),j=(0,$.useCallback)(e=>{e.detail>=2&&e.preventDefault()},[]);(0,$.useEffect)(()=>{if(!_?.anchor)return void wk();let e=wb(_.anchor);if(!e)return void wk();if(_.selectWord){wk();let r=window.getSelection();r?.removeAllRanges(),r?.addRange(e);return}return wC()?(!function(){if(wj||"undefined"==typeof document)return;wj=!0;let e=document.createElement("style");e.textContent=`::highlight(${wv}){background-color:rgba(255, 196, 0, 0.32);}`,document.head.appendChild(e)}(),CSS.highlights.set(wv,new Highlight(e)),wk):void wk()},[_]),(0,$.useEffect)(()=>{b.current=null;let s=r?.content;if(!e||null==s||r?.binary||r?.tooLarge)return;let i=!1;return wp(s,wE(e)).then(e=>{i||(b.current=e)}).catch(()=>{}),()=>{i=!0}},[e,r]);let k=(0,$.useRef)(null),N=(0,$.useRef)(null),E=(0,$.useCallback)(e=>{let r=k.current;if(!r)return;let s=r.querySelector(`[id="${CSS.escape(e)}"]`);if(!s)return;N.current?.();let i=()=>s.scrollIntoView({block:"start",behavior:"auto"});i();let n=new ResizeObserver(i);n.observe(r);let a=()=>{n.disconnect(),window.clearTimeout(o),window.removeEventListener("wheel",a),window.removeEventListener("touchmove",a),window.removeEventListener("keydown",a),N.current=null},o=window.setTimeout(a,1e3);window.addEventListener("wheel",a,{passive:!0}),window.addEventListener("touchmove",a,{passive:!0}),window.addEventListener("keydown",a),N.current=a},[]);(0,$.useEffect)(()=>()=>N.current?.(),[]);let D=(0,$.useRef)(null),R=(0,$.useRef)(!1),A=(0,$.useRef)(f);A.current=f;let M=(0,$.useRef)(null),F=(0,$.useRef)(null),T=(0,$.useCallback)(e=>{if(R.current)return;let r=e.currentTarget.scrollTop;M.current&&clearTimeout(M.current),M.current=setTimeout(()=>A.current?.(r),200)},[]);(0,$.useEffect)(()=>{void 0!==h&&(F.current=u??0)},[h,u]),(0,$.useEffect)(()=>{let e=D.current;e&&(e.scrollTop=0)},[e]),(0,$.useEffect)(()=>{let e=F.current;if(null==e)return;let r=D.current;if(!r||(F.current=null,!e))return;R.current=!0;let s=()=>{r.scrollTop=e};s();let i=new ResizeObserver(s);i.observe(r.firstElementChild??r);let n=()=>{R.current=!1,i.disconnect(),window.clearTimeout(a),r.removeEventListener("wheel",n),r.removeEventListener("touchmove",n),r.removeEventListener("keydown",n)},a=window.setTimeout(n,1500);return r.addEventListener("wheel",n,{passive:!0}),r.addEventListener("touchmove",n,{passive:!0}),r.addEventListener("keydown",n),n},[r]);let P=(0,$.useMemo)(()=>[...Object.values(b4.e),b3],[]),B=(0,$.useMemo)(()=>({a:({href:e,children:r,className:s,node:i,...n})=>{let a="string"==typeof e&&e.startsWith("#");return(0,z.jsx)("a",{href:e,className:(0,ey.cn)("wrap-anywhere font-medium text-primary underline",s),"data-streamdown":"link",...a?{onClick:r=>{r.preventDefault(),E(decodeURIComponent(e.slice(1)))}}:{target:"_blank",rel:"noreferrer"},...n,children:r})}}),[E]);if(e!==x&&(v(e),g("rendered"),y(null)),!e)return(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Select a file to preview."});if(s)return(0,z.jsxs)("div",{className:"flex flex-col h-full",children:[(0,z.jsx)("div",{className:"flex items-center justify-between px-4 py-2 border-b flex-shrink-0",children:(0,z.jsx)(wd,{className:"h-4 w-48"})}),(0,z.jsxs)("div",{className:"flex-1 p-4",children:[(0,z.jsx)(wd,{className:"h-4 w-full mb-2"}),(0,z.jsx)(wd,{className:"h-4 w-3/4 mb-2"}),(0,z.jsx)(wd,{className:"h-4 w-5/6 mb-2"}),(0,z.jsx)(wd,{className:"h-4 w-2/3"})]})]});if(!r)return(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Failed to load file."});let L=()=>{e&&rv.api.downloadFile(n,e,a,o).catch(e=>{console.error("Failed to download file",e)})},I=("markdown"===(p=wE(e))||"mdx"===p)&&!r.tooLarge&&!r.binary&&!!r.content,O=I&&"rendered"===m,H=!r.tooLarge&&!r.binary&&!O&&null!==r.content;return(0,z.jsxs)("div",{className:"flex flex-col h-full",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b flex-shrink-0 gap-2",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-mono truncate",children:e}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground shrink-0",children:wD(r.size)})]}),(0,z.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[I&&(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>g(e=>"rendered"===e?"source":"rendered"),title:O?"View source":"View rendered",children:O?(0,z.jsx)(bX,{className:"h-3.5 w-3.5"}):(0,z.jsx)(_O,{className:"h-3.5 w-3.5"})}),H&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>w.current?.foldAll(),title:"Fold all",children:(0,z.jsx)(bJ,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>w.current?.expandAll(),title:"Expand all",children:(0,z.jsx)(bZ,{className:"h-3.5 w-3.5"})})]}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>{navigator.clipboard.writeText(e)},title:"Copy path",children:(0,z.jsx)(ul.Copy,{className:"h-3.5 w-3.5"})}),i&&(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:L,title:"Download",children:(0,z.jsx)(bY,{className:"h-3.5 w-3.5"})})]})]}),(0,z.jsx)("div",{className:"flex-1 overflow-auto",ref:D,onScroll:T,children:r.tooLarge?(0,z.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-muted-foreground",children:[(0,z.jsx)(bG,{className:"h-10 w-10"}),(0,z.jsxs)("p",{className:"text-sm",children:["File too large to preview (",wD(r.size),")"]}),i&&(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:L,children:[(0,z.jsx)(bY,{className:"h-4 w-4 mr-2"}),"Download"]})]}):r.binary&&wg(e)&&r.size<=0xa00000?(0,z.jsx)(wf,{projectId:n,filePath:e,branch:a,target:o,onDownload:L},e):r.binary?(0,z.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-muted-foreground",children:[(0,z.jsx)(bG,{className:"h-10 w-10"}),(0,z.jsx)("p",{className:"text-sm",children:wg(e)?`Image too large to preview (${wD(r.size)})`:`Binary file (${wD(r.size)})`}),i&&(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:L,children:[(0,z.jsx)(bY,{className:"h-4 w-4 mr-2"}),"Download"]})]}):O?(0,z.jsx)("div",{className:"p-4",style:{fontSize:"var(--files-content-font-size, 14px)"},ref:k,children:(0,z.jsx)(wc,{components:B,rehypePlugins:P,children:r.content??""})}):null!==r.content?(0,z.jsx)("div",{className:"h-full [&_pre]:text-[length:var(--files-content-font-size,14px)]! [&_code]:text-[length:var(--files-content-font-size,14px)]!",onMouseDown:j,onClick:C,children:(0,z.jsx)(wr,{ref:w,code:r.content,language:wE(e),showLineNumbers:!0,foldable:!0,scrollToLine:l,scrollKey:c,className:"border-0 rounded-none",children:(0,z.jsx)(ws,{})})}):(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Empty file."})}),_&&(0,z.jsx)(wu,{projectId:n,symbol:_.symbol,branch:a,target:o,currentFile:e,anchor:{x:_.x,y:_.y},onJump:d,onClose:()=>y(null)})]})}class wA{capacity;map;constructor(e){if(this.capacity=e,this.map=new Map,e<1)throw Error("LRUCache capacity must be at least 1")}get(e){if(!this.map.has(e))return;let r=this.map.get(e);return this.map.delete(e),this.map.set(e,r),r}has(e){return this.map.has(e)}set(e,r){for(this.map.has(e)&&this.map.delete(e),this.map.set(e,r);this.map.size>this.capacity;){let e=this.map.keys().next().value;if(void 0===e)break;this.map.delete(e)}}delete(e){return this.map.delete(e)}deleteWhere(e){for(let r of[...this.map.keys()])e(r)&&this.map.delete(r)}clear(){this.map.clear()}get size(){return this.map.size}}let wM="vibedeckx:files:views";function wF(){return{v:1,views:{}}}function wT(){try{let e=localStorage.getItem(wM);if(!e)return wF();let r=JSON.parse(e);if(!r||1!==r.v||!r.views||"object"!=typeof r.views)return wF();return r}catch{return wF()}}function wP(e){try{localStorage.setItem(wM,JSON.stringify(e))}catch{}}function wB(e){return e.slice(e.lastIndexOf("\0")+1)}let wL=new Set(["/","-","_","."," "]);function wI({projectId:e,project:r,selectedBranch:s,navRequest:i}){let n=r&&!r.path?"remote":void 0,[a,o]=(0,$.useState)(!1),{settings:l}=(0,dh.useConversationSettings)(),c=(0,$.useRef)(null),[d,u]=(0,$.useState)(!1),h=(0,$.useCallback)(()=>{let e=c.current;e&&(e.isCollapsed()?e.expand():e.collapse())},[]),{rootEntries:f,directoryContents:p,expandedDirs:m,selectedFile:g,fileContent:x,fileLoading:v,rootLoading:_,loadingDirs:y,uploadingDirs:b,deletingPaths:w,jumpTarget:S,canGoBack:C,canGoForward:j,fetchRoot:k,refresh:N,reportScroll:E,restoreScroll:D,toggleDirectory:R,navigate:A,jumpTo:M,goBack:F,goForward:T,uploadFiles:P,deleteEntry:B}=function({projectId:e,branch:r,target:s,showHidden:i=!1}){let[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)(new Map),[c,d]=(0,$.useState)(new Set),[u,h]=(0,$.useState)(null),[f,p]=(0,$.useState)(null),[m,g]=(0,$.useState)(null),x=(0,$.useRef)(0),[v,_]=(0,$.useState)({entries:[],index:-1}),y=(0,$.useRef)(v);y.current=v;let[b,w]=(0,$.useState)(!1),[S,C]=(0,$.useState)(!1),[j,k]=(0,$.useState)(new Set),[N,E]=(0,$.useState)(new Set),[D,R]=(0,$.useState)(new Set),A=(0,$.useRef)(0),M=(0,$.useRef)(0),F=(0,$.useRef)(new wA(50)),T=e?[e,r??"",s??""].join("|"):null,P=(0,$.useRef)(T);P.current=T;let B=(0,$.useRef)(u);B.current=u;let L=(0,$.useRef)(0),I=(0,$.useRef)(null),O=(0,$.useRef)(0),[z,W]=(0,$.useState)(null),H=(0,$.useRef)(null),U=(0,$.useCallback)(i=>[e,r??"",s??"",i].join("\0"),[e,r,s]),K=(0,$.useCallback)(()=>{let e,r,s=P.current;if(!s||I.current!==s)return;let i={selectedFile:B.current,history:y.current,scrollTop:L.current};(e=wT()).views[s]={...i,updatedAt:Date.now()},(r=Object.keys(e.views)).length>30&&r.sort((r,s)=>e.views[r].updatedAt-e.views[s].updatedAt).slice(0,r.length-30).forEach(r=>delete e.views[r]),wP(e)},[]),q=(0,$.useCallback)(()=>{H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{H.current=null,K()},300)},[K]),V=(0,$.useCallback)(e=>{L.current=e,q()},[q]);(0,$.useEffect)(()=>{q()},[u,v,q]);let Y=(0,$.useCallback)(async n=>{if(e&&(d(e=>{let r=new Set(e);return r.has(n)?r.delete(n):r.add(n),r}),!o.has(n))){k(e=>new Set(e).add(n));try{let a=await rv.api.browseProjectDirectory(e,n,r,s,i);l(e=>{let r=new Map(e);return r.set(n,a.items),r})}catch(e){console.error("Failed to browse directory:",e),xg.toast.error(`Failed to open ${n}`,{description:e instanceof Error?e.message:String(e)})}finally{k(e=>{let r=new Set(e);return r.delete(n),r})}}},[e,r,s,i,o]),G=(0,$.useCallback)(async i=>{if(!e)return"failed";let n=U(i),a=F.current.get(n);if(a)return p(a),w(!1),"loaded";let o=++M.current;w(!0),p(null);try{let a=await rv.api.getFileContent(e,i,r,s);if(o!==M.current)return"stale";return F.current.set(n,a),p(a),"loaded"}catch(e){if(o!==M.current)return"stale";return console.error("Failed to get file content:",e),p(null),"failed"}finally{o===M.current&&w(!1)}},[e,r,s,U]),X=(0,$.useCallback)(async r=>{e&&(h(r),await G(r))},[e,G]),J=(0,$.useCallback)(async()=>{if(!e)return!1;C(!0);let n=++A.current;try{let o=await rv.api.browseProjectDirectory(e,void 0,r,s,i);if(n!==A.current)return!1;return a(o.items),l(new Map),d(new Set),!0}catch(e){if(console.error("Failed to browse root directory:",e),n!==A.current)return!1;return a([]),xg.toast.error("Failed to browse files",{description:e instanceof Error?e.message:String(e)}),!1}finally{n===A.current&&C(!1)}},[e,r,s,i]),Z=(0,$.useCallback)(async()=>{let r;if(!e||!await J())return;let s=P.current,i=s?(r=wT().views[s])&&"object"==typeof r&&(null===r.selectedFile||"string"==typeof r.selectedFile)&&r.history&&"object"==typeof r.history&&Array.isArray(r.history.entries)&&"number"==typeof r.history.index?{selectedFile:r.selectedFile,history:r.history,scrollTop:"number"==typeof r.scrollTop&&Number.isFinite(r.scrollTop)?r.scrollTop:0}:null:null;if(s&&i&&i.selectedFile){if(_(i.history.entries.length?i.history:{entries:[{path:i.selectedFile,line:null}],index:0}),L.current=i.scrollTop,W({top:i.scrollTop,nonce:++O.current}),h(i.selectedFile),I.current=s,"failed"===await G(i.selectedFile)){let e;h(null),_({entries:[],index:-1}),L.current=0,(e=wT()).views[s]&&(delete e.views[s],wP(e))}}else h(null),p(null),_({entries:[],index:-1}),L.current=0,I.current=s},[e,J,G]),Q=(0,$.useCallback)(async()=>{if(!e||(F.current.clear(),!await J()))return;let r=B.current;r&&await G(r)},[e,J,G]),ee=(0,$.useCallback)(async(e,r=null)=>{_(({entries:s,index:i})=>{let n=s[i];if(n&&n.path===e){let n=s.slice();return n[i]={path:e,line:r},{entries:n,index:i}}let a=s.slice(0,i+1);return{entries:[...a,{path:e,line:r}],index:a.length}}),await X(e),null!=r&&g({line:r,nonce:++x.current})},[X]),et=(0,$.useCallback)((e,r)=>ee(e,r),[ee]),er=(0,$.useCallback)(()=>{let{entries:e,index:r}=y.current;if(r<=0)return;let s=e[r-1];_(e=>({...e,index:e.index-1})),X(s.path),null!=s.line&&g({line:s.line,nonce:++x.current})},[X]),es=(0,$.useCallback)(()=>{let{entries:e,index:r}=y.current;if(r>=e.length-1)return;let s=e[r+1];_(e=>({...e,index:e.index+1})),X(s.path),null!=s.line&&g({line:s.line,nonce:++x.current})},[X]),ei=(0,$.useCallback)(async n=>{if(e)if(""===n)a((await rv.api.browseProjectDirectory(e,void 0,r,s,i)).items);else{let a=await rv.api.browseProjectDirectory(e,n,r,s,i);l(e=>{let r=new Map(e);return r.set(n,a.items),r})}},[e,r,s,i]),en=(0,$.useCallback)(async(i,n)=>{if(e&&0!==n.length){E(e=>new Set(e).add(i));try{let{uploaded:a}=await rv.api.uploadFiles(e,n,i,r,s),o=new Set(a.map(e=>i?`${i}/${e}`:e));F.current.deleteWhere(e=>o.has(wB(e))),""!==i&&d(e=>new Set(e).add(i)),await ei(i),xg.toast.success(`Uploaded ${a.length} file${1===a.length?"":"s"}`)}catch(e){console.error("Failed to upload files:",e),xg.toast.error("Upload failed",{description:e instanceof Error?e.message:String(e)})}finally{E(e=>{let r=new Set(e);return r.delete(i),r})}}},[e,r,s,ei]),ea=(0,$.useCallback)(async i=>{if(e&&i){R(e=>new Set(e).add(i));try{await rv.api.deleteFile(e,i,r,s),F.current.deleteWhere(e=>{let r=wB(e);return r===i||r.startsWith(`${i}/`)}),h(e=>e===i||e&&e.startsWith(`${i}/`)?(p(null),null):e);let n=i.includes("/")?i.slice(0,i.lastIndexOf("/")):"";await ei(n),xg.toast.success("Deleted")}catch(e){console.error("Failed to delete:",e),xg.toast.error("Delete failed",{description:e instanceof Error?e.message:String(e)})}finally{R(e=>{let r=new Set(e);return r.delete(i),r})}}},[e,r,s,ei]);return{rootEntries:n,directoryContents:o,expandedDirs:c,selectedFile:u,fileContent:f,fileLoading:b,rootLoading:S,loadingDirs:j,uploadingDirs:N,deletingPaths:D,jumpTarget:m,canGoBack:v.index>0,canGoForward:v.index<v.entries.length-1,fetchRoot:Z,refresh:Q,reportScroll:V,restoreScroll:z,toggleDirectory:Y,selectFile:X,navigate:ee,jumpTo:et,goBack:er,goForward:es,uploadFiles:en,refreshDirectory:ei,deleteEntry:ea}}({projectId:e,branch:s,target:n,showHidden:a}),L=function({projectId:e,branch:r,target:s}){let[i,n]=(0,$.useState)([]),[a,o]=(0,$.useState)(!1),[l,c]=(0,$.useState)(!1),[d,u]=(0,$.useState)(!1),[h,f]=(0,$.useState)(""),p=(0,$.useRef)(0);(0,$.useEffect)(()=>{n([]),o(!1),u(!1),c(!1),f(""),p.current++},[e,r,s]);let m=(0,$.useCallback)(async()=>{if(!e)return;c(!0);let i=++p.current;try{let a=await rv.api.listProjectFiles(e,r,s);if(i!==p.current)return;n(a.files),o(a.truncated),u(!0)}catch(e){if(i!==p.current)return;n([]),u(!1),xg.toast.error("Failed to load file list",{description:e instanceof Error?e.message:String(e)})}finally{i===p.current&&c(!1)}},[e,r,s]),g=(0,$.useCallback)(()=>{d||l||m()},[d,l,m]),x=(0,$.useCallback)(()=>{u(!1),p.current++,h&&m()},[h,m]),v=(0,$.useDeferredValue)(h);return{query:h,setQuery:f,results:(0,$.useMemo)(()=>(function(e,r,s){if(!r.trim())return[];let i=[];for(let s of e){let e=function(e,r){let s=e.toLowerCase().replace(/\s+/g,"");if(!s)return null;let i=r.toLowerCase(),n=r.lastIndexOf("/")+1,a=0,o=0,l=-2;for(let e=0;e<s.length;e++){let c=s[e],d=-1;for(;o<i.length;o++)if(i[o]===c){d=o;break}if(-1===d)return null;let u=1;d===l+1&&(u+=5),d>=n&&(u+=3);let h=d>0?r[d-1]:"/";(0===d||d===n||wL.has(h))&&(u+=4),a+=u,l=d,o=d+1}return a+.1*Math.max(0,40-r.length)}(r,s);null!==e&&i.push({path:s,score:e})}return i.sort((e,r)=>r.score-e.score||e.path.length-r.path.length),i.slice(0,50)})(i,v,0),[i,v]),truncated:a,loading:l,loaded:d,ensureLoaded:g,refresh:x}}({projectId:e,branch:s,target:n});(0,$.useEffect)(()=>{k()},[k]),(0,$.useEffect)(()=>{i&&(null!=i.line?M(i.path,i.line):A(i.path))},[i?.nonce]);let I=(0,$.useCallback)(()=>{N(),L.refresh()},[N,L]),O=(0,$.useCallback)(e=>{A(e),L.setQuery("")},[A,L]);if(!e)return(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(_v,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to browse files."})]})});let H=g&&e?rv.api.getFileDownloadUrl(e,g,s,n):null;return(0,z.jsxs)("div",{className:"flex flex-col h-full",style:{"--files-tree-font-size":`${l.filesTreeFontSize}px`,"--files-content-font-size":`${l.filesContentFontSize}px`},children:[(0,z.jsx)(lb,{title:"Files",actions:(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:h,title:d?"Show file tree":"Hide file tree","aria-pressed":!d,children:d?(0,z.jsx)(_W,{className:"h-3.5 w-3.5"}):(0,z.jsx)(_$,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:`h-7 w-7 hover:text-foreground ${a?"text-foreground":"text-muted-foreground"}`,onClick:()=>o(e=>!e),title:a?"Hide hidden files":"Show hidden files","aria-pressed":a,children:a?(0,z.jsx)(_O,{className:"h-3.5 w-3.5"}):(0,z.jsx)(_z,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:F,disabled:!C,title:"Back",children:(0,z.jsx)(_H.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:T,disabled:!j,title:"Forward",children:(0,z.jsx)(_U,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:I,title:"Refresh",children:(0,z.jsx)(_v,{className:`h-3.5 w-3.5 ${_?"animate-spin":""}`})})]})}),(0,z.jsxs)(yQ,{direction:"horizontal",autoSaveId:"files-panels",className:"flex-1",children:[(0,z.jsx)(_2,{ref:c,collapsible:!0,collapsedSize:0,defaultSize:33,minSize:20,onCollapse:()=>u(!0),onExpand:()=>u(!1),children:(0,z.jsxs)(bR,{shouldFilter:!1,className:"flex h-full flex-col bg-transparent",children:[(0,z.jsx)("div",{className:"border-b p-2",children:(0,z.jsxs)(y1,{children:[(0,z.jsx)(y5,{children:(0,z.jsx)(dt,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(y6,{type:"search",name:"files-search",autoComplete:"off","data-1p-ignore":!0,"data-lpignore":"true","data-form-type":"other",readOnly:!0,onFocus:e=>{e.currentTarget.removeAttribute("readonly"),L.ensureLoaded()},placeholder:"Search files...",value:L.query,onChange:e=>L.setQuery(e.target.value)}),L.query&&(0,z.jsx)(y5,{align:"inline-end",children:(0,z.jsx)(y4,{size:"icon-xs","aria-label":"Clear search",onClick:()=>L.setQuery(""),children:(0,z.jsx)(t8,{className:"h-3.5 w-3.5"})})})]})}),L.query?(0,z.jsx)(bF,{className:"max-h-none flex-1",children:L.loading&&0===L.results.length?(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}),"Loading files…"]}):0===L.results.length?(0,z.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"No matching files."}):(0,z.jsxs)(z.Fragment,{children:[L.results.map(e=>{let r=e.path.lastIndexOf("/"),s=r>=0?e.path.slice(0,r+1):"",i=r>=0?e.path.slice(r+1):e.path;return(0,z.jsxs)(bB,{value:e.path,onSelect:()=>O(e.path),className:"flex-col items-start gap-0 text-[length:var(--files-tree-font-size,14px)]!",children:[(0,z.jsx)("span",{className:"font-medium",children:i}),s&&(0,z.jsx)("span",{className:"w-full truncate text-xs text-muted-foreground",children:s})]},e.path)}),L.truncated&&(0,z.jsx)("div",{className:"px-2 py-2 text-xs text-muted-foreground",children:"Showing first 50,000 files — refine your search to narrow results."})]})}):(0,z.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,z.jsx)(bV,{entries:f,expandedDirs:m,directoryContents:p,loadingDirs:y,selectedFile:g,uploadingDirs:b,rootLoading:_,deletingPaths:w,onToggleDirectory:R,onSelectFile:A,onUploadFiles:P,onDeleteEntry:B})})]})}),(0,z.jsx)(y0,{withHandle:!0}),(0,z.jsx)(_2,{defaultSize:67,minSize:25,children:(0,z.jsx)("div",{className:"h-full overflow-hidden",children:(0,z.jsx)(wR,{filePath:g,fileContent:x,loading:v,downloadUrl:H,projectId:e,branch:s,target:n,scrollToLine:S?.line??null,scrollKey:S?.nonce,onJump:M,restoreScrollTop:D?.top??null,restoreScrollKey:D?.nonce,onScroll:E})})})]})]})}let wO=(0,$.createContext)(null),wz={openFile:()=>{},index:null};function w$(){return(0,$.useContext)(wO)??wz}let wW=wO.Provider,wH=0;function wU(e){let r=e.lastIndexOf("/");return r>=0?e.slice(r+1):e}let wK=[500,1e3,2e3,4e3,8e3];async function wq(e,r={}){let s=r.delaysMs??wK,i=r.sleep??(e=>new Promise(r=>setTimeout(r,e))),n=r.cancelled??(()=>!1);for(let r=0;;r++){if(n())return null;let a=null;try{a=await e()}catch{a=null}if(n())return null;if(a&&a.files.length>0||r>=s.length)return a;await i(s[r])}}function wV({projectId:e,selectedBranch:r,onMergeRequest:s,project:i,onExecutorModeChange:n,agentSlot:a,activateAgentTabNonce:o,diffCompareNonce:l,mergeTarget:c,active:d=!0}){let[u,h]=function(e,r){let s=`vibedeckx:activeTab:${e??"none"}:${r??"main"}`,[i,n]=(0,$.useState)(()=>localStorage.getItem(s)??"agent");return(0,$.useEffect)(()=>{n(localStorage.getItem(s)??"agent")},[s]),[i,(0,$.useCallback)(e=>{n(e),localStorage.setItem(s,e)},[s])]}(e,r),f=(0,$.useRef)(o);(0,$.useEffect)(()=>{void 0===o||f.current!==o&&(f.current=o,h("agent"))},[o,h]);let p=(0,$.useRef)(l);(0,$.useEffect)(()=>{void 0===l||p.current!==l&&(p.current=l,h("diff"))},[l,h]);let m=function({projectId:e,branch:r,target:s,enabled:i=!0}){let[n,a]=(0,$.useState)(null),o=(0,$.useRef)(0);return(0,$.useEffect)(()=>{if(a(null),!i||!e)return;let n=++o.current;wq(()=>rv.api.listProjectFiles(e,r,s),{cancelled:()=>n!==o.current}).then(e=>{n===o.current&&e&&a(function(e){let r=`idx-${++wH}`,s=new Set(e),i=new Map;for(let r of e){let e=wU(r),s=i.get(e);s?s.push(r):i.set(e,[r])}return{version:r,resolve(e){if(!e)return[];let r=e.replace(/^\/+/,"");if(!r)return[];if(r.includes("/")){if(s.has(r))return[r];let e=wU(r);return(i.get(e)??[]).filter(e=>e===r||e.endsWith("/"+r)||r.endsWith("/"+e))}return i.get(r)??[]}}}(e.files))})},[e,r,s,i]),n}({projectId:e,branch:r,target:i&&!i.path?"remote":void 0,enabled:d}),g=(0,$.useRef)(0),[x,v]=(0,$.useState)(null),_=(0,$.useCallback)((e,r=null)=>{h("files"),v({path:e,line:r,nonce:++g.current})},[h]),y=(0,$.useMemo)(()=>({openFile:_,index:m}),[_,m]);return(0,z.jsx)(wW,{value:y,children:(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsx)("div",{className:"flex items-center px-3 gap-4 border-b border-border",children:[{id:"agent",icon:aE,label:"Agent"},{id:"executors",icon:aN,label:"Executors"},{id:"diff",icon:rw,label:"Diff"},{id:"terminal",icon:dl,label:"Terminal"},{id:"preview",icon:ry,label:"Browser"},{id:"files",icon:r_,label:"Files"}].map(({id:e,icon:r,label:s})=>(0,z.jsxs)($.Fragment,{children:[(0,z.jsxs)("button",{onClick:()=>h(e),className:(0,ey.cn)("flex items-center gap-0.5 py-2.5 text-xs font-medium border-b-2 transition-colors",u===e?"text-foreground border-primary":"text-muted-foreground border-transparent hover:text-foreground/70"),children:[(0,z.jsx)(r,{className:"h-3.5 w-3.5"}),s]}),"agent"===e&&(0,z.jsx)("span",{className:"h-4 w-px bg-border/60 mx-1.5","aria-hidden":!0})]},e))}),(0,z.jsxs)("div",{className:"relative flex-1 overflow-hidden",children:[(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","agent"!==u&&"invisible pointer-events-none"),children:a}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","executors"!==u&&"hidden"),children:(0,z.jsx)(_x,{projectId:e,selectedBranch:r,project:i,onExecutorModeChange:n})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","diff"!==u&&"hidden"),children:(0,z.jsx)(_E,{projectId:e,selectedBranch:r,onMergeRequest:s,project:i,mergeTarget:c,compareRequestNonce:l})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","terminal"!==u&&"hidden"),children:(0,z.jsx)(_R,{projectId:e,selectedBranch:r,project:i})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","preview"!==u&&"hidden"),children:(0,z.jsx)(_I,{projectId:e,selectedBranch:r,project:i})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","files"!==u&&"hidden"),children:(0,z.jsx)(wI,{projectId:e,project:i,selectedBranch:r,navRequest:x})})]})]})})}var wY=Symbol.for("immer-nothing"),wG=Symbol.for("immer-draftable"),wX=Symbol.for("immer-state");function wJ(e){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var wZ=Object.getPrototypeOf;function wQ(e){return!!e&&!!e[wX]}function w0(e){return!!e&&(w5(e)||Array.isArray(e)||!!e[wG]||!!e.constructor?.[wG]||w7(e)||w9(e))}var w1=Object.prototype.constructor.toString(),w2=new WeakMap;function w5(e){if(!e||"object"!=typeof e)return!1;let r=Object.getPrototypeOf(e);if(null===r||r===Object.prototype)return!0;let s=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;if(s===Object)return!0;if("function"!=typeof s)return!1;let i=w2.get(s);return void 0===i&&(i=Function.toString.call(s),w2.set(s,i)),i===w1}function w3(e,r,s=!0){0===w4(e)?(s?Reflect.ownKeys(e):Object.keys(e)).forEach(s=>{r(s,e[s],e)}):e.forEach((s,i)=>r(i,s,e))}function w4(e){let r=e[wX];return r?r.type_:Array.isArray(e)?1:w7(e)?2:3*!!w9(e)}function w6(e,r){return 2===w4(e)?e.has(r):Object.prototype.hasOwnProperty.call(e,r)}function w8(e,r,s){let i=w4(e);2===i?e.set(r,s):3===i?e.add(s):e[r]=s}function w7(e){return e instanceof Map}function w9(e){return e instanceof Set}function Se(e){return e.copy_||e.base_}function St(e,r){if(w7(e))return new Map(e);if(w9(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let s=w5(e);if(!0!==r&&("class_only"!==r||s)){let r=wZ(e);return null!==r&&s?{...e}:Object.assign(Object.create(r),e)}{let r=Object.getOwnPropertyDescriptors(e);delete r[wX];let s=Reflect.ownKeys(r);for(let i=0;i<s.length;i++){let n=s[i],a=r[n];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(r[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]})}return Object.create(wZ(e),r)}}function Sr(e,r=!1){return Si(e)||wQ(e)||!w0(e)||(w4(e)>1&&Object.defineProperties(e,{set:Ss,add:Ss,clear:Ss,delete:Ss}),Object.freeze(e),r&&Object.values(e).forEach(e=>Sr(e,!0))),e}var Ss={value:function(){wJ(2)}};function Si(e){return null===e||"object"!=typeof e||Object.isFrozen(e)}var Sn={};function Sa(e){let r=Sn[e];return r||wJ(0,e),r}function So(e,r){r&&(Sa("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function Sl(e){Sc(e),e.drafts_.forEach(Su),e.drafts_=null}function Sc(e){e===I&&(I=e.parent_)}function Sd(e){return I={drafts_:[],parent_:I,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Su(e){let r=e[wX];0===r.type_||1===r.type_?r.revoke_():r.revoked_=!0}function Sh(e,r){r.unfinalizedDrafts_=r.drafts_.length;let s=r.drafts_[0];return void 0!==e&&e!==s?(s[wX].modified_&&(Sl(r),wJ(4)),w0(e)&&(e=Sf(r,e),r.parent_||Sm(r,e)),r.patches_&&Sa("Patches").generateReplacementPatches_(s[wX].base_,e,r.patches_,r.inversePatches_)):e=Sf(r,s,[]),Sl(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==wY?e:void 0}function Sf(e,r,s){if(Si(r))return r;let i=e.immer_.shouldUseStrictIteration(),n=r[wX];if(!n)return w3(r,(i,a)=>Sp(e,n,r,i,a,s),i),r;if(n.scope_!==e)return r;if(!n.modified_)return Sm(e,n.base_,!0),n.base_;if(!n.finalized_){n.finalized_=!0,n.scope_.unfinalizedDrafts_--;let r=n.copy_,a=r,o=!1;3===n.type_&&(a=new Set(r),r.clear(),o=!0),w3(a,(i,a)=>Sp(e,n,r,i,a,s,o),i),Sm(e,r,!1),s&&e.patches_&&Sa("Patches").generatePatches_(n,s,e.patches_,e.inversePatches_)}return n.copy_}function Sp(e,r,s,i,n,a,o){if(null==n||"object"!=typeof n&&!o)return;let l=Si(n);if(!l||o){if(wQ(n)){let o=Sf(e,n,a&&r&&3!==r.type_&&!w6(r.assigned_,i)?a.concat(i):void 0);if(w8(s,i,o),!wQ(o))return;e.canAutoFreeze_=!1}else o&&s.add(n);if(w0(n)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||r&&r.base_&&r.base_[i]===n&&l)return;Sf(e,n),(!r||!r.scope_.parent_)&&"symbol"!=typeof i&&(w7(s)?s.has(i):Object.prototype.propertyIsEnumerable.call(s,i))&&Sm(e,n)}}}function Sm(e,r,s=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Sr(r,s)}var Sg={get(e,r){if(r===wX)return e;let s=Se(e);if(!w6(s,r)){var i;let n;return i=e,(n=S_(s,r))?"value"in n?n.value:n.get?.call(i.draft_):void 0}let n=s[r];return e.finalized_||!w0(n)?n:n===Sv(e.base_,r)?(Sb(e),e.copy_[r]=Sw(n,e)):n},has:(e,r)=>r in Se(e),ownKeys:e=>Reflect.ownKeys(Se(e)),set(e,r,s){let i=S_(Se(e),r);if(i?.set)return i.set.call(e.draft_,s),!0;if(!e.modified_){let i=Sv(Se(e),r),n=i?.[wX];if(n&&n.base_===s)return e.copy_[r]=s,e.assigned_[r]=!1,!0;if((s===i?0!==s||1/s==1/i:s!=s&&i!=i)&&(void 0!==s||w6(e.base_,r)))return!0;Sb(e),Sy(e)}return!!(e.copy_[r]===s&&(void 0!==s||r in e.copy_)||Number.isNaN(s)&&Number.isNaN(e.copy_[r]))||(e.copy_[r]=s,e.assigned_[r]=!0,!0)},deleteProperty:(e,r)=>(void 0!==Sv(e.base_,r)||r in e.base_?(e.assigned_[r]=!1,Sb(e),Sy(e)):delete e.assigned_[r],e.copy_&&delete e.copy_[r],!0),getOwnPropertyDescriptor(e,r){let s=Se(e),i=Reflect.getOwnPropertyDescriptor(s,r);return i?{writable:!0,configurable:1!==e.type_||"length"!==r,enumerable:i.enumerable,value:s[r]}:i},defineProperty(){wJ(11)},getPrototypeOf:e=>wZ(e.base_),setPrototypeOf(){wJ(12)}},Sx={};function Sv(e,r){let s=e[wX];return(s?Se(s):e)[r]}function S_(e,r){if(!(r in e))return;let s=wZ(e);for(;s;){let e=Object.getOwnPropertyDescriptor(s,r);if(e)return e;s=wZ(s)}}function Sy(e){!e.modified_&&(e.modified_=!0,e.parent_&&Sy(e.parent_))}function Sb(e){e.copy_||(e.copy_=St(e.base_,e.scope_.immer_.useStrictShallowCopy_))}function Sw(e,r){let s=w7(e)?Sa("MapSet").proxyMap_(e,r):w9(e)?Sa("MapSet").proxySet_(e,r):function(e,r){let s=Array.isArray(e),i={type_:+!!s,scope_:r?r.scope_:I,modified_:!1,finalized_:!1,assigned_:{},parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},n=i,a=Sg;s&&(n=[i],a=Sx);let{revoke:o,proxy:l}=Proxy.revocable(n,a);return i.draft_=l,i.revoke_=o,l}(e,r);return(r?r.scope_:I).drafts_.push(s),s}w3(Sg,(e,r)=>{Sx[e]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}}),Sx.deleteProperty=function(e,r){return Sx.set.call(this,e,r,void 0)},Sx.set=function(e,r,s){return Sg.set.call(this,e[0],r,s,e[0])};var SS=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,r,s)=>{let i;if("function"==typeof e&&"function"!=typeof r){let s=r;r=e;let i=this;return function(e=s,...n){return i.produce(e,e=>r.call(this,e,...n))}}if("function"!=typeof r&&wJ(6),void 0!==s&&"function"!=typeof s&&wJ(7),w0(e)){let n=Sd(this),a=Sw(e,void 0),o=!0;try{i=r(a),o=!1}finally{o?Sl(n):Sc(n)}return So(n,s),Sh(i,n)}if(e&&"object"==typeof e)wJ(1,e);else{if(void 0===(i=r(e))&&(i=e),i===wY&&(i=void 0),this.autoFreeze_&&Sr(i,!0),s){let r=[],n=[];Sa("Patches").generateReplacementPatches_(e,i,r,n),s(r,n)}return i}},this.produceWithPatches=(e,r)=>{let s,i;return"function"==typeof e?(r,...s)=>this.produceWithPatches(r,r=>e(r,...s)):[this.produce(e,r,(e,r)=>{s=e,i=r}),s,i]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),"boolean"==typeof e?.useStrictIteration&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){var r;w0(e)||wJ(8),wQ(e)&&(wQ(r=e)||wJ(10,r),e=function e(r){let s;if(!w0(r)||Si(r))return r;let i=r[wX],n=!0;if(i){if(!i.modified_)return i.base_;i.finalized_=!0,s=St(r,i.scope_.immer_.useStrictShallowCopy_),n=i.scope_.immer_.shouldUseStrictIteration()}else s=St(r,!0);return w3(s,(r,i)=>{w8(s,r,e(i))},n),i&&(i.finalized_=!1),s}(r));let s=Sd(this),i=Sw(e,void 0);return i[wX].isManual_=!0,Sc(s),i}finishDraft(e,r){let s=e&&e[wX];s&&s.isManual_||wJ(9);let{scope_:i}=s;return So(i,r),Sh(void 0,i)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,r){let s;for(s=r.length-1;s>=0;s--){let i=r[s];if(0===i.path.length&&"replace"===i.op){e=i.value;break}}s>-1&&(r=r.slice(s+1));let i=Sa("Patches").applyPatches_;return wQ(e)?i(e,r):this.produce(e,e=>i(e,r))}}().produce;let SC="vibedeckx:placeholder-workspaces";function Sj(e){try{window.localStorage.setItem(SC,JSON.stringify([...e]))}catch{}}let Sk=function(){try{let e=window.localStorage.getItem(SC);if(!e)return new Map;let r=JSON.parse(e);if(!Array.isArray(r))return new Map;let s=new Map;for(let e of r)Array.isArray(e)&&"string"==typeof e[0]&&"number"==typeof e[1]?s.set(e[0],e[1]):"string"==typeof e&&s.set(e,Date.now());return s}catch{return new Map}}(),SN=new Set,SE=new Map;function SD(){for(let e of SN)e()}function SR(e){return SN.add(e),()=>{SN.delete(e)}}function SA(){return Sk}function SM(){return SE}function SF(e,r,s){return`${e}:${r??""}:${s??""}`}function ST(e){if(!Sk.has(e))return!1;let r=new Map(Sk);return r.delete(e),Sj(Sk=r),SD(),!0}function SP(){return"localhost"===window.location.hostname&&"3000"===window.location.port?"http://localhost:5173":""}async function SB(e,r,s,i){let n=await (0,rv.authFetch)(`${SP()}/api/projects/${e}/agent-sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:r,permissionMode:s,agentType:i})});if(!n.ok)throw Error("Failed to load session");return n.json()}async function SL(e,r){let s=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})});if(!s.ok){let r="";try{let e=await s.json();if(e.errorCode){let s=[`${e.errorCode}`];e.attempts&&s.push(`${e.attempts} attempts`),e.totalDurationMs&&s.push(`${(e.totalDurationMs/1e3).toFixed(1)}s`),r=` (${s.join(", ")})`}else e.error&&(r=` — ${e.error}`)}catch{}throw console.error(`[AgentSession] /message failed: status=${s.status}, sessionId=${e}, detail=${r}`),Error(`Failed to send message [${s.status}]${r}`)}}async function SI(e,r){let s=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/paste`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})});if(!s.ok){let r="";try{let e=await s.json();if(e.errorCode){let s=[`${e.errorCode}`];e.attempts&&s.push(`${e.attempts} attempts`),e.totalDurationMs&&s.push(`${(e.totalDurationMs/1e3).toFixed(1)}s`),r=` (${s.join(", ")})`}else e.error&&(r=` — ${e.error}`)}catch{}throw console.error(`[AgentSession] /paste failed: status=${s.status}, sessionId=${e}, detail=${r}`),Error(`Failed to upload paste [${s.status}]${r}`)}return s.json()}async function SO(e,r){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/restart`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentType:r})})).ok)throw Error("Failed to restart session")}async function Sz(e,r){let s=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/agent-type`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentType:r})});if(!s.ok){let e="";try{let r=await s.json();r.error&&(e=r.error)}catch{}throw Error(e||`Failed to switch agent [${s.status}]`)}}async function S$(e){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/stop`,{method:"POST"})).ok)throw Error("Failed to stop session")}async function SW(e,r){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/switch-mode`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:r})})).ok)throw Error("Failed to switch mode")}async function SH(e,r){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/accept-plan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({planContent:r})})).ok)throw Error("Failed to accept plan")}let SU=new Map;function SK(e,r,s){return`${e}:${r??""}:${s??"latest"}`}async function Sq(e){let r=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}`);if(!r.ok)throw Error(`Session ${e} not found`);return r.json()}let SV=(0,ew.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),SY=(0,ew.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),SG=(0,ew.default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]),SX=(0,ew.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),SJ=(0,ew.default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),SZ=(0,ew.default)("file-check",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]),SQ=(0,ew.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]),S0=(0,ew.default)("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]),S1=(0,ew.default)("file-pen-line",[["path",{d:"m18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351",key:"1k2beg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]]),S2=(0,ew.default)("file-plus-corner",[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]]),S5=(0,ew.default)("earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),S3=(0,ew.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var oF=oM,b4=oM;let S4=RegExp("(?<![\\w./-])([\\w-]+(?:[./][\\w-]+)+)(?::(\\d+)(?::\\d+)?|#L(\\d+)(?:-L?\\d+)?)?","g"),S6=/\[([^\]\n]*)\]\(\s*([^)\s]+?)\s*\)/g;function S8(e){return e.includes("/")||/\.[A-Za-z0-9]+$/.test(e)}function S7(e){let r=e.trim();if(!r)return null;let s=/^(.*?)(?::(\d+)(?::\d+)?|#L(\d+)(?:-L?\d+)?)?$/.exec(r);if(!s||!s[1])return null;let i=s[1];return/^[a-z][a-z0-9+.-]*:/i.test(i)||i.startsWith("//")||i.startsWith("#")?null:{rawPath:i,line:s[2]?Number(s[2]):s[3]?Number(s[3]):null}}function S9(e){let r=r=>e.index?e.index.resolve(r):[];function s(e,r,s){return{type:"element",tagName:"a",properties:{className:["file-ref"],href:"#file-ref",dataFilePaths:JSON.stringify(e),...null!=r?{dataFileLine:String(r)}:{}},children:s}}return e=>{!function e(i,n=!1){if(!i.children)return;let a=n||"pre"===i.tagName,o=[];for(let n of i.children)"text"===n.type?a?o.push(n):o.push(...function(e){let i=function(e){let r,s=[],i=[];for(S6.lastIndex=0;null!==(r=S6.exec(e));){let e=S7(r[2]);if(!e||!S8(e.rawPath))continue;let n=r.index,a=r.index+r[0].length;s.push({start:n,end:a,rawPath:e.rawPath,line:e.line,display:r[1]||void 0}),i.push([n,a])}for(S4.lastIndex=0;null!==(r=S4.exec(e));){let e=r.index;if(i.some(([r,s])=>e>=r&&e<s))continue;let n=r[1];if(!S8(n))continue;let a=r[2]?Number(r[2]):r[3]?Number(r[3]):null;s.push({start:e,end:e+r[0].length,rawPath:n,line:a})}return s.sort((e,r)=>e.start-r.start),s}(e);if(0===i.length)return[{type:"text",value:e}];let n=[],a=0,o=!1;for(let l of i){let i=r(l.rawPath);if(0===i.length)continue;l.start>a&&n.push({type:"text",value:e.slice(a,l.start)});let c=l.display??e.slice(l.start,l.end);n.push(s(i,l.line,[{type:"text",value:c}])),a=l.end,o=!0}return o?(a<e.length&&n.push({type:"text",value:e.slice(a)}),n):[{type:"text",value:e}]}(n.value??"")):"element"===n.type&&"pre"===n.tagName?(e(n,!0),o.push(n)):"element"!==n.type||"a"!==n.tagName||a?(e(n,a),o.push(n)):o.push(...function(e){let i=S7(String(e.properties?.href??""));if(!i)return[e];let n=r(i.rawPath);return 0===n.length?e.children??[]:[s(n,i.line,e.children??[])]}(n));i.children=o}(e)}}let Ce="text-primary underline decoration-dotted underline-offset-2 cursor-pointer hover:decoration-solid";function Ct({node:e,children:r,href:s,...i}){let{openFile:n}=w$(),a=e?.properties?.dataFilePaths;if(!a)return"string"==typeof s&&s.startsWith("#")?(0,z.jsx)("a",{href:s,...i,children:r}):(0,z.jsx)("a",{href:s,target:"_blank",rel:"noreferrer noopener",...i,children:r});let o=[];try{o=JSON.parse(a)}catch{o=[]}let l=e?.properties?.dataFileLine,c=null!=l?Number(l):null;return o.length<=1?(0,z.jsx)("a",{href:"#",className:Ce,onClick:e=>{e.preventDefault(),o[0]&&n(o[0],c)},children:r}):(0,z.jsx)(Cr,{paths:o,line:c,children:r})}function Cr({paths:e,line:r,children:s}){let{openFile:i}=w$();return(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("a",{href:"#",className:Ce,onClick:e=>e.preventDefault(),children:s})}),(0,z.jsxs)(ag,{align:"start",className:"max-w-md",children:[(0,z.jsxs)(ab,{children:[e.length," matching files"]}),e.map(e=>(0,z.jsx)(ax,{className:"font-mono text-xs",onSelect:()=>i(e,r),children:e},e))]})]})}let Cs=(0,$.memo)(function({children:e}){let{index:r}=w$(),{harden:s,...i}=b4.e,n=[...Object.values(i),[S9,{index:r}],...s?[s]:[]];return(0,z.jsx)(oF.i,{className:"size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",rehypePlugins:n,components:{a:Ct},children:e},r?.version??"no-file-ref-index")});function Ci({input:e,messageIndex:r}){let{sendMessage:s,messages:i}=kp(),n=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&Array.isArray(r.questions)&&r.questions.length>0&&r.questions.every(e=>"string"==typeof e.question&&"string"==typeof e.header&&Array.isArray(e.options)))return r}catch{}return null}(e),a=i[r+1],o=a?.type==="user",l=o?a.content:"",c="string"==typeof l?l:l.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if(!n){let r="string"==typeof e?e:JSON.stringify(e,null,2);return(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>500?r.substring(0,500)+"...":r})}return o?(0,z.jsx)(Cn,{questions:n.questions,answeredText:c}):(0,z.jsx)(Ca,{questions:n.questions,sendMessage:s})}function Cn({questions:e,answeredText:r}){return(0,z.jsx)("div",{className:"space-y-3 mt-2",children:e.map((e,s)=>(0,z.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-3",children:[(0,z.jsx)("div",{className:"flex items-center gap-2 mb-1.5",children:(0,z.jsx)(sb,{variant:"secondary",className:"text-[10px]",children:e.header})}),(0,z.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:e.question}),(0,z.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,z.jsx)(rC,{className:"h-4 w-4"}),(0,z.jsx)("span",{className:"font-medium",children:r})]})]},s))})}function Ca({questions:e,sendMessage:r}){let[s,i]=(0,$.useState)(new Map),[n,a]=(0,$.useState)(new Map),[o,l]=(0,$.useState)(new Set),[c,d]=(0,$.useState)(!1);async function u(){let i=[];for(let r=0;r<e.length;r++)if(o.has(r)){let e=n.get(r)?.trim();e&&i.push(e)}else{let e=s.get(r);e&&e.size>0&&i.push(Array.from(e).join(", "))}if(i.length>0){d(!0);try{await r(i.join("\n"))}finally{d(!1)}}}let h=e.some((e,r)=>{if(o.has(r))return!!n.get(r)?.trim();let i=s.get(r);return i&&i.size>0});return(0,z.jsxs)("div",{className:"space-y-4 mt-2",children:[e.map((e,r)=>{let c=s.get(r)||new Set,d=n.get(r)||"",u=o.has(r);return(0,z.jsxs)("div",{className:"rounded-lg border bg-card p-3",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,z.jsx)(SJ,{className:"h-3.5 w-3.5 text-violet-500"}),(0,z.jsx)(sb,{variant:"secondary",className:"text-[10px]",children:e.header})]}),(0,z.jsx)("p",{className:"text-sm font-medium mb-3",children:e.question}),(0,z.jsxs)("div",{className:"grid gap-2",children:[e.options.map(s=>{let n=c.has(s.label)&&!u;return(0,z.jsx)(W.Button,{variant:n?"default":"outline",className:(0,ey.cn)("h-auto py-2 px-3 justify-start text-left whitespace-normal",n&&"ring-2 ring-primary/50"),onClick:()=>{var n,a;return n=s.label,a=e.multiSelect,void(i(e=>{let s=new Map(e),i=new Set(s.get(r)||[]);return a?i.has(n)?i.delete(n):i.add(n):i.has(n)?i.clear():(i.clear(),i.add(n)),s.set(r,i),s}),l(e=>{let s=new Set(e);return s.delete(r),s}))},children:(0,z.jsxs)("div",{children:[(0,z.jsx)("span",{className:"font-medium text-sm",children:s.label}),s.description&&(0,z.jsx)("span",{className:"block text-xs text-muted-foreground mt-0.5",children:s.description})]})},s.label)}),(0,z.jsx)("div",{className:"flex items-center gap-2 mt-1",children:(0,z.jsx)(ro,{placeholder:"Other...",value:d,onChange:e=>{var s;return s=e.target.value,void(a(e=>new Map(e).set(r,s)),s&&(i(e=>{let s=new Map(e);return s.set(r,new Set),s}),l(e=>new Set(e).add(r))))},className:"text-sm"})})]})]},r)}),(0,z.jsxs)(W.Button,{onClick:u,disabled:!h||c,size:"sm",className:"active:scale-95 transition-transform",children:[c&&(0,z.jsx)(rk,{className:"h-3.5 w-3.5 animate-spin"}),c?"Submitting...":"Submit"]})]})}function Co(e){try{return JSON.parse(e)}catch{return null}}function Cl({input:e,messageIndex:r}){let{messages:s,acceptPlan:i,permissionMode:n,agentType:a}=kp(),[o,l]=(0,$.useState)(!0),[c,d]=(0,$.useState)(!1),u=function(e,r,s){let i="string"==typeof e?Co(e):e;if(i&&"object"==typeof i&&"plan"in i){let e=i.plan;if(e)return e}if("claude-code"===s)for(let e=r.length-1;e>=0;e--){let s=r[e];if("tool_use"===s.type&&"Write"===s.tool){let e="string"==typeof s.input?Co(s.input):s.input;if(e&&"object"==typeof e&&e.file_path?.includes(".claude/plans/")&&e.content)return e.content}}return"Plan written to file"}(e,s,a),h=(0,$.useCallback)(async()=>{d(!0);try{await i(u)}catch{d(!1)}},[i,u]),f="edit"===n,p=!1,m="";for(let e=r+1;e<s.length;e++){let r=s[e];if(r?.type==="user"){p=!0;let e=r.content??"";m="string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n");break}}return(f&&!p&&(p=!0),f||p)?(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[f?(0,z.jsxs)(sb,{variant:"default",className:"bg-green-600 hover:bg-green-700 text-white",children:[(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}),"Plan Accepted"]}):(0,z.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,z.jsx)(x_,{className:"h-3.5 w-3.5"}),(0,z.jsxs)("span",{children:["Feedback sent: ",m.length>100?m.substring(0,100)+"...":m]})]}),(0,z.jsxs)("details",{open:!f,children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"View Plan"}),(0,z.jsx)("div",{className:"mt-2 rounded-lg border p-3 bg-muted/30",children:(0,z.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none break-words [&_pre]:overflow-x-auto [&_pre]:max-w-full [&_code]:break-all [&_p]:break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(wc,{children:u})})})]})]}):(0,z.jsxs)("div",{className:"space-y-3 mt-2",children:[(0,z.jsxs)("div",{className:"rounded-lg border p-3 bg-card",children:[(0,z.jsxs)("button",{onClick:()=>l(!o),className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground mb-2 block",children:[o?"Collapse":"Expand"," Plan"]}),o&&(0,z.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none break-words [&_pre]:overflow-x-auto [&_pre]:max-w-full [&_code]:break-all [&_p]:break-words max-h-96 overflow-y-auto",style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(wc,{children:u})})]}),(0,z.jsxs)(W.Button,{onClick:h,disabled:c,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:[c?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):(0,z.jsx)(rh,{className:"h-3.5 w-3.5 mr-1.5"}),c?"Accepting Plan...":"Accept Plan & Start Editing"]})]})}function Cc({requestId:e,command:r,cwd:s,messageIndex:i}){let{messages:n,sessionId:a}=kp(),[o,l]=(0,$.useState)(!1),[c,d]=(0,$.useState)(null),u=!1;for(let e=i+1;e<n.length;e++)if(n[e]?.type==="user"){u=!0;break}c&&(u=!0);let h=(0,$.useCallback)(async r=>{if(a){l(!0),d(r);try{await (0,rv.sendApprovalResponse)(a,e,r)}catch{d(null),l(!1)}}},[a,e]);return u?(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[(0,z.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-3",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,z.jsx)(aN,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"Command"})]}),(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r||"(empty)"}),s&&(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:["cwd: ",s]})]}),(0,z.jsxs)(sb,{variant:"default",className:"decline"===c?"bg-red-600 hover:bg-red-700 text-white":"bg-green-600 hover:bg-green-700 text-white",children:[(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}),"decline"===c?"Denied":"Allowed"]})]}):(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[(0,z.jsxs)("div",{className:"rounded-lg border bg-card p-3",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,z.jsx)(aN,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"Command"})]}),(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r||"(empty)"}),s&&(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:["cwd: ",s]})]}),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsxs)(W.Button,{onClick:()=>h("accept"),disabled:o,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:[o&&"accept"===c?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rC,{className:"h-3.5 w-3.5 mr-1"}),"Allow"]}),(0,z.jsxs)(W.Button,{onClick:()=>h("decline"),disabled:o,variant:"destructive",size:"sm",children:[o&&"decline"===c?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rj,{className:"h-3.5 w-3.5 mr-1"}),"Deny"]})]})]})}function Cd({requestId:e,changes:r,messageIndex:s}){let{messages:i,sessionId:n}=kp(),[a,o]=(0,$.useState)(!1),[l,c]=(0,$.useState)(null),d=!1;for(let e=s+1;e<i.length;e++)if(i[e]?.type==="user"){d=!0;break}l&&(d=!0);let u=(0,$.useCallback)(async r=>{if(n){o(!0),c(r);try{await (0,rv.sendApprovalResponse)(n,e,r)}catch{c(null),o(!1)}}},[n,e]),h=r??[],f=()=>(0,z.jsx)("div",{className:"rounded-lg border bg-muted/30 p-3 space-y-2",children:0===h.length?(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"No file changes"}):h.map((e,r)=>(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(bO,{className:"h-3 w-3 text-muted-foreground flex-shrink-0"}),(0,z.jsx)("code",{className:"text-xs break-all",children:e.path}),(0,z.jsx)(sb,{variant:"secondary",className:`text-[10px] ${function(e){switch(e){case"added":case"add":return"bg-green-500/10 text-green-600";case"deleted":case"delete":return"bg-red-500/10 text-red-600";default:return"bg-blue-500/10 text-blue-600"}}(e.kind)}`,children:function(e){switch(e){case"added":case"add":return"added";case"deleted":case"delete":return"deleted";default:return"modified"}}(e.kind)})]}),e.diff&&(0,z.jsxs)("details",{className:"mt-1",children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"View diff"}),(0,z.jsx)("pre",{className:"mt-1 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.diff.split("\n").map((e,r)=>{let s="";return e.startsWith("+")?s="bg-green-500/10 text-green-700 dark:text-green-400":e.startsWith("-")&&(s="bg-red-500/10 text-red-700 dark:text-red-400"),(0,z.jsx)("div",{className:s,children:e},r)})})]})]},r))});return d?(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[f(),(0,z.jsxs)(sb,{variant:"default",className:"decline"===l?"bg-red-600 hover:bg-red-700 text-white":"bg-green-600 hover:bg-green-700 text-white",children:[(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}),"decline"===l?"Denied":"Allowed"]})]}):(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[f(),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsxs)(W.Button,{onClick:()=>u("accept"),disabled:a,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:[a&&"accept"===l?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rC,{className:"h-3.5 w-3.5 mr-1"}),"Allow"]}),(0,z.jsxs)(W.Button,{onClick:()=>u("decline"),disabled:a,variant:"destructive",size:"sm",children:[a&&"decline"===l?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rj,{className:"h-3.5 w-3.5 mr-1"}),"Deny"]})]})]})}let Cu=(0,ew.default)("circle-plus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),Ch=(0,ew.default)("badge",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}]]);function Cf({status:e,className:r}){switch(e){case"completed":return(0,z.jsx)(rC,{className:(0,ey.cn)("h-4 w-4 text-green-500",r)});case"in_progress":return(0,z.jsx)(rk,{className:(0,ey.cn)("h-4 w-4 text-cyan-500 animate-spin",r)});case"pending":default:return(0,z.jsx)(rS,{className:(0,ey.cn)("h-4 w-4 text-muted-foreground",r)});case"deleted":return(0,z.jsx)(rj,{className:(0,ey.cn)("h-4 w-4 text-red-400",r)})}}function Cp(e,r){try{let s="string"==typeof e?JSON.parse(e):e;if(s&&"object"==typeof s&&r(s))return s}catch{}return null}function Cm({input:e}){let r="string"==typeof e?e:JSON.stringify(e,null,2);return(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>500?r.substring(0,500)+"...":r})}function Cg({input:e}){let r=Cp(e,e=>Array.isArray(e.todos)&&e.todos.length>0);return r?(0,z.jsx)("div",{className:"mt-2 space-y-1",children:r.todos.map((e,r)=>(0,z.jsxs)("div",{className:"flex items-start gap-2 py-0.5",children:[(0,z.jsx)(Cf,{status:e.status,className:"mt-0.5 flex-shrink-0"}),(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:(0,ey.cn)("text-sm break-words","completed"===e.status&&"line-through text-muted-foreground"),children:e.subject??e.content??"Untitled task"}),"in_progress"===e.status&&e.activeForm&&(0,z.jsx)("span",{className:"block text-xs italic text-cyan-500",children:e.activeForm})]})]},e.id??r))}):(0,z.jsx)(Cm,{input:e})}function Cx({input:e}){let r=Cp(e,e=>"string"==typeof e.subject);return r?(0,z.jsxs)("div",{className:"mt-2 flex items-start gap-2",children:[(0,z.jsx)(Cu,{className:"h-4 w-4 text-cyan-500 mt-0.5 flex-shrink-0"}),(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-words",children:r.subject}),r.description&&(0,z.jsx)("span",{className:"block text-xs text-muted-foreground mt-0.5 break-words",children:r.description.length>200?r.description.substring(0,200)+"...":r.description})]})]}):(0,z.jsx)(Cm,{input:e})}function Cv({input:e}){let r=Cp(e,e=>"string"==typeof e.taskId);return r?(0,z.jsxs)("div",{className:"mt-2 flex items-start gap-2 flex-wrap",children:[r.status?(0,z.jsx)(Cf,{status:r.status,className:"mt-0.5 flex-shrink-0"}):(0,z.jsx)(_U,{className:"h-4 w-4 text-cyan-500 mt-0.5 flex-shrink-0"}),(0,z.jsxs)("span",{className:"text-sm break-words",children:["Task #",r.taskId,r.status&&(0,z.jsxs)(z.Fragment,{children:[" ",(0,z.jsx)(_U,{className:"inline h-3 w-3 text-muted-foreground mx-0.5"})," ",r.status]}),r.subject&&(0,z.jsxs)("span",{className:"text-muted-foreground",children:[" — ",r.subject]})]}),r.addBlockedBy&&r.addBlockedBy.length>0&&(0,z.jsx)("div",{className:"flex gap-1 mt-1 w-full pl-6",children:r.addBlockedBy.map(e=>(0,z.jsxs)(sb,{variant:"outline",className:"text-[10px]",children:[(0,z.jsx)(Ch,{className:"h-2.5 w-2.5 mr-0.5"}),"blocked by #",e]},e))}),r.addBlocks&&r.addBlocks.length>0&&(0,z.jsx)("div",{className:"flex gap-1 mt-1 w-full pl-6",children:r.addBlocks.map(e=>(0,z.jsxs)(sb,{variant:"outline",className:"text-[10px]",children:[(0,z.jsx)(Ch,{className:"h-2.5 w-2.5 mr-0.5"}),"blocks #",e]},e))})]}):(0,z.jsx)(Cm,{input:e})}function C_(){return(0,z.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin text-cyan-500"}),(0,z.jsx)("span",{children:"Listing tasks..."})]})}function Cy({input:e}){let r=Cp(e,e=>"string"==typeof e.taskId);return r?(0,z.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin text-cyan-500"}),(0,z.jsxs)("span",{children:["Fetching task #",r.taskId,"..."]})]}):(0,z.jsx)(Cm,{input:e})}function Cb({output:e}){let r=function(e){try{let r=JSON.parse(e);if(Array.isArray(r))return r.filter(e=>e.id&&e.subject).map(e=>({id:String(e.id),subject:String(e.subject),status:e.status||"pending",owner:e.owner?String(e.owner):void 0,blockedBy:Array.isArray(e.blockedBy)?e.blockedBy.map(String):void 0}));let s=r.tasks??r.items??r.data;if(Array.isArray(s))return s.filter(e=>e.id&&e.subject).map(e=>({id:String(e.id),subject:String(e.subject),status:e.status||"pending",owner:e.owner?String(e.owner):void 0,blockedBy:Array.isArray(e.blockedBy)?e.blockedBy.map(String):void 0}))}catch{let r=e.trim().split("\n").filter(Boolean),s=[];for(let e of r){let r=e.match(/^#?(\d+)[\s.:\-]+\[?(completed|in_progress|pending|deleted)\]?\s+(.+)/i);r&&s.push({id:r[1],status:r[2].toLowerCase(),subject:r[3].trim()})}if(s.length>0)return s}return null}(e);return r?(0,z.jsx)("div",{className:"mt-1 space-y-1",children:r.map(e=>(0,z.jsxs)("div",{className:"flex items-start gap-2 py-0.5",children:[(0,z.jsx)(Cf,{status:e.status,className:"mt-0.5 flex-shrink-0"}),(0,z.jsxs)("div",{className:"min-w-0 flex items-center gap-1.5 flex-wrap",children:[(0,z.jsxs)("span",{className:"text-xs text-muted-foreground",children:["#",e.id]}),(0,z.jsx)("span",{className:(0,ey.cn)("text-sm break-words","completed"===e.status&&"line-through text-muted-foreground"),children:e.subject}),e.blockedBy&&e.blockedBy.length>0&&(0,z.jsx)(sb,{variant:"outline",className:"text-[10px]",children:"blocked"})]})]},e.id))}):null}function Cw({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.file_path)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{file_path:s,offset:i,limit:n}=r,a=s.split("/"),o=a.pop()||s,l=a.join("/"),c=null!=i||null!=n,d="";if(c){let e=i??1;d=null!=n?`Lines ${e}\u2013${e+n-1}`:`From line ${e}`}return(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-all",children:o}),l&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate",title:s,children:l})]}),c&&(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:d})]})}function CS({output:e}){let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["File contents (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CC({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.file_path)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{file_path:s,content:i}=r,n=s.split("/"),a=n.pop()||s,o=n.join("/"),l=i.split("\n").length;return(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-all",children:a}),o&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate",title:s,children:o})]}),(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Content (",l," ",1===l?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:i.length>1e3?i.substring(0,1e3)+"...":i})]})]})}function Cj({output:e}){return e&&""!==e.trim()?(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Result"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]}):(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"File written"})}function Ck({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.command)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{command:s,description:i,timeout:n}=r;return(0,z.jsxs)("div",{className:"space-y-1",children:[i&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:i}),(0,z.jsxs)("div",{className:"flex items-start gap-2",children:[(0,z.jsxs)("pre",{className:"flex-1 min-w-0 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-muted-foreground select-none",children:"$ "}),s]}),null!=n&&(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0 mt-1",children:function(e){if(e>=6e4){let r=e/6e4;return`${r%1==0?r:r.toFixed(1)}m`}return`${e/1e3}s`}(n)})]})]})}function CN({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Output (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CE({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.pattern)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let s=[];return r.path&&s.push({label:r.path}),r.glob&&s.push({label:r.glob}),r.type&&s.push({label:`.${r.type}`}),r.output_mode&&"files_with_matches"!==r.output_mode&&s.push({label:r.output_mode}),null!=r.context&&s.push({label:`context: ${r.context}`}),null!=r["-C"]&&s.push({label:`context: ${r["-C"]}`}),null!=r["-B"]&&s.push({label:`before: ${r["-B"]}`}),null!=r["-A"]&&s.push({label:`after: ${r["-A"]}`}),r["-i"]&&s.push({label:"case-insensitive"}),r.multiline&&s.push({label:"multiline"}),null!=r.head_limit&&s.push({label:`limit: ${r.head_limit}`}),null!=r.offset&&s.push({label:`offset: ${r.offset}`}),(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("div",{className:"flex items-start gap-2",children:(0,z.jsxs)("pre",{className:"flex-1 min-w-0 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-muted-foreground select-none",children:"/ "}),r.pattern]})}),s.length>0&&(0,z.jsx)("div",{className:"flex items-center gap-1.5 flex-wrap",children:s.map((e,r)=>(0,z.jsx)(sb,{variant:"outline",className:"text-xs",children:e.label},r))})]})}function CD({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No matches"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Results (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CR({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.pattern)return r;return null}catch{return null}}(e);return r?(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("div",{className:"flex items-start gap-2",children:(0,z.jsx)("pre",{className:"flex-1 min-w-0 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.pattern})}),r.path&&(0,z.jsx)("div",{className:"flex items-center gap-1.5 flex-wrap",children:(0,z.jsx)(sb,{variant:"outline",className:"text-xs",children:r.path})})]}):(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)})}function CA({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No matches"});let r=e.trim().split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:[r," ",1===r?"file":"files"," found"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}let CM={Explore:"Explore",Bash:"Bash",Plan:"Plan","general-purpose":"General","code-simplifier":"Simplify","superpowers:code-reviewer":"Review","memory-leak-detector":"Memory","directory-structure-validator":"Structure","tech-docs-finder":"Docs","claude-code-guide":"Guide","statusline-setup":"Status"};function CF({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.description&&"string"==typeof r.subagent_type)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{description:s,subagent_type:i,prompt:n,model:a,max_turns:o,resume:l,run_in_background:c}=r,d=[];return d.push({label:CM[i]||i}),a&&d.push({label:a}),null!=o&&d.push({label:`${o} turns`}),c&&d.push({label:"background"}),l&&d.push({label:"resume"}),(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsx)("span",{className:"text-sm",children:s}),d.map((e,r)=>(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:e.label},r))]}),n&&(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Prompt (",n.length>1e3?`${Math.round(n.length/1e3)}k chars`:`${n.length} chars`,")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:n.length>1e3?n.substring(0,1e3)+"...":n})]})]})}function CT({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Agent result (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CP(e,r){return e.length>r?e.substring(0,r)+"...":e}function CB({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.file_path&&"string"==typeof r.old_string&&"string"==typeof r.new_string)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{file_path:s,old_string:i,new_string:n,replace_all:a}=r,o=s.split("/"),l=o.pop()||s,c=o.join("/"),d=i.split("\n").length,u=n.split("\n").length;return(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-all",children:l}),c&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate",title:s,children:c})]}),(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:d===u?`${d} ${1===d?"line":"lines"}`:`${d}\u2192${u} lines`}),a&&(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:"replace all"})]}),(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Diff"}),(0,z.jsxs)("div",{className:"mt-1 text-xs rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full",children:[(0,z.jsxs)("pre",{className:"bg-red-500/10 p-1.5 rounded-t whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-red-500 select-none",children:"- "}),CP(i,500)]}),(0,z.jsxs)("pre",{className:"bg-green-500/10 p-1.5 rounded-b whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-green-500 select-none",children:"+ "}),CP(n,500)]})]})]})]})}function CL({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});if(e.length<=200)return(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:e});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Result (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CI({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.url&&"string"==typeof r.prompt)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{display:s,href:i}=function(e){try{let r=new URL(e),s="/"===r.pathname?"":r.pathname,i=r.hostname+s;return{display:i.length>80?i.substring(0,77)+"...":i,href:e}}catch{return{display:e.length>80?e.substring(0,77)+"...":e,href:e}}}(r.url),n=r.prompt.length>150?r.prompt.substring(0,147)+"...":r.prompt;return(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"block text-xs font-mono text-blue-500 hover:underline truncate",children:s}),(0,z.jsxs)("p",{className:"text-xs text-muted-foreground",children:['"',n,'"']})]})}function CO({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No content fetched"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Response (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function Cz({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.query)return r;return null}catch{return null}}(e);return r?(0,z.jsxs)("div",{className:"space-y-1.5",children:[(0,z.jsx)("p",{className:"text-xs font-mono bg-muted/50 px-2 py-1 rounded break-words",children:r.query}),r.allowed_domains&&r.allowed_domains.length>0&&(0,z.jsxs)("div",{className:"flex items-center gap-1 flex-wrap",children:[(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"only:"}),r.allowed_domains.map(e=>(0,z.jsx)(sb,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:e},e))]}),r.blocked_domains&&r.blocked_domains.length>0&&(0,z.jsxs)("div",{className:"flex items-center gap-1 flex-wrap",children:[(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"exclude:"}),r.blocked_domains.map(e=>(0,z.jsx)(sb,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:e},e))]})]}):(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)})}function C$({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No search results"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Results (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CW({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.skill)return r;return null}catch{return null}}(e);return r?(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("p",{className:"text-xs font-mono text-pink-500",children:r.skill}),r.args&&(0,z.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:["args: ",r.args]})]}):(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)})}function CH({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Loaded (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CU({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.task_id)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{task_id:s,block:i,timeout:n}=r,a=[];return a.push({label:!1===i?"non-blocking":"blocking"}),null!=n&&a.push({label:`${Math.round(n/1e3)}s`}),(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsx)("code",{className:"text-sm bg-muted/50 px-1.5 py-0.5 rounded",children:s}),a.map((e,r)=>(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:e.label},r))]})}function CK({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Task output (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function Cq({input:e}){let r="string"==typeof e?function(e){try{return JSON.parse(e)}catch{return null}}(e):e,s=r?.changes??[];return 0===s.length?(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"No file changes"}):(0,z.jsx)("div",{className:"space-y-2 mt-1",children:s.map((e,r)=>(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(bO,{className:"h-3 w-3 text-muted-foreground flex-shrink-0"}),(0,z.jsx)("code",{className:"text-xs break-all",children:e.path}),(0,z.jsx)(sb,{variant:"secondary",className:`text-[10px] ${function(e){switch(e){case"added":case"add":return"bg-green-500/10 text-green-600";case"deleted":case"delete":return"bg-red-500/10 text-red-600";default:return"bg-blue-500/10 text-blue-600"}}(e.kind)}`,children:function(e){switch(e){case"added":case"add":return"added";case"deleted":case"delete":return"deleted";default:return"modified"}}(e.kind)})]}),e.diff&&(0,z.jsxs)("details",{className:"mt-1",children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"View diff"}),(0,z.jsx)("pre",{className:"mt-1 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.diff.split("\n").map((e,r)=>{let s="";return e.startsWith("+")?s="bg-green-500/10 text-green-700 dark:text-green-400":e.startsWith("-")&&(s="bg-red-500/10 text-red-700 dark:text-red-400"),(0,z.jsx)("div",{className:s,children:e},r)})})]})]},r))})}function CV({output:e}){let r=e.toLowerCase(),s="text-muted-foreground";return r.includes("completed")||r.includes("success")?s="text-green-600 dark:text-green-400":r.includes("failed")||r.includes("error")?s="text-red-600 dark:text-red-400":(r.includes("declined")||r.includes("denied"))&&(s="text-amber-600 dark:text-amber-400"),(0,z.jsx)("p",{className:`text-xs ${s}`,children:e})}function CY({path:e,size:r}){let s;return(0,z.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/60 px-1.5 py-0.5 text-xs font-mono align-baseline",title:e,children:[(0,z.jsx)(bO,{className:"w-3 h-3 text-muted-foreground shrink-0"}),(0,z.jsx)("span",{className:"truncate max-w-[18ch]",children:(s=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\")))>=0?e.slice(s+1):e}),(0,z.jsx)("span",{className:"text-muted-foreground",children:function(e){if(e<1024)return`${e} B`;let r=e/1024;return r<10?`${r.toFixed(1)} KB`:r<1024?`${Math.round(r)} KB`:`${(r/1024).toFixed(1)} MB`}(r)})]})}let CG=/<vpaste path="([^"]+)" size="(\d+)" \/>/g;function CX({message:e,messageIndex:r}){let s=function(e,r){switch(e.type){case"user":return(0,z.jsx)(CZ,{content:e.content});case"assistant":return(0,z.jsx)(CQ,{content:e.content,agentType:e.agentType});case"tool_use":return(0,z.jsx)(C0,{tool:e.tool,input:e.input,messageIndex:r});case"tool_result":return(0,z.jsx)(C1,{tool:e.tool,output:e.output});case"thinking":return(0,z.jsx)(C2,{content:e.content});case"error":return(0,z.jsx)(C5,{message:e.message});case"system":return(0,z.jsx)(C3,{content:e.content});case"approval_request":return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-amber-500/10 flex items-center justify-center",children:(0,z.jsx)(S3,{className:"w-4 h-4 text-amber-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-amber-500 mb-1",children:"command"===e.requestType?"Command Approval":"File Change Approval"}),"command"===e.requestType?(0,z.jsx)(Cc,{requestId:e.requestId,command:e.command,cwd:e.cwd,messageIndex:r}):(0,z.jsx)(Cd,{requestId:e.requestId,changes:e.changes,messageIndex:r})]})]});default:return null}}(e,r);return s?(0,z.jsxs)("div",{className:"group relative",children:[s,(0,z.jsx)("span",{className:"pointer-events-none absolute right-0 top-3 text-xs tabular-nums text-muted-foreground opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:function(e){let r=new Date(e),s=new Date,i=r.getFullYear()===s.getFullYear()&&r.getMonth()===s.getMonth()&&r.getDate()===s.getDate(),n=r.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1});if(i)return n;let a=r.toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"});return`${a} ${n}`}(e.timestamp)})]}):null}function CJ(e){let r=function(e){let r,s=[],i=0,n=RegExp(CG.source,"g");for(;null!==(r=n.exec(e));)r.index>i&&s.push({kind:"text",text:e.slice(i,r.index)}),s.push({kind:"chip",path:r[1],size:Number(r[2])}),i=r.index+r[0].length;return i<e.length&&s.push({kind:"text",text:e.slice(i)}),s}(e);return 1===r.length&&"text"===r[0].kind?(0,z.jsx)("span",{className:"whitespace-pre-wrap break-words",children:e??""}):(0,z.jsx)("div",{className:"text-foreground max-w-none break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:r.map((e,r)=>"text"===e.kind?(0,z.jsx)("span",{className:"whitespace-pre-wrap break-words",children:e.text},r):(0,z.jsx)(CY,{path:e.path,size:e.size},r))})}function CZ({content:e}){return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-primary/10 flex items-center justify-center",children:(0,z.jsx)(SV,{className:"w-3.5 h-3.5 text-primary"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-foreground mb-1",children:"You"}),(0,z.jsx)("div",{className:"text-foreground max-w-none break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:"string"==typeof e?CJ(e):e.map((e,r)=>"text"===e.type?(0,z.jsx)($.Fragment,{children:CJ(e.text)},r):(0,z.jsx)("img",{src:`data:${e.mediaType};base64,${e.data}`,alt:"Attached image",className:"max-w-sm rounded-lg mt-2"},r))})]})]})}function CQ({content:e,agentType:r}){let s=function(){try{return kp().agentType}catch{return"claude-code"}}(),i="codex"===(r??s),[n,a]=(0,$.useState)(!1);return(0,z.jsxs)("div",{className:"group flex gap-3 py-3",children:[(0,z.jsx)("div",{className:`flex-shrink-0 w-7 h-7 rounded-lg ${i?"bg-green-500/10":"bg-violet-500/10"} flex items-center justify-center`,children:(0,z.jsx)(aE,{className:`w-3.5 h-3.5 ${i?"text-green-500":"text-violet-500"}`})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,z.jsx)("p",{className:`text-sm font-medium ${i?"text-green-500":"text-violet-500"}`,children:i?"Codex":"Claude"}),(0,z.jsx)("button",{type:"button",onClick:()=>a(e=>!e),title:n?"View rendered":"View source","aria-label":n?"View rendered":"View source","aria-pressed":n,className:"opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity text-muted-foreground hover:text-foreground",children:n?(0,z.jsx)(_O,{className:"w-3.5 h-3.5"}):(0,z.jsx)(bX,{className:"w-3.5 h-3.5"})})]}),n?(0,z.jsx)("pre",{className:"text-xs font-mono whitespace-pre-wrap break-words bg-muted/50 rounded-md p-3 overflow-x-auto text-foreground select-text",children:e??""}):(0,z.jsx)("div",{className:"text-foreground prose prose-sm dark:prose-invert max-w-none break-words [&_pre]:overflow-x-auto [&_pre]:max-w-full [&_code]:break-all [&_p]:break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(Cs,{children:e??""})})]})]})}function C0({tool:e,input:r,messageIndex:s}){if("AskUserQuestion"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-violet-500/10 flex items-center justify-center",children:(0,z.jsx)(SJ,{className:"w-4 h-4 text-violet-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-violet-500 mb-1",children:"Question"}),(0,z.jsx)(Ci,{input:r,messageIndex:s})]})]});if("ExitPlanMode"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-green-500/10 flex items-center justify-center",children:(0,z.jsx)(SZ,{className:"w-4 h-4 text-green-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-green-500 mb-1",children:"Plan Ready"}),(0,z.jsx)(Cl,{input:r,messageIndex:s})]})]});let i={TodoWrite:{label:"Tasks",ui:(0,z.jsx)(Cg,{input:r})},TaskCreate:{label:"Create Task",ui:(0,z.jsx)(Cx,{input:r})},TaskUpdate:{label:"Update Task",ui:(0,z.jsx)(Cv,{input:r})},TaskList:{label:"Task List",ui:(0,z.jsx)(C_,{})},TaskGet:{label:"Get Task",ui:(0,z.jsx)(Cy,{input:r})}}[e];if(i)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-cyan-500/10 flex items-center justify-center",children:(0,z.jsx)(oP,{className:"w-4 h-4 text-cyan-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-cyan-500 mb-1",children:i.label}),i.ui]})]});if("Read"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(bO,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"Read File"}),(0,z.jsx)(Cw,{input:r})]})]});if("Edit"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(S1,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"Edit File"}),(0,z.jsx)(CB,{input:r})]})]});if("Write"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(S2,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"Write File"}),(0,z.jsx)(CC,{input:r})]})]});if("Bash"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-emerald-500/10 flex items-center justify-center",children:(0,z.jsx)(aN,{className:"w-4 h-4 text-emerald-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-emerald-500 mb-1",children:"Run Command"}),(0,z.jsx)(Ck,{input:r})]})]});if("Grep"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-orange-500/10 flex items-center justify-center",children:(0,z.jsx)(dt,{className:"w-4 h-4 text-orange-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-orange-500 mb-1",children:"Search"}),(0,z.jsx)(CE,{input:r})]})]});if("Glob"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-teal-500/10 flex items-center justify-center",children:(0,z.jsx)(SQ,{className:"w-4 h-4 text-teal-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-teal-500 mb-1",children:"Glob"}),(0,z.jsx)(CR,{input:r})]})]});if("Task"===e||"Agent"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-purple-500/10 flex items-center justify-center",children:(0,z.jsx)(S0,{className:"w-4 h-4 text-purple-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-purple-500 mb-1",children:"Agent"}),(0,z.jsx)(CF,{input:r})]})]});if("TaskOutput"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-purple-500/10 flex items-center justify-center",children:(0,z.jsx)(S0,{className:"w-4 h-4 text-purple-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-purple-500 mb-1",children:"Task Output"}),(0,z.jsx)(CU,{input:r})]})]});if("WebFetch"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-blue-500/10 flex items-center justify-center",children:(0,z.jsx)(ry,{className:"w-4 h-4 text-blue-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-blue-500 mb-1",children:"Fetch Web Page"}),(0,z.jsx)(CI,{input:r})]})]});if("WebSearch"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-indigo-500/10 flex items-center justify-center",children:(0,z.jsx)(S5,{className:"w-4 h-4 text-indigo-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-indigo-500 mb-1",children:"Web Search"}),(0,z.jsx)(Cz,{input:r})]})]});if("Skill"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-pink-500/10 flex items-center justify-center",children:(0,z.jsx)(da,{className:"w-4 h-4 text-pink-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-pink-500 mb-1",children:"Skill"}),(0,z.jsx)(CW,{input:r})]})]});if("FileChange"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(S1,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"File Changes"}),(0,z.jsx)(Cq,{input:r})]})]});let n="string"==typeof r?r:JSON.stringify(r,null,2);return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-amber-500/10 flex items-center justify-center",children:(0,z.jsx)(SY,{className:"w-4 h-4 text-amber-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("p",{className:"text-sm font-medium text-amber-500 mb-1 break-words",children:["Tool: ",e]}),(0,z.jsxs)("details",{open:!0,children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Input"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:n.length>500?n.substring(0,500)+"...":n})]})]})]})}function C1({tool:e,output:r}){if(["TodoWrite","TaskCreate","TaskUpdate","TaskList","TaskGet"].includes(e)){let s="TaskList"===e?(0,z.jsx)(Cb,{output:r}):null;return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mb-1",children:["Result (",e,")"]}),s||(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Output"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>1e3?r.substring(0,1e3)+"...":r})]})]})})}if("Read"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CS,{output:r})})});if("Edit"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CL,{output:r})})});if("Write"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(Cj,{output:r})})});if("Bash"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CN,{output:r})})});if("Grep"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CD,{output:r})})});if("Glob"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CA,{output:r})})});if("Task"===e||"Agent"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CT,{output:r})})});if("TaskOutput"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CK,{output:r})})});if("WebFetch"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CO,{output:r})})});if("WebSearch"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(C$,{output:r})})});if("Skill"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CH,{output:r})})});if("FileChange"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CV,{output:r})})});let s=r.length>200;return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mb-1",children:["Result",e?` (${e})`:""]}),(0,z.jsxs)("details",{className:(0,ey.cn)(!s&&"open"),children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Output"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>1e3?r.substring(0,1e3)+"...":r})]})]})})}function C2({content:e}){let r=e??"",s=r.trim().length>0,i=s?r.length>500?r.substring(0,500)+"...":r:"Reasoning unavailable — this model does not expose its thinking content.";return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-blue-500/10 flex items-center justify-center",children:(0,z.jsx)(SG,{className:"w-3.5 h-3.5 text-blue-500"})}),(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs font-medium text-blue-500 cursor-pointer hover:underline",children:"Thinking..."}),(0,z.jsx)("div",{className:`mt-2 whitespace-pre-wrap break-words bg-blue-500/5 p-2 rounded-md overflow-hidden ${s?"text-muted-foreground":"text-muted-foreground/70 italic"}`,style:{fontSize:"var(--conv-font-size, 12px)"},children:i})]})})]})}function C5({message:e}){return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-red-500/10 flex items-center justify-center",children:(0,z.jsx)(SX,{className:"w-3.5 h-3.5 text-red-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-red-500 mb-1",children:"Error"}),(0,z.jsx)("p",{className:"text-red-500/80 break-words whitespace-pre-wrap",style:{fontSize:"var(--conv-font-size, 14px)"},children:e})]})]})}function C3({content:e}){return(0,z.jsxs)("div",{className:"flex gap-3 py-2",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-gray-500/10 flex items-center justify-center",children:(0,z.jsx)(xm,{className:"w-3.5 h-3.5 text-gray-500"})}),(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)("p",{className:"text-muted-foreground break-words",style:{fontSize:"var(--conv-font-size, 12px)"},children:e??""})})]})}let C4=(0,ew.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),C6={damping:.7,stiffness:.05,mass:1.25},C8=1e3/60,C7=!1;function C9(e,r){let s=(0,$.useCallback)(r=>(s.current=r,e(r)),r);return s}globalThis.document?.addEventListener("mousedown",()=>{C7=!0}),globalThis.document?.addEventListener("mouseup",()=>{C7=!1}),globalThis.document?.addEventListener("click",()=>{C7=!1});let je=new Map;function jt(...e){let r={...C6},s=!1;for(let i of e){if("instant"===i){s=!0;continue}"object"==typeof i&&(s=!1,r.damping=i.damping??r.damping,r.stiffness=i.stiffness??r.stiffness,r.mass=i.mass??r.mass)}let i=JSON.stringify(r);return je.has(i)||je.set(i,Object.freeze(r)),s?"instant":je.get(i)}let jr=(0,$.createContext)(null),js="undefined"!=typeof window?$.useLayoutEffect:$.useEffect;function ji({instance:e,children:r,resize:s,initial:i,mass:n,damping:a,stiffness:o,targetScrollTop:l,contextRef:c,...d}){let u=(0,$.useRef)(null),h=((e={})=>{let[r,s]=(0,$.useState)(!1),[i,n]=(0,$.useState)(!1!==e.initial),[a,o]=(0,$.useState)(!1),l=(0,$.useRef)(null);l.current=e;let c=(0,$.useCallback)(()=>{if(!C7)return!1;let e=window.getSelection();if(!e||!e.rangeCount)return!1;let r=e.getRangeAt(0);return r.commonAncestorContainer.contains(x.current)||x.current?.contains(r.commonAncestorContainer)},[]),d=(0,$.useCallback)(e=>{h.isAtBottom=e,n(e)},[]),u=(0,$.useCallback)(e=>{h.escapedFromLock=e,s(e)},[]),h=(0,$.useMemo)(()=>{let s;return{escapedFromLock:r,isAtBottom:i,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return x.current?.scrollTop??0},set scrollTop(scrollTop){x.current&&(x.current.scrollTop=scrollTop,h.ignoreScrollToTop=x.current.scrollTop)},get targetScrollTop(){if(!x.current||!v.current)return 0;return x.current.scrollHeight-1-x.current.clientHeight},get calculatedTargetScrollTop(){if(!x.current||!v.current)return 0;let{targetScrollTop:r}=this;if(!e.targetScrollTop)return r;if(s?.targetScrollTop===r)return s.calculatedScrollTop;let i=Math.max(Math.min(e.targetScrollTop(r,{scrollElement:x.current,contentElement:v.current}),r),0);return s={targetScrollTop:r,calculatedScrollTop:i},requestAnimationFrame(()=>{s=void 0}),i},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=70}}},[]),f=(0,$.useCallback)((e={})=>{let r;"string"==typeof e&&(e={animation:e}),e.preserveScrollPosition||d(!0);let s=Date.now()+(Number(e.wait)||0),i=jt(l.current,e.animation),{ignoreEscapes:n=!1}=e,a=h.calculatedTargetScrollTop;e.duration instanceof Promise?e.duration.finally(()=>{r=Date.now()}):r=s+(e.duration??0);let o=async()=>{let e=new Promise(requestAnimationFrame).then(()=>{if(!h.isAtBottom)return h.animation=void 0,!1;let{scrollTop:d}=h,u=performance.now(),p=(u-(h.lastTick??u))/C8;if(h.animation||(h.animation={behavior:i,promise:e,ignoreEscapes:n}),h.animation.behavior===i&&(h.lastTick=u),c()||s>Date.now())return o();if(d<Math.min(a,h.calculatedTargetScrollTop)){if(h.animation?.behavior===i){if("instant"===i)return h.scrollTop=h.calculatedTargetScrollTop,o();h.velocity=(i.damping*h.velocity+i.stiffness*h.scrollDifference)/i.mass,h.accumulated+=h.velocity*p,h.scrollTop+=h.accumulated,h.scrollTop!==d&&(h.accumulated=0)}return o()}return r>Date.now()?(a=h.calculatedTargetScrollTop,o()):(h.animation=void 0,h.scrollTop<h.calculatedTargetScrollTop)?f({animation:jt(l.current,l.current.resize),ignoreEscapes:n,duration:Math.max(0,r-Date.now())||void 0}):h.isAtBottom});return e.then(e=>(requestAnimationFrame(()=>{h.animation||(h.lastTick=void 0,h.velocity=0)}),e))};return(!0!==e.wait&&(h.animation=void 0),h.animation?.behavior===i)?h.animation.promise:o()},[d,c,h]),p=(0,$.useCallback)(()=>{u(!0),d(!1)},[u,d]),m=(0,$.useCallback)(({target:e})=>{if(e!==x.current)return;let{scrollTop:r,ignoreScrollToTop:s}=h,{lastScrollTop:i=r}=h;h.lastScrollTop=r,h.ignoreScrollToTop=void 0,s&&s>r&&(i=s),o(h.isNearBottom),setTimeout(()=>{if(h.resizeDifference||r===s)return;if(c()){u(!0),d(!1);return}let e=r>i,n=r<i;if(h.animation?.ignoreEscapes){h.scrollTop=i;return}n&&(u(!0),d(!1)),e&&u(!1),!h.escapedFromLock&&h.isNearBottom&&d(!0)},1)},[u,d,c,h]),g=(0,$.useCallback)(({target:e,deltaY:r})=>{let s=e;for(;!["scroll","auto"].includes(getComputedStyle(s).overflow);){if(!s.parentElement)return;s=s.parentElement}s===x.current&&r<0&&x.current.scrollHeight>x.current.clientHeight&&!h.animation?.ignoreEscapes&&(u(!0),d(!1))},[u,d,h]),x=C9(e=>{x.current?.removeEventListener("scroll",m),x.current?.removeEventListener("wheel",g),e?.addEventListener("scroll",m,{passive:!0}),e?.addEventListener("wheel",g,{passive:!0})},[]),v=C9(e=>{let r;h.resizeObserver?.disconnect(),e&&(h.resizeObserver=new ResizeObserver(([e])=>{let{height:s}=e.contentRect,i=s-(r??s);if(h.resizeDifference=i,h.scrollTop>h.targetScrollTop&&(h.scrollTop=h.targetScrollTop),o(h.isNearBottom),i>=0){let e=jt(l.current,r?l.current.resize:l.current.initial);f({animation:e,wait:!0,preserveScrollPosition:!0,duration:"instant"===e?void 0:350})}else h.isNearBottom&&(u(!1),d(!0));r=s,requestAnimationFrame(()=>{setTimeout(()=>{h.resizeDifference===i&&(h.resizeDifference=0)},1)})}),h.resizeObserver?.observe(e))},[]);return{contentRef:v,scrollRef:x,scrollToBottom:f,stopScroll:p,isAtBottom:i||a,isNearBottom:a,escapedFromLock:r,state:h}})({mass:n,damping:a,stiffness:o,resize:s,initial:i,targetScrollTop:$.useCallback((e,r)=>{let s=y?.targetScrollTop??l;return s?.(e,r)??e},[l])}),{scrollRef:f,contentRef:p,scrollToBottom:m,stopScroll:g,isAtBottom:x,escapedFromLock:v,state:_}=e??h,y=(0,$.useMemo)(()=>({scrollToBottom:m,stopScroll:g,scrollRef:f,isAtBottom:x,escapedFromLock:v,contentRef:p,state:_,get targetScrollTop(){return u.current},set targetScrollTop(targetScrollTop){u.current=targetScrollTop}}),[m,x,p,f,g,v,_]);return(0,$.useImperativeHandle)(c,()=>y,[y]),js(()=>{f.current&&"visible"===getComputedStyle(f.current).overflow&&(f.current.style.overflow="auto")},[]),$.createElement(jr.Provider,{value:y},$.createElement("div",{...d},"function"==typeof r?r(y):r))}function jn(){let e=(0,$.useContext)(jr);if(!e)throw Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}(ji||(ji={})).Content=function({children:e,scrollClassName:r,...s}){let i=jn();return $.createElement("div",{ref:i.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:r},$.createElement("div",{...s,ref:i.contentRef},"function"==typeof e?e(i):e))};let ja=({className:e,...r})=>(0,z.jsx)(ji,{className:(0,ey.cn)("relative flex-1 overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...r}),jo=({className:e,...r})=>(0,z.jsx)(ji.Content,{className:(0,ey.cn)("flex flex-col gap-8 p-4",e),...r}),jl=({className:e,...r})=>{let{isAtBottom:s,scrollToBottom:i}=jn(),n=(0,$.useCallback)(()=>{i()},[i]);return!s&&(0,z.jsx)(W.Button,{className:(0,ey.cn)("absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full",e),onClick:n,size:"icon",type:"button",variant:"outline",...r,children:(0,z.jsx)(C4,{className:"size-4"})})};var jc="HoverCard",[jd,ju]=K(jc,[i$]),jh=i$(),[jf,jp]=jd(jc),jm=e=>{let{__scopeHoverCard:r,children:s,open:i,defaultOpen:n,onOpenChange:a,openDelay:o=700,closeDelay:l=300}=e,c=jh(r),d=$.useRef(0),u=$.useRef(0),h=$.useRef(!1),f=$.useRef(!1),[p,m]=G({prop:i,defaultProp:n??!1,onChange:a,caller:jc}),g=$.useCallback(()=>{clearTimeout(u.current),d.current=window.setTimeout(()=>m(!0),o)},[o,m]),x=$.useCallback(()=>{clearTimeout(d.current),h.current||f.current||(u.current=window.setTimeout(()=>m(!1),l))},[l,m]),v=$.useCallback(()=>m(!1),[m]);return $.useEffect(()=>()=>{clearTimeout(d.current),clearTimeout(u.current)},[]),(0,z.jsx)(jf,{scope:r,open:p,onOpenChange:m,onOpen:g,onClose:x,onDismiss:v,hasSelectionRef:h,isPointerDownOnContentRef:f,children:(0,z.jsx)(iU,{...c,children:s})})};jm.displayName=jc;var jg="HoverCardTrigger",jx=$.forwardRef((e,r)=>{let{__scopeHoverCard:s,...i}=e,n=jp(jg,s),a=jh(s);return(0,z.jsx)(iq,{asChild:!0,...a,children:(0,z.jsx)(er.a,{"data-state":n.open?"open":"closed",...i,ref:r,onPointerEnter:q(e.onPointerEnter,jj(n.onOpen)),onPointerLeave:q(e.onPointerLeave,jj(n.onClose)),onFocus:q(e.onFocus,n.onOpen),onBlur:q(e.onBlur,n.onClose),onTouchStart:q(e.onTouchStart,e=>e.preventDefault())})})});jx.displayName=jg;var jv="HoverCardPortal",[j_,jy]=jd(jv,{forceMount:void 0}),jb=e=>{let{__scopeHoverCard:r,forceMount:s,children:i,container:n}=e,a=jp(jv,r);return(0,z.jsx)(j_,{scope:r,forceMount:s,children:(0,z.jsx)(Z,{present:s||a.open,children:(0,z.jsx)(eW,{asChild:!0,container:n,children:i})})})};jb.displayName=jv;var jw="HoverCardContent",jS=$.forwardRef((e,r)=>{let s=jy(jw,e.__scopeHoverCard),{forceMount:i=s.forceMount,...n}=e,a=jp(jw,e.__scopeHoverCard);return(0,z.jsx)(Z,{present:i||a.open,children:(0,z.jsx)(jC,{"data-state":a.open?"open":"closed",...n,onPointerEnter:q(e.onPointerEnter,jj(a.onOpen)),onPointerLeave:q(e.onPointerLeave,jj(a.onClose)),ref:r})})});jS.displayName=jw;var jC=$.forwardRef((e,r)=>{let{__scopeHoverCard:s,onEscapeKeyDown:i,onPointerDownOutside:n,onFocusOutside:a,onInteractOutside:o,...l}=e,c=jp(jw,s),d=jh(s),u=$.useRef(null),h=(0,U.useComposedRefs)(r,u),[f,p]=$.useState(!1);return $.useEffect(()=>{if(f){let e=document.body;return O=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=O,e.style.webkitUserSelect=O}}},[f]),$.useEffect(()=>{if(u.current){let e=()=>{p(!1),c.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(c.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!1}}},[c.isPointerDownOnContentRef,c.hasSelectionRef]),$.useEffect(()=>{u.current&&(function(e){let r=[],s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;s.nextNode();)r.push(s.currentNode);return r})(u.current).forEach(e=>e.setAttribute("tabindex","-1"))}),(0,z.jsx)(eR,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:o,onEscapeKeyDown:i,onPointerDownOutside:n,onFocusOutside:q(a,e=>{e.preventDefault()}),onDismiss:c.onDismiss,children:(0,z.jsx)(iX,{...d,...l,onPointerDown:q(l.onPointerDown,e=>{e.currentTarget.contains(e.target)&&p(!0),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!0}),ref:h,style:{...l.style,userSelect:f?"text":void 0,WebkitUserSelect:f?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})});function jj(e){return r=>"touch"===r.pointerType?void 0:e()}function jk({...e}){return(0,z.jsx)(jm,{"data-slot":"hover-card",...e})}function jN({...e}){return(0,z.jsx)(jx,{"data-slot":"hover-card-trigger",...e})}function jE({className:e,align:r="center",sideOffset:s=4,...i}){return(0,z.jsx)(jb,{"data-slot":"hover-card-portal",children:(0,z.jsx)(jS,{"data-slot":"hover-card-content",align:r,sideOffset:s,className:(0,ey.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...i})})}$.forwardRef((e,r)=>{let{__scopeHoverCard:s,...i}=e,n=jh(s);return(0,z.jsx)(iQ,{...n,...i,ref:r})}).displayName="HoverCardArrow";let jD=(0,ew.default)("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]),jR=(0,ew.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);(0,ew.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);let jA=(0,ew.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),jM=(e=21)=>{let r="",s=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)r+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&s[e]];return r},jF=(0,$.createContext)(null),jT=(0,$.createContext)(null),jP=()=>(0,$.useContext)(jF),jB=(0,$.createContext)(null),jL=()=>{let e=(0,$.useContext)(jT),r=(0,$.useContext)(jB),s=e??r;if(!s)throw Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return s};function jI({data:e,className:r,...s}){let i=jL(),n=e.filename||"",a="image"==(e.mediaType?.startsWith("image/")&&e.url?"image":"file"),o=n||(a?"Image":"Attachment");return(0,z.jsxs)(jX,{children:[(0,z.jsx)(jN,{asChild:!0,children:(0,z.jsxs)("div",{className:(0,ey.cn)("group relative flex h-8 cursor-pointer select-none items-center gap-1.5 rounded-md border border-border px-1.5 font-medium text-sm transition-all hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",r),...s,children:[(0,z.jsxs)("div",{className:"relative size-5 shrink-0",children:[(0,z.jsx)("div",{className:"absolute inset-0 flex size-5 items-center justify-center overflow-hidden rounded bg-background transition-opacity group-hover:opacity-0",children:a?(0,z.jsx)("img",{alt:n||"attachment",className:"size-5 object-cover",height:20,src:e.url,width:20}):(0,z.jsx)("div",{className:"flex size-5 items-center justify-center text-muted-foreground",children:(0,z.jsx)(jA,{className:"size-3"})})}),(0,z.jsxs)(W.Button,{"aria-label":"Remove attachment",className:"absolute inset-0 size-5 cursor-pointer rounded p-0 opacity-0 transition-opacity group-hover:pointer-events-auto group-hover:opacity-100 [&>svg]:size-2.5",onClick:r=>{r.stopPropagation(),i.remove(e.id)},type:"button",variant:"ghost",children:[(0,z.jsx)(t8,{}),(0,z.jsx)("span",{className:"sr-only",children:"Remove"})]})]}),(0,z.jsx)("span",{className:"flex-1 truncate",children:o})]},e.id)}),(0,z.jsx)(jJ,{className:"w-auto p-2",children:(0,z.jsxs)("div",{className:"w-auto space-y-3",children:[a&&(0,z.jsx)("div",{className:"flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border",children:(0,z.jsx)("img",{alt:n||"attachment preview",className:"max-h-full max-w-full object-contain",height:384,src:e.url,width:448})}),(0,z.jsx)("div",{className:"flex items-center gap-2.5",children:(0,z.jsxs)("div",{className:"min-w-0 flex-1 space-y-1 px-0.5",children:[(0,z.jsx)("h4",{className:"truncate font-semibold text-sm leading-none",children:n||(a?"Image":"Attachment")}),e.mediaType&&(0,z.jsx)("p",{className:"truncate font-mono text-muted-foreground text-xs",children:e.mediaType})]})})]})})]})}function jO({children:e,className:r,...s}){let i=jL();return i.files.length?(0,z.jsx)("div",{className:(0,ey.cn)("flex flex-wrap items-center gap-2 p-3 w-full",r),...s,children:i.files.map(r=>(0,z.jsx)($.Fragment,{children:e(r)},r.id))}):null}let jz=({label:e="Add photos or files",...r})=>{let s=jL();return(0,z.jsxs)(ax,{...r,onSelect:e=>{e.preventDefault(),s.openFileDialog()},children:[(0,z.jsx)(jR,{className:"mr-2 size-4"})," ",e]})},j$=({className:e,accept:r,multiple:s,globalDrop:i,syncHiddenInput:n,maxFiles:a,maxFileSize:o,onError:l,onSubmit:c,children:d,...u})=>{let h=jP(),f=!!h,p=(0,$.useRef)(null),m=(0,$.useRef)(null),[g,x]=(0,$.useState)([]),v=f?h.attachments.files:g,_=(0,$.useRef)(v);_.current=v;let y=(0,$.useCallback)(()=>{p.current?.click()},[]),b=(0,$.useCallback)(e=>!r||""===r.trim()||r.split(",").map(e=>e.trim()).filter(Boolean).some(r=>{if(r.endsWith("/*")){let s=r.slice(0,-1);return e.type.startsWith(s)}return e.type===r}),[r]),w=(0,$.useCallback)(e=>{let r=Array.from(e),s=r.filter(e=>b(e));if(r.length&&0===s.length)return void l?.({code:"accept",message:"No files match the accepted types."});let i=s.filter(e=>!o||e.size<=o);s.length>0&&0===i.length?l?.({code:"max_file_size",message:"All files exceed the maximum size."}):x(e=>{let r="number"==typeof a?Math.max(0,a-e.length):void 0,s="number"==typeof r?i.slice(0,r):i;"number"==typeof r&&i.length>r&&l?.({code:"max_files",message:"Too many files. Some were not added."});let n=[];for(let e of s)n.push({id:jM(),type:"file",url:URL.createObjectURL(e),mediaType:e.type,filename:e.name});return e.concat(n)})},[b,a,o,l]),S=(0,$.useCallback)(e=>x(r=>{let s=r.find(r=>r.id===e);return s?.url&&URL.revokeObjectURL(s.url),r.filter(r=>r.id!==e)}),[]),C=(0,$.useCallback)(()=>x(e=>{for(let r of e)r.url&&URL.revokeObjectURL(r.url);return[]}),[]),j=f?h.attachments.add:w,k=f?h.attachments.remove:S,N=f?h.attachments.clear:C,E=f?h.attachments.openFileDialog:y;(0,$.useEffect)(()=>{f&&h.__registerFileInput(p,()=>p.current?.click())},[f,h]),(0,$.useEffect)(()=>{n&&p.current&&0===v.length&&(p.current.value="")},[v,n]),(0,$.useEffect)(()=>{let e=m.current;if(!e||i)return;let r=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault()},s=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault(),e.dataTransfer?.files&&e.dataTransfer.files.length>0&&j(e.dataTransfer.files)};return e.addEventListener("dragover",r),e.addEventListener("drop",s),()=>{e.removeEventListener("dragover",r),e.removeEventListener("drop",s)}},[j,i]),(0,$.useEffect)(()=>{if(!i)return;let e=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault()},r=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault(),e.dataTransfer?.files&&e.dataTransfer.files.length>0&&j(e.dataTransfer.files)};return document.addEventListener("dragover",e),document.addEventListener("drop",r),()=>{document.removeEventListener("dragover",e),document.removeEventListener("drop",r)}},[j,i]),(0,$.useEffect)(()=>()=>{if(!f)for(let e of _.current)e.url&&URL.revokeObjectURL(e.url)},[f]);let D=async e=>{try{let r=await fetch(e),s=await r.blob();return new Promise(e=>{let r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=()=>e(null),r.readAsDataURL(s)})}catch{return null}},R=(0,$.useMemo)(()=>({files:v.map(e=>({...e,id:e.id})),add:j,remove:k,clear:N,openFileDialog:E,fileInputRef:p}),[v,j,k,N,E]),A=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("input",{accept:r,"aria-label":"Upload files",className:"hidden",multiple:s,onChange:e=>{e.currentTarget.files&&j(e.currentTarget.files),e.currentTarget.value=""},ref:p,title:"Upload files",type:"file"}),(0,z.jsx)("form",{className:(0,ey.cn)("w-full",e),onSubmit:e=>{e.preventDefault();let r=e.currentTarget,s=f?h.textInput.value:new FormData(r).get("message")||"";f||r.reset(),Promise.all(v.map(async({id:e,...r})=>{if(r.url&&r.url.startsWith("blob:")){let e=await D(r.url);return{...r,url:e??r.url}}return r})).then(r=>{try{let i=c({text:s,files:r},e);i instanceof Promise?i.then(()=>{N(),f&&h.textInput.clear()}).catch(()=>{}):(N(),f&&h.textInput.clear())}catch{}}).catch(()=>{})},ref:m,...u,children:(0,z.jsx)(y1,{className:"overflow-hidden",children:d})})]});return f?A:(0,z.jsx)(jB.Provider,{value:R,children:A})},jW=({onChange:e,onKeyDown:r,onPasteText:s,className:i,placeholder:n="What would you like to know?",...a})=>{let o=jP(),l=jL(),[c,d]=(0,$.useState)(!1),u=o?{value:o.textInput.value,onChange:r=>{o.textInput.setInput(r.currentTarget.value),e?.(r)}}:{onChange:e};return(0,z.jsx)(y8,{className:(0,ey.cn)("field-sizing-content max-h-48 min-h-9",i),name:"message",onCompositionEnd:()=>d(!1),onCompositionStart:()=>d(!0),onKeyDown:e=>{if(r?.(e),!e.defaultPrevented){if("Enter"===e.key){if(c||e.nativeEvent.isComposing||e.shiftKey)return;e.preventDefault();let r=e.currentTarget.form,s=r?.querySelector('button[type="submit"]');if(s?.disabled)return;r?.requestSubmit()}if("Backspace"===e.key&&""===e.currentTarget.value&&l.files.length>0){e.preventDefault();let r=l.files.at(-1);r&&l.remove(r.id)}}},onPaste:e=>{let r=e.clipboardData?.items;if(!r)return;let i=[];for(let e of r)if("file"===e.kind){let r=e.getAsFile();r&&i.push(r)}if(i.length>0){e.preventDefault(),l.add(i);return}if(s){let r=e.clipboardData.getData("text");r.length>0&&s(e,r)}},placeholder:n,...a,...u})},jH=({className:e,...r})=>(0,z.jsx)(y5,{align:"block-end",className:(0,ey.cn)("order-first flex-wrap gap-1",e),...r}),jU=({variant:e="ghost",className:r,size:s,...i})=>{let n=s??($.Children.count(i.children)>1?"sm":"icon-sm");return(0,z.jsx)(y4,{className:(0,ey.cn)(r),size:n,type:"button",variant:e,...i})},jK=e=>(0,z.jsx)(ap,{...e}),jq=({className:e,children:r,...s})=>(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)(jU,{className:e,...s,children:r??(0,z.jsx)(eS,{className:"size-4"})})}),jV=({className:e,...r})=>(0,z.jsx)(ag,{align:"start",className:(0,ey.cn)(e),...r}),jY=({className:e,...r})=>(0,z.jsx)(ax,{className:(0,ey.cn)(e),...r}),jG=({className:e,variant:r="default",size:s="icon-sm",status:i,children:n,...a})=>{let o=(0,z.jsx)(jD,{className:"size-4"});return"submitted"===i?o=(0,z.jsx)(rk,{className:"size-4 animate-spin"}):"streaming"===i?o=(0,z.jsx)(uA,{className:"size-4"}):"error"===i&&(o=(0,z.jsx)(t8,{className:"size-4"})),(0,z.jsx)(y4,{"aria-label":"Submit",className:(0,ey.cn)(e),size:s,type:"submit",variant:r,...a,children:n??o})},jX=({openDelay:e=0,closeDelay:r=0,...s})=>(0,z.jsx)(jk,{closeDelay:r,openDelay:e,...s}),jJ=({align:e="start",...r})=>(0,z.jsx)(jE,{align:e,...r}),jZ=({size:e=16})=>(0,z.jsxs)("svg",{height:e,strokeLinejoin:"round",style:{color:"currentcolor"},viewBox:"0 0 16 16",width:e,children:[(0,z.jsx)("title",{children:"Loader"}),(0,z.jsxs)("g",{clipPath:"url(#clip0_2393_1490)",children:[(0,z.jsx)("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),(0,z.jsx)("defs",{children:(0,z.jsx)("clipPath",{id:"clip0_2393_1490",children:(0,z.jsx)("rect",{fill:"white",height:"16",width:"16"})})})]}),jQ=({className:e,size:r=16,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("inline-flex animate-spin items-center justify-center",e),...s,children:(0,z.jsx)(jZ,{size:r})}),j0=(0,ew.default)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),j1=(0,ew.default)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),j2=(0,ew.default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),j5=(0,ew.default)("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]),j3=(0,ew.default)("split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]),j4=e=>(0,ey.cn)("flex h-5 w-5 shrink-0 items-center justify-center rounded-full","codex"===e?"bg-emerald-500/10 text-emerald-600":"bg-violet-500/10 text-violet-600");function j6({agentType:e,currentAgentName:r,alternateProviders:s,onBranch:i,disabled:n,emphasis:a="normal"}){return(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:(0,ey.cn)("h-7 w-7 rounded-md transition-colors hover:bg-muted hover:text-foreground","subtle"===a?"text-muted-foreground/50 group-hover:text-muted-foreground group-focus-within:text-muted-foreground":"text-muted-foreground"),disabled:n,"aria-label":"Branch conversation",children:n?(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}):(0,z.jsx)(j3,{className:"h-4 w-4"})})}),(0,z.jsxs)(ag,{align:"start",className:"w-44 p-1.5",children:[(0,z.jsx)(ab,{className:"px-2 py-1.5",children:(0,z.jsx)("div",{className:"text-xs font-medium",children:"Branch conversation"})}),(0,z.jsxs)(ax,{className:"h-8 cursor-pointer items-center gap-2 rounded-md px-2 text-xs",onSelect:()=>i(),children:[(0,z.jsx)("div",{className:j4(e),children:(0,z.jsx)(aE,{className:"h-3 w-3"})}),(0,z.jsx)("span",{className:"min-w-0 flex-1 truncate",children:r}),(0,z.jsx)("span",{className:"shrink-0 text-[11px] text-muted-foreground",children:"current"})]}),s.length>0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(aw,{className:"my-1"}),s.map(e=>(0,z.jsxs)(ax,{className:"h-8 cursor-pointer items-center gap-2 rounded-md px-2 text-xs",onSelect:()=>i(e.type),children:[(0,z.jsx)("div",{className:j4(e.type),children:(0,z.jsx)(aE,{className:"h-3 w-3"})}),(0,z.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.displayName})]},e.type))]})]})]})}function j8({durationMs:e,outcome:r,emphasis:s,agentType:i,currentAgentName:n,alternateProviders:a,onBranch:o,disabled:l}){let c=void 0!==e?function(e){let r=Math.round(e/1e3);if(r<60)return`${r}s`;let s=Math.floor(r/60),i=r%60;if(s<60)return i?`${s}m ${i}s`:`${s}m`;let n=Math.floor(s/60),a=s%60;return a?`${n}h ${a}m`:`${n}h`}(e):"server_restart"===r?"interrupted":null;return(0,z.jsxs)("div",{className:"group flex items-center gap-2 py-0.5","data-turn-end":!0,children:[(0,z.jsx)("div",{className:"h-px flex-1 bg-border/60"}),null!==c&&(0,z.jsx)("span",{className:(0,ey.cn)("shrink-0 text-[11px] tabular-nums transition-colors","subtle"===s?"text-muted-foreground/50 group-hover:text-muted-foreground group-focus-within:text-muted-foreground":"text-muted-foreground"),children:c}),(0,z.jsx)(j6,{agentType:i,currentAgentName:n,alternateProviders:a,onBranch:o,disabled:l,emphasis:s}),(0,z.jsx)("div",{className:"h-px flex-1 bg-border/60"})]})}let j7=(0,ew.default)("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);function j9({mode:e,onModeChange:r,disabled:s}){return(0,z.jsxs)("div",{className:"inline-flex items-center rounded-md border bg-muted/50 px-0.5 text-xs",children:[(0,z.jsxs)("button",{onClick:()=>r("plan"),disabled:s,className:(0,ey.cn)("inline-flex items-center gap-1 rounded-sm px-2 py-0.5 transition-colors","plan"===e?"bg-primary text-primary-foreground font-medium shadow-sm":"text-muted-foreground hover:text-foreground",s&&"opacity-50 cursor-not-allowed"),children:[(0,z.jsx)(j7,{className:"h-3 w-3"}),"Plan"]}),(0,z.jsxs)("button",{onClick:()=>r("edit"),disabled:s,className:(0,ey.cn)("inline-flex items-center gap-1 rounded-sm px-2 py-0.5 transition-colors","edit"===e?"bg-primary text-primary-foreground font-medium shadow-sm":"text-muted-foreground hover:text-foreground",s&&"opacity-50 cursor-not-allowed"),children:[(0,z.jsx)(rg,{className:"h-3 w-3"}),"Edit"]})]})}function ke(e){if(!e)return[];try{let r=window.localStorage.getItem(e);if(!r)return[];let s=JSON.parse(r);if(!Array.isArray(s))return[];return s.filter(e=>"string"==typeof e)}catch{return[]}}function kt(e){if(!e)return"";try{return window.localStorage.getItem(e)??""}catch{return""}}function kr(e){let r=e.parentElement;for(;r;){let{overflowY:e}=getComputedStyle(r);if("auto"===e||"scroll"===e)return r;r=r.parentElement}return null}function ks({messages:e,contentRef:r}){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(!1),[o,l]=(0,$.useState)(null),c=(0,$.useRef)(null),d=(0,$.useCallback)(()=>{let s=r.current;if(!s)return;c.current||(c.current=kr(s));let n=c.current;if(!n)return;let o=n.scrollHeight>n.clientHeight;if(a(o),!o)return void i([]);let l=s.querySelectorAll("[data-user-msg-idx]"),d=n.getBoundingClientRect(),u=[];l.forEach(r=>{let s=parseInt(r.dataset.userMsgIdx,10),i=e[s];if(!i)return;let a=(r.getBoundingClientRect().top-d.top+n.scrollTop)/n.scrollHeight;u.push({index:s,position:Math.max(0,Math.min(1,a)),preview:function(e){if("user"!==e.type)return"";let r=e.content,s="string"==typeof r?r:r.filter(e=>"text"===e.type).map(e=>e.text).join(" "),i="string"!=typeof r&&r.some(e=>"image"===e.type),n=s.split("\n")[0]??"";return(n.length>80?n.slice(0,77)+"...":n)||(i?"(Image)":"")}(i)})}),i(u)},[e,r]);(0,$.useEffect)(()=>{let e=r.current;if(!e){c.current=null,i([]),a(!1);return}let s=kr(e);if(!s)return;c.current=s,d();let n=new ResizeObserver(d);return n.observe(s),n.observe(e),()=>{n.disconnect()}},[e,d,r]);let u=(0,$.useCallback)(e=>{let s=r.current;if(!s)return;let i=s.querySelector(`[data-user-msg-idx="${e}"]`);i&&i.scrollIntoView({block:"start",behavior:"smooth"})},[r]);return n&&0!==s.length?(0,z.jsx)("div",{className:"absolute right-0 top-0 bottom-0 w-6 z-20 pointer-events-none",children:s.map(e=>(0,z.jsxs)("div",{className:"absolute right-0.5 -translate-y-1/2 pointer-events-auto",style:{top:`${100*e.position}%`},children:[(0,z.jsx)("div",{className:"w-3 h-[3px] rounded-sm bg-primary/50 hover:bg-primary cursor-pointer transition-colors",onClick:()=>u(e.index),onMouseEnter:()=>l(e.index),onMouseLeave:()=>l(null)}),o===e.index&&e.preview&&(0,z.jsxs)("div",{className:"absolute right-full mr-2 top-1/2 -translate-y-1/2 max-w-64 px-2.5 py-1.5 bg-popover border border-border rounded-md shadow-md text-xs text-popover-foreground whitespace-nowrap overflow-hidden text-ellipsis pointer-events-none",children:[e.preview,(0,z.jsx)("div",{className:"absolute top-1/2 -translate-y-1/2 -right-1 w-2 h-2 bg-popover border-r border-t border-border rotate-45"})]})]},e.index))}):null}let ki=(0,ew.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);function kn({projectId:e,branch:r,currentSessionId:s,refreshKey:i,pendingTitleSessionId:n,aiTitleOverride:a,onSwitch:o,onDelete:l}){let[c,d]=(0,$.useState)([]),[u,h]=(0,$.useState)(null),[f,p]=(0,$.useState)(""),[m,g]=(0,$.useState)(!1),[x,v]=(0,$.useState)(null),[_,y]=(0,$.useState)(null),[b,w]=(0,$.useState)(0),S=(0,$.useCallback)(()=>w(e=>e+1),[]);(0,$.useEffect)(()=>{let s=!1;return(0,rv.listBranchSessions)(e,r).then(e=>{s||d(e.sessions)}).catch(e=>{s||console.error("[SessionHistoryDropdown] refresh failed:",e)}),()=>{s=!0}},[e,r,i,b]);let C=(0,$.useRef)(null);(0,$.useEffect)(()=>{if(!s)return;if(c.some(e=>e.id===s)){C.current=null;return}if(C.current===s)return;C.current=s;let i=!1;return(0,rv.listBranchSessions)(e,r).then(e=>{if(i)return;d(e.sessions);let r=e.sessions.find(e=>e.id===s),n=!!r&&(a?.sessionId===r.id||!!(r.title&&r.title.trim().length>0));r&&!n&&y(s)}).catch(e=>{i||console.error("[SessionHistoryDropdown] missing-session refresh failed:",e)}),()=>{i=!0}},[s,c,e,r,a]),(0,$.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>{y(e=>e===_?null:e)},3e4);return()=>clearTimeout(e)},[_]),(0,$.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>{y(e=>e===_?null:e)},3e4);return()=>clearTimeout(e)},[_]);let j=async(e,r)=>{let s=r.trim().length>0?r.trim():null;try{await (0,rv.renameSession)(e,s),d(r=>r.map(r=>r.id===e?{...r,title:s}:r)),h(null),xg.toast.success("Renamed")}catch(e){xg.toast.error("Rename failed"),console.error(e)}},k=async(e,r)=>{let s=null==r,i=s?Date.now():null;d(r=>r.map(r=>r.id===e?{...r,favorited_at:i}:r));try{await (0,rv.setSessionFavorited)(e,s)}catch(i){d(s=>s.map(s=>s.id===e?{...s,favorited_at:r}:s)),xg.toast.error(s?"Favorite failed":"Unfavorite failed"),console.error(i)}},N=async e=>{try{await (0,rv.deleteSession)(e);let r=c.filter(r=>r.id!==e);d(r),l?.(e,r),xg.toast.success("Deleted")}catch(e){xg.toast.error("Delete failed"),console.error(e)}},E=e=>a&&a.sessionId===e.id?a.title:e.title&&e.title.trim().length>0?e.title:e.updated_at?new Date(e.updated_at).toLocaleString():new Date(e.created_at).toLocaleString(),D=e=>{let r;return a?.sessionId!==e.id&&(!e.title||!(e.title.trim().length>0))&&(r=e.id,null!==n&&n===r||_===e.id)},R=c.find(e=>e.id===s),A=null!==s&&(!R||D(R)),M=R?E(R):null===s?"New Session":"History",F=A?"Generating title…":M;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(ap,{open:m,onOpenChange:e=>{g(e),e&&S()},children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",className:"h-7 text-xs gap-1 w-[200px] justify-start",title:F,children:[A?(0,z.jsx)("span",{className:"block h-3 flex-1 rounded-sm bg-accent animate-pulse",role:"status","aria-label":"Generating title"}):(0,z.jsx)("span",{className:"truncate flex-1 text-left",children:M}),(0,z.jsx)(sw,{className:"h-3 w-3 flex-shrink-0"})]})}),(0,z.jsxs)(ag,{align:"start",className:"w-80 max-h-96 overflow-y-auto",children:[0===c.length&&(0,z.jsx)("div",{className:"px-2 py-3 text-xs text-muted-foreground",children:"No history yet."}),c.map(e=>{let r=e.id===s,i=u===e.id;return(0,z.jsxs)(ax,{onSelect:s=>{i?s.preventDefault():r||o(e.id)},onPointerMove:null!==u?e=>e.preventDefault():void 0,className:`flex items-center gap-2 group ${r?"bg-accent text-accent-foreground":""}`,children:[(0,z.jsx)("div",{className:"flex-1 min-w-0",children:i?(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsx)(ro,{value:f,onChange:e=>p(e.target.value),onKeyDown:r=>{r.stopPropagation(),"Enter"===r.key&&j(e.id,f),"Escape"===r.key&&h(null)},autoFocus:!0,className:"h-6 text-xs"}),(0,z.jsx)("button",{type:"button","aria-label":"Save rename",onClick:r=>{r.stopPropagation(),j(e.id,f)},children:(0,z.jsx)(rf.Check,{className:"h-3 w-3"})}),(0,z.jsx)("button",{type:"button","aria-label":"Cancel rename",onClick:e=>{e.stopPropagation(),h(null)},children:(0,z.jsx)(t8,{className:"h-3 w-3"})})]}):D(e)?(0,z.jsx)("div",{className:"py-0.5",title:"Generating title…",children:(0,z.jsx)("span",{className:"block h-3 w-40 rounded-sm bg-accent animate-pulse",role:"status","aria-label":"Generating title"})}):(0,z.jsx)("div",{className:"truncate text-xs",title:`${e.updated_at?new Date(e.updated_at).toLocaleString():new Date(e.created_at).toLocaleString()} • ${e.entry_count??0} messages • status: ${e.status}`,children:E(e)})}),!i&&(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsxs)("div",{className:"opacity-0 group-hover:opacity-100 flex items-center gap-1",children:[(0,z.jsx)("button",{type:"button","aria-label":"Rename conversation",onClick:r=>{r.stopPropagation(),h(e.id),p(e.title??"")},className:"p-1 hover:bg-muted rounded",children:(0,z.jsx)(rg,{className:"h-3 w-3"})}),(0,z.jsx)("button",{type:"button","aria-label":"Delete conversation",onClick:r=>{r.stopPropagation(),g(!1),v(e)},className:"p-1 hover:bg-muted rounded text-destructive",children:(0,z.jsx)(rc,{className:"h-3 w-3"})})]}),(0,z.jsx)("button",{type:"button","aria-label":null!=e.favorited_at?"Unfavorite conversation":"Favorite conversation",title:null!=e.favorited_at?"Unfavorite":"Favorite",onClick:r=>{r.stopPropagation(),k(e.id,e.favorited_at??null)},className:`p-1 hover:bg-muted rounded ${null!=e.favorited_at?"opacity-100 text-yellow-500":"opacity-0 group-hover:opacity-100 text-muted-foreground"}`,children:(0,z.jsx)(ki,{className:`h-3 w-3 ${null!=e.favorited_at?"fill-current":""}`})})]})]},e.id)}),c.length>0&&(0,z.jsx)(aw,{}),(0,z.jsx)(ax,{onSelect:()=>S(),className:"text-xs text-muted-foreground",children:"Refresh"})]})]}),(0,z.jsx)(lU,{open:null!==x,onOpenChange:e=>{e||v(null)},children:(0,z.jsxs)(lV,{children:[(0,z.jsxs)(lY,{children:[(0,z.jsx)(lX,{children:"Delete conversation?"}),(0,z.jsx)(lJ,{children:x?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"font-medium text-foreground",children:E(x)})," ","and its message history will be permanently deleted. This cannot be undone."]}):null})]}),(0,z.jsxs)(lG,{children:[(0,z.jsx)(lQ,{children:"Cancel"}),(0,z.jsx)(lZ,{className:(0,ey.cn)((0,W.buttonVariants)({variant:"destructive"}),"border-transparent"),onClick:()=>{x&&N(x.id),v(null)},children:"Delete"})]})]})})]})}let ka=(0,ew.default)("quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]);function ko(e,r){let s=e;for(;s&&s!==r;){if(s.nodeType===Node.ELEMENT_NODE){let e=s.getAttribute("data-message-idx");if(null!==e)return e}s=s.parentNode}return null}function kl({containerRef:e,onQuote:r}){let[s,i]=(0,$.useState)(null);if((0,$.useEffect)(()=>{function r(){let r=e.current;if(!r)return void i(null);let s=window.getSelection();if(!s||s.isCollapsed||0===s.rangeCount)return void i(null);let n=s.toString();if(!n.trim())return void i(null);let{anchorNode:a,focusNode:o}=s;if(!a||!o||!r.contains(a)||!r.contains(o))return void i(null);let l=ko(a,r),c=ko(o,r);if(null===l||null===c||l!==c)return void i(null);let d=s.getRangeAt(0).getBoundingClientRect();0===d.width&&0===d.height?i(null):i({text:n,rect:{top:d.top,bottom:d.bottom,left:d.left,width:d.width}})}function s(){let e=window.getSelection();e&&!e.isCollapsed&&e.toString().trim()||i(null)}return document.addEventListener("mouseup",r),document.addEventListener("keyup",r),document.addEventListener("touchend",r),document.addEventListener("selectionchange",s),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{document.removeEventListener("mouseup",r),document.removeEventListener("keyup",r),document.removeEventListener("touchend",r),document.removeEventListener("selectionchange",s),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e]),!s||"undefined"==typeof document)return null;let n=s.rect.top-8-30<8?s.rect.bottom+8:s.rect.top-8-30,a=s.rect.left+s.rect.width/2,o=Math.max(8,Math.min(window.innerWidth-8,a));return(0,ee.createPortal)((0,z.jsxs)("button",{type:"button",onMouseDown:e=>{e.preventDefault(),r(s.text),window.getSelection()?.removeAllRanges(),i(null)},style:{position:"fixed",top:n,left:o,transform:"translateX(-50%)",zIndex:50},className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-2xl hover:bg-accent",children:[(0,z.jsx)(ka,{className:"h-3 w-3"}),"Quote"]}),document.body)}let kc=(0,ew.default)("search-check",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),kd=[{type:"claude-code",displayName:"Claude Code",available:!0},{type:"codex",displayName:"Codex",available:!0}];function ku({projectId:e,branch:r,sessionId:s,currentAgentType:i,providers:n}){let[a,o]=(0,$.useState)(!1),[l,c]=(0,$.useState)(""),[d,u]=(0,$.useState)("claude-code"),[h,f]=(0,$.useState)("new"),[p,m]=(0,$.useState)(null),[g,x]=(0,$.useState)(!1),[v,_]=(0,$.useState)(null),[y,b]=(0,$.useState)(!1),[w,S]=(0,$.useState)(null),C=n?.length?n:kd;if((0,$.useEffect)(()=>{var e;let r;a&&u((e=i??null,r=C.filter(e=>e.available),r.find(r=>r.type!==e)?.type??r[0]?.type??"claude-code"))},[a]),(0,$.useEffect)(()=>{if(!a||!s)return;let r=!1;return f("new"),m(null),_(null),x(!0),rv.api.getReviewerCandidate(e,s).then(e=>{!r&&(m(e),e?.available&&e.sessionId?f("reuse"):e&&_("上次 reviewer 已不可用,将创建新 session"))}).catch(()=>{r||_("无法加载上次 reviewer,将创建新 session")}).finally(()=>{r||x(!1)}),()=>{r=!0}},[a,e,s]),!s)return null;let j=async()=>{b(!0),S(null);try{let i="reuse"===h&&p?.sessionId?{reviewerSessionId:p.sessionId}:{reviewerAgentType:d};await rv.api.createWorkflowRun({projectId:e,branch:r,sourceSessionId:s,reviewFocus:l.trim()||void 0,...i}),o(!1),c("")}catch(r){S(r instanceof Error?r.message:String(r)),rv.api.getReviewerCandidate(e,s).then(e=>{m(e),e?.available&&e.sessionId||(f("new"),_("上次 reviewer 已不可用,将创建新 session"))}).catch(()=>void 0)}finally{b(!1)}};return(0,z.jsxs)(t7,{open:a,onOpenChange:o,children:[(0,z.jsx)(t9,{asChild:!0,children:(0,z.jsx)(W.Button,{variant:"ghost",size:"sm",title:"让另一个 agent review 这个 session 的最新成果",children:(0,z.jsx)(kc,{className:"h-4 w-4"})})}),(0,z.jsxs)(rr,{className:"sm:max-w-md",children:[(0,z.jsxs)(rs,{children:[(0,z.jsx)(rn,{children:"发起 Review"}),(0,z.jsx)(ra,{children:"默认继续上次 reviewer 的上下文,也可以创建新 reviewer session。反馈会先经你确认,再发回本 session。"})]}),(0,z.jsxs)("div",{className:"grid gap-2",children:[p?.available&&p.sessionId&&(0,z.jsxs)(W.Button,{type:"button",variant:"reuse"===h?"secondary":"outline",className:"h-auto justify-start whitespace-normal py-2 text-left","aria-pressed":"reuse"===h,onClick:()=>f("reuse"),children:["继续上次 Reviewer — ",p.title??"Review session"]}),(0,z.jsx)(W.Button,{type:"button",variant:"new"===h?"secondary":"outline",className:"justify-start","aria-pressed":"new"===h,onClick:()=>f("new"),children:"创建新 Reviewer Session"})]}),v&&(0,z.jsx)("p",{className:"text-sm text-amber-600 dark:text-amber-400",children:v}),"new"===h&&(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"text-sm text-muted-foreground shrink-0",children:"Reviewer agent"}),(0,z.jsxs)(cX,{value:d,onValueChange:e=>u(e),children:[(0,z.jsx)(cZ,{className:"h-8 text-sm flex-1",children:(0,z.jsx)(cJ,{})}),(0,z.jsx)(cQ,{children:C.map(e=>(0,z.jsxs)(c0,{value:e.type,disabled:!e.available,children:[e.displayName,e.type===i?"(当前 agent)":""]},e.type))})]})]}),(0,z.jsx)("input",{className:"w-full rounded-md border bg-transparent px-3 py-2 text-sm",placeholder:"Review focus(可选):本次审查重点…",value:l,onChange:e=>c(e.target.value)}),w&&(0,z.jsx)("p",{className:"text-sm text-destructive",children:w}),(0,z.jsx)(ri,{children:(0,z.jsx)(W.Button,{onClick:j,disabled:y||g,children:"开始 Review"})})]})]})}function kh(){return 0===jL().files.length?null:(0,z.jsx)(jH,{children:(0,z.jsx)(jO,{children:e=>(0,z.jsx)(jI,{data:e})})})}let kf=(0,$.createContext)(null);function kp(){let e=(0,$.useContext)(kf);if(!e)throw Error("useAgentConversation must be used within AgentConversationContext");return e}let km=/\[📎 paste #(\d+) \([^)]+\)\]/g;function kg(e,r){return`[📎 paste #${e} (${function(e){if(e<1024)return`${e}B`;let r=e/1024;return r<10?`${r.toFixed(1)}KB`:`${Math.round(r)}KB`}(r)})]`}let kx=(0,$.forwardRef)(function({projectId:e,branch:r,sessionId:s,setSessionUrlParam:i,project:n,onAgentModeChange:a,onTaskCompleted:o,onSessionStarted:l,onSessionTitleUpdated:c,onStatusChange:d,onNewConversation:u},h){var f;let p,m,g,x,[v,_]=function(e,r){let s=e&&r?`vibedeckx:agent-draft:${e}:${r}`:null,[i,n]=(0,$.useState)(()=>kt(s)),[a,o]=(0,$.useState)(s);return a!==s&&(o(s),n(kt(s))),[i,(0,$.useCallback)(e=>{n(e);if(s)try{e?window.localStorage.setItem(s,e):window.localStorage.removeItem(s)}catch{}},[s])]}(e,r),[y,b]=(0,$.useState)([]),[w,S]=(0,$.useState)(1),[C,j]=(0,$.useState)("edit"),[k,N]=(0,$.useState)(!1),[E,D]=(0,$.useState)(!1),[R,A]=(0,$.useState)(!1),[M,F]=(0,$.useState)("claude-code"),[T,P]=(0,$.useState)([]),[B,L]=(0,$.useState)(0),[I,O]=(0,$.useState)(null),[H,U]=(0,$.useState)(null),K=(0,$.useRef)(null),q=(0,$.useCallback)(e=>{if("ArrowUp"!==e.key&&"ArrowDown"!==e.key||!e.shiftKey||e.ctrlKey||e.metaKey||e.altKey)return;let r=K.current;if(!r)return;let s=kr(r);if(!s)return;let i=s.getBoundingClientRect(),n=s.scrollTop,a="ArrowUp"===e.key,o=null,l=a?-1/0:1/0;r.querySelectorAll("[data-user-msg-idx]").forEach(e=>{let r=e.getBoundingClientRect().top-i.top+s.scrollTop;a?r<n-12&&r>l&&(l=r,o=e):r>n+12&&r<l&&(l=r,o=e)}),o&&(e.preventDefault(),o.scrollIntoView({block:"start",behavior:"smooth"}))},[K]),V=(0,$.useRef)(null),Y=function(e,r,s){let i=r&&s?`vibedeckx:agent-input-history:${r}:${s}`:null,n=(0,$.useRef)(ke(i)),a=(0,$.useRef)(-1),o=(0,$.useRef)(""),[l,c]=(0,$.useState)(i);return l!==i&&(c(i),n.current=ke(i),a.current=-1,o.current=""),{push:(0,$.useCallback)(e=>{let r=e.trim();if(!r)return;let s=n.current;if(s.length>0&&s[s.length-1]===r){a.current=-1;return}s.push(r),s.length>50&&s.shift(),a.current=-1;if(i)try{0===s.length?window.localStorage.removeItem(i):window.localStorage.setItem(i,JSON.stringify(s))}catch{}},[i]),handleKeyDown:(0,$.useCallback)(r=>{let s=r.currentTarget,i=n.current;if(0!==i.length)if("ArrowUp"===r.key){if(0!==s.selectionStart||0!==s.selectionEnd)return;if(r.preventDefault(),-1===a.current)o.current=s.value,a.current=i.length-1;else{if(!(a.current>0))return;a.current--}e(i[a.current])}else if("ArrowDown"===r.key){if(-1===a.current)return;let n=s.value.length;if(s.selectionStart!==n||s.selectionEnd!==n)return;r.preventDefault(),a.current<i.length-1?(a.current++,e(i[a.current])):(a.current=-1,e(o.current))}else -1!==a.current&&(a.current=-1)},[e])}}(_,e,r),{remotes:G}=_m(),X=[];for(let e of(n?.path&&X.push({id:"local",label:"Local",icon:aD}),G))X.push({id:e.remote_server_id,label:e.server_name,icon:sd(e)});let{session:J,messages:Z,status:Q,isConnected:ee,isInitialized:et,isLoading:er,error:es,remoteStatus:ei,sendMessage:en,uploadPaste:ea,stopSession:eo,switchAgentType:el,startNewConversation:ec,ensureSession:ed,switchMode:eu,acceptPlan:eh,residentLimitPrompt:ef}=function(e,r,s,i,n){let a=n?.sessionId??null,[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)([]),[u,h]=(0,$.useState)("stopped"),[f,p]=(0,$.useState)(!1),[m,g]=(0,$.useState)(!1),[x,v]=(0,$.useState)(!1),[_,y]=(0,$.useState)(null),[b,w]=(0,$.useState)(null),S=(0,$.useRef)(null),C=(0,$.useRef)(null),j=(0,$.useRef)(()=>{}),k=(0,$.useRef)(null),N=(0,$.useRef)(0),E=(0,$.useRef)({entries:[],status:"stopped"}),D=(0,$.useRef)(!1),R=(0,$.useRef)(!0),A=(0,$.useRef)(null),M=(0,$.useRef)(null),F=(0,$.useRef)(0),T=(0,$.useRef)(!1),P=(0,$.useRef)(0),B=(0,$.useRef)(!1),L=(0,$.useRef)(!1),I=(0,$.useRef)(n?.onTaskCompleted),O=(0,$.useRef)(n?.onSessionStarted),z=(0,$.useRef)(n?.onTitleUpdated),W=(0,$.useRef)(e),H=(0,$.useRef)(r),U=(0,$.useRef)(a);(0,$.useEffect)(()=>{I.current=n?.onTaskCompleted,O.current=n?.onSessionStarted,z.current=n?.onTitleUpdated,W.current=e,H.current=r,U.current=a});let K=(0,$.useCallback)((e,r=!1)=>{(0,rv.getFreshToken)(r?{skipCache:!0}:void 0).then(()=>j.current(e))},[]),q=(0,$.useCallback)(e=>{let r=()=>{let e=W.current;if(!e)return;let r=H.current;SU.delete(SK(e,r,U.current));let s=C.current;s&&SU.delete(SK(e,r,s))};if(S.current&&C.current!==e&&(console.log(`[AgentSession] Closing stale WS for ${C.current}, switching to ${e}`),S.current.close(1e3,"session-switch"),S.current=null,C.current=null),S.current?.readyState===WebSocket.OPEN||S.current?.readyState===WebSocket.CONNECTING)return;0===E.current.entries.filter(Boolean).length&&(E.current={entries:[],status:"running"}),D.current=!1,T.current=!0;let s=(0,rv.getWebSocketUrl)(`/api/agent-sessions/${e}/stream`);console.log("[AgentSession] Connecting to WebSocket:",s);let i=new WebSocket(s);S.current=i,C.current=e,i.onopen=()=>{console.log("[AgentSession] WebSocket connected"),p(!0),y(null),w(null),A.current=Date.now(),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{console.log("[AgentSession] Connection stable, resetting backoff counter"),N.current=0,F.current=0},5e3)},i.onmessage=e=>{try{let n=JSON.parse(e.data);if("JsonPatch"in n){var s;let e=n.JsonPatch;s=E.current,E.current=SS(s,r=>{for(let s of e){let{op:e,path:i,value:n}=s;if("/entries"===i&&"replace"===e&&n?.type==="ENTRY"&&n.content?.type==="system"&&n.content?.content==="__CLEAR_ALL__"){console.log("[JsonPatch] Received clearAll signal - clearing all entries"),r.entries=[];continue}if(i.startsWith("/entries/")){let s=parseInt(i.replace("/entries/",""),10);if(isNaN(s)){console.warn(`[JsonPatch] Invalid index in path: ${i}`);continue}if(n?.type!=="ENTRY"){console.warn("[JsonPatch] Expected ENTRY type for entries path");continue}switch(e){case"add":for(;r.entries.length<=s;)r.entries.push(null);r.entries[s]=n.content;break;case"replace":s<r.entries.length?r.entries[s]=n.content:console.warn(`[JsonPatch] Replace index out of bounds: ${s}`);break;case"remove":s<r.entries.length&&r.entries.splice(s,1)}}else"/status"===i&&n?.type==="STATUS"&&(console.log("[AgentSession] /status patch →",n.content),r.status=n.content)}}),T.current?console.log("[AgentSession] /status patch applied during replay (no setStatus), container.status =",E.current.status):(d([...E.current.entries.filter(Boolean)]),console.log("[AgentSession] setStatus(live) →",E.current.status),h(E.current.status),("stopped"===E.current.status||"error"===E.current.status)&&r());return}if("Ready"in n){console.log("[AgentSession] Received Ready signal - history complete, status=",E.current.status),T.current=!1,d([...E.current.entries.filter(Boolean)]),h(E.current.status),g(!0);return}if("finished"in n){console.log("[AgentSession] Received finished signal, invalidating cache"),D.current=!0,r(),i.close(1e3,"finished");return}if("taskCompleted"in n){let{duration_ms:e,cost_usd:r,input_tokens:s,output_tokens:i}=n.taskCompleted,a=[];if(null!=e){let r=(e/1e3).toFixed(1);a.push(`${r}s`)}if(null!=r)a.push(`$${r.toFixed(4)}`);else if(null!=s||null!=i){let e=(s??0)+(i??0),r=e>1e3?`${(e/1e3).toFixed(1)}K`:String(e);a.push(`${r} tokens`)}xg.toast.success("Task completed",{description:a.length>0?a.join(" · "):void 0}),I.current?.();return}if("remoteStatus"in n)return void w(n.remoteStatus);if("titleUpdated"in n)return void z.current?.(n.titleUpdated.title,C.current);if("error"in n){console.error("[AgentSession] Server error:",n.error),y(n.error),"Session not found"===n.error&&(console.log("[AgentSession] Session invalid, invalidating cache, will create new session"),r(),D.current=!0,l(null),h("stopped"),g(!1),R.current=!0);return}}catch(e){console.error("[AgentSession] Failed to parse message:",e)}},i.onclose=e=>{let s,i;console.log("[AgentSession] WebSocket disconnected",e.code,e.reason),p(!1),M.current&&(clearTimeout(M.current),M.current=null);let n=A.current?Date.now()-A.current:0;if(A.current=null,n>0&&n<5e3){if(F.current++,console.log(`[AgentSession] Short-lived connection (${n}ms), count: ${F.current}, backoff attempt: ${N.current}`),F.current>=3){if(console.log("[AgentSession] Multiple short-lived connections detected, session likely invalid - will recreate"),B.current){console.log("[AgentSession] Skipping auto-restart: last session creation failed"),y("Unable to connect to remote server. Please check the server configuration.");return}r(),l(null),y(null),N.current=0,F.current=0,R.current=!0;return}}else n>=5e3&&(F.current=0);if(D.current||1e3===e.code)return;if(N.current>=10){console.log("[AgentSession] Max reconnect attempts reached"),y("Unable to connect to server. Please check if the backend is running.");return}let a=(i=(s=Math.min(3e4,1e3*Math.pow(2,N.current)))*Math.random()*.25,s+i);console.log(`[AgentSession] Reconnecting in ${Math.round(a)}ms (attempt ${N.current+1})`),N.current++,k.current=setTimeout(()=>{let e=C.current;e&&!D.current&&K(e,!0)},a)},i.onerror=e=>{console.error("[AgentSession] WebSocket error:",e)}},[K]);(0,$.useEffect)(()=>{j.current=q},[q]);let V=(0,$.useCallback)(async s=>{if(!e)return null;if(L.current)return console.log("[AgentSession] startSession already in progress, skipping"),null;L.current=!0;let n=P.current;y(null),w(null),g(!1),B.current=!1;let o=SK(e,r,a),c=SU.get(o);if(c)return console.log(`[AgentSession] Cache hit for ${o}, reconnecting WebSocket directly`),l(c),h(c.status),K(c.id),O.current?.(c),L.current=!1,c;v(!0);try{console.log(`[AgentSession] Starting REST call: projectId=${e}, branch=${r}, sessionId=${a??"latest"}, agentType=${i}, generation=${n}`);let{session:c,messages:u}=a?await Sq(a):await SB(e,r,s,i);if(P.current!==n)return console.log("[AgentSession] Discarding stale session response (generation mismatch)"),null;if(!c)return console.log(`[AgentSession] No existing session for ${e}/${r??"<null>"} — placeholder`),l(null),h("stopped"),d([]),E.current={entries:[],status:"stopped"},g(!0),null;return console.log(`[AgentSession] REST response: sessionId=${c.id}, msgCount=${u?.length??0}, status=${c.status}, explicitSessionIdRequested=${a??"<null>"}`),SU.set(o,c),a&&SU.set(SK(e,r,c.id),c),l(c),h(c.status),u&&u.length>0&&(d(u),E.current={entries:[...u],status:c.status}),K(c.id),O.current?.(c),c}catch(e){if(console.error("[AgentSession] startSession error:",e),P.current!==n)return console.log("[AgentSession] Discarding error (generation mismatch)"),null;return y(e instanceof Error?e.message:"Failed to start session"),B.current=!0,null}finally{L.current=!1,P.current===n&&v(!1)}},[e,r,i,a,K]),Y=(0,$.useCallback)(async(s,i)=>{let n=i||o?.id;if(!n)return void console.warn("[AgentSession] sendMessage: no session ID available (sessionId param:",i,", session?.id:",o?.id,")");if(("string"!=typeof s||s.trim())&&(!Array.isArray(s)||0!==s.length)){console.log(`[AgentSession] sendMessage: targetSessionId=${n}, source=${i?"explicit":"state"}`);try{let e="string"==typeof s?s.trim():s;await SL(n,e)}catch(i){let s=i instanceof Error?i.message:"Failed to send message";console.error("[AgentSession] Failed to send message:",s),s.includes("[404]")&&(e&&(SU.delete(SK(e,r,a)),o?.id&&SU.delete(SK(e,r,o.id))),l(null),h("stopped"),g(!1),R.current=!0),y(s),xg.toast.error("Failed to send message",{description:s})}}},[o?.id,e,r,a]),G=(0,$.useCallback)(async(e,r)=>{let s=r||o?.id;if(!s)throw Error("No session id available for paste upload");return SI(s,e)},[o?.id]),X=(0,$.useCallback)(async()=>{if(o?.id)try{await S$(o.id)}catch(e){e instanceof Error&&e.message,console.error("[AgentSession] Failed to stop session:",e),xg.toast.error("Failed to stop session")}},[o?.id]),J=(0,$.useCallback)(async s=>{if(o?.id){e&&(SU.delete(SK(e,r,a)),SU.delete(SK(e,r,o.id))),v(!0),y(null);try{await SO(o.id,s),s&&l(e=>e?{...e,agentType:s}:null)}catch(e){y(e instanceof Error?e.message:"Failed to restart session"),console.error("[AgentSession] Failed to restart session:",e)}finally{v(!1)}}},[o?.id,e,r,a]),Z=(0,$.useCallback)(async s=>{if(!o?.id)return"No active session";y(null);try{return await Sz(o.id,s),l(i=>{if(!i)return i;let n={...i,agentType:s};return e&&(SU.set(SK(e,r,a),n),SU.set(SK(e,r,n.id),n)),n}),null}catch(r){let e=r instanceof Error?r.message:"Failed to switch agent";return console.error("[AgentSession] Failed to switch agent:",r),e}},[o?.id,e,r,a]),Q=(0,$.useCallback)(async s=>{if(o?.id){y(null);try{await SW(o.id,s),l(i=>{if(!i)return i;let n={...i,permissionMode:s};return e&&(SU.set(SK(e,r,a),n),SU.set(SK(e,r,n.id),n)),n})}catch(e){y(e instanceof Error?e.message:"Failed to switch mode"),console.error("[AgentSession] Failed to switch mode:",e)}}},[o?.id,e,r,a]),ee=(0,$.useCallback)(async s=>{if(o?.id){y(null);try{await SH(o.id,s),l(s=>{if(!s)return s;let i={...s,permissionMode:"edit"};return e&&(SU.set(SK(e,r,a),i),SU.set(SK(e,r,i.id),i)),i})}catch(e){y(e instanceof Error?e.message:"Failed to accept plan"),console.error("[AgentSession] Failed to accept plan:",e)}}},[o?.id,e,r,a]),et=(0,$.useCallback)(async()=>{var i;let n;return e?(o?.id&&SU.delete(SK(e,r,o.id)),SU.delete(SK(e,r,a)),S.current&&(S.current.close(1e3,"new-conversation"),S.current=null,C.current=null),k.current&&(clearTimeout(k.current),k.current=null),M.current&&(clearTimeout(M.current),M.current=null),D.current=!1,T.current=!1,p(!1),l(null),h("stopped"),g(!0),y(null),w(null),d([]),E.current={entries:[],status:"stopped"},i=SF(e,r,s),(n=new Map(Sk)).set(i,Date.now()),Sj(Sk=n),SD(),null):null},[e,r,s,o?.id,a]),[er,es]=(0,$.useState)(null),ei=(0,$.useRef)(null),en=(0,$.useCallback)(()=>{ei.current?.resolve(!1),ei.current=null,es(null)},[]),ea=(0,$.useRef)(null),eo=(0,$.useCallback)(n=>{if(!e)return Promise.resolve(null);if(o)return Promise.resolve(o);let c=P.current,d=ea.current;if(d&&d.generation===c)return d.promise;let u=(async()=>{v(!0),y(null);try{let o;try{o=await (0,rv.createNewAgentSession)(e,r,n,i)}catch(u){let s;if(!(u instanceof rv.ResidentLimitError))throw u;let a=new Promise(e=>{s=e}),l={maxResidentAgentProcesses:u.maxResidentAgentProcesses,runningSessions:u.runningSessions,resolve:s};ei.current=l,es(l);let d=await a;if(ei.current===l&&(ei.current=null),es(e=>e===l?null:e),P.current!==c)return null;if(!d)throw u;o=await (0,rv.createNewAgentSession)(e,r,n,i,!0)}if(P.current!==c)return console.log("[AgentSession] Discarding stale ensureSession result (generation mismatch)"),null;let d={id:o.session.id,projectId:o.session.projectId,branch:o.session.branch,status:o.session.status,permissionMode:o.session.permissionMode??"edit",agentType:o.session.agentType??"claude-code",processAlive:o.session.processAlive??!0};return SU.set(SK(e,r,a),d),SU.set(SK(e,r,d.id),d),l(d),h(d.status),g(!0),ST(SF(e,r,s)),K(d.id),O.current?.(d),d}catch(e){if(console.error("[AgentSession] ensureSession:",e),P.current!==c)return null;return y(e instanceof Error?e.message:"Failed to create session"),null}finally{ea.current?.generation===c&&(ea.current=null),P.current===c&&v(!1)}})();return ea.current={generation:c,promise:u},u},[e,r,s,i,o,a,K]);return(0,$.useEffect)(()=>()=>{S.current&&(D.current=!0,S.current.close(),C.current=null),k.current&&clearTimeout(k.current),M.current&&clearTimeout(M.current),P.current+=1,en()},[en]),(0,$.useEffect)(()=>{S.current&&(S.current.close(1e3,"branch-switch"),S.current=null,C.current=null),k.current&&(clearTimeout(k.current),k.current=null),M.current&&(clearTimeout(M.current),M.current=null),P.current+=1,en();let i=e?SF(e,r,s):null;i&&a&&ST(i);let n=!a&&null!==i&&Sk.has(i);l(null),h("stopped"),p(!1),g(n),y(null),v(!1),w(null),d([]),E.current={entries:[],status:"stopped"},D.current=!1,N.current=0,A.current=null,F.current=0,B.current=!1,L.current=!1,R.current=!n,e&&SU.delete(SK(e,r,a))},[e,r,s,a,en]),(0,$.useEffect)(()=>{var i;let n=null!==e&&(i=SF(e,r,s),Sk.has(i));!R.current||!e||o||x||B.current||n||(R.current=!1,console.log(`[AgentSession] Auto-start: projectId=${e}, branch=${r}, agentMode=${s}`),V())},[e,r,s,o,x,V]),(0,$.useEffect)(()=>{let e=()=>{if("visible"===document.visibilityState&&o?.id&&!D.current){let e=S.current;e&&e.readyState!==WebSocket.CLOSED&&e.readyState!==WebSocket.CLOSING||(console.log("[AgentSession] Tab visible, WebSocket disconnected - reconnecting"),N.current=0,F.current=0,k.current&&(clearTimeout(k.current),k.current=null),K(o.id))}};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[o?.id,K]),(0,$.useEffect)(()=>{o?.id&&!D.current&&K(o.id)},[o?.id,K]),{session:o,messages:c,status:u,isConnected:f,isInitialized:m,isLoading:x,error:_,remoteStatus:b,startSession:V,sendMessage:Y,uploadPaste:G,stopSession:X,restartSession:J,switchAgentType:Z,startNewConversation:et,ensureSession:eo,switchMode:Q,acceptPlan:ee,residentLimitPrompt:er}}(e,r,n?.agent_mode,M,{sessionId:s,onTaskCompleted:o,onSessionStarted:l,onTitleUpdated:(e,r)=>{let s=r??J?.id;s&&e&&(U({sessionId:s,title:e}),c?.(s,e)),L(e=>e+1),O(null)}});f=J?.id??null,(0,ok.useGlobalEventStream)(s=>{"session:status"!==s.type||"running"!==s.status||!e||s.projectId!==e||(s.branch??null)!==(r??null)||s.sessionId&&s.sessionId!==f&&(e=>i?.(e))(s.sessionId)}),(0,$.useEffect)(()=>{(0,rv.getAgentProviders)().then(P).catch(()=>{})},[]),(0,$.useEffect)(()=>{J?.permissionMode&&j(J.permissionMode)},[J?.permissionMode]),(0,$.useEffect)(()=>{J?.agentType&&F(J.agentType)},[J?.agentType]),(0,$.useEffect)(()=>{b([]),S(1)},[e,r]);let ep=(0,$.useRef)({sessionId:null,count:0});(0,$.useEffect)(()=>{let e=J?.id??null,r=ep.current;e&&r.sessionId===e&&0===r.count&&Z.length>0&&O(e),ep.current={sessionId:e,count:Z.length}},[J?.id,Z.length]),(0,$.useEffect)(()=>{I&&J?.id!==I&&O(null)},[J?.id,I]),(0,$.useEffect)(()=>{H&&J?.id!==H.sessionId&&U(null)},[J?.id,H]),(0,$.useEffect)(()=>{if(!H)return;let e=setTimeout(()=>{U(e=>e===H?null:e)},5e3);return()=>clearTimeout(e)},[H]),(0,$.useEffect)(()=>{if(!I)return;let e=setTimeout(()=>{O(e=>e===I?null:e)},3e4);return()=>clearTimeout(e)},[I]);let[em,eg]=(0,$.useState)(!1);(0,$.useEffect)(()=>{eg(!1)},[J?.id]),(0,$.useEffect)(()=>{ee&&eg(!0)},[ee]);let ex=async e=>{j(e),J&&await eu(e)},ev=async e=>{await eh(e),j("edit"),d?.()},[e_,eb]=(0,$.useState)(!1),ew=async(e,r)=>{if(J&&!e_){eb(!0);try{let s=await (0,rv.branchAgentSession)(J.id,e,r);L(e=>e+1),i?.(s.session.id)}catch(r){let e=r instanceof Error?r.message:"Failed to branch conversation";xg.toast.error("Branch failed",{description:e})}finally{eb(!1)}}},eS=T.find(e=>e.type===M)?.displayName??("codex"===M?"Codex":"Claude Code"),eC=T.filter(e=>e.available).filter(e=>e.type!==M),ej=(0,$.useMemo)(()=>{for(let e=Z.length-1;e>=0;e--)if(Z[e]?.type==="turn_end")return e;return -1},[Z]),ek=(0,$.useCallback)(e=>{var r,s;let i;_((r=v,s=e,i=0===r.length||r.endsWith("\n\n")?"":r.endsWith("\n")?"\n":"\n\n",r+i+(s.replace(/\r?\n/g,"\n").split("\n").map(e=>`> ${e}`).join("\n")+"\n\n"))),requestAnimationFrame(()=>{let e=V.current?.querySelector("textarea");if(!e)return;e.focus();let r=e.value.length;try{e.setSelectionRange(r,r)}catch{}})},[_,v]);(0,$.useImperativeHandle)(h,()=>({submitMessage:async e=>{if(d?.(),J)en(e);else{let r=await ed(C);r&&(O(r.id),en(e,r.id))}}}),[J,ed,en,C,d]);let eN=(0,$.useCallback)((e,r)=>{if(r.length<=2e3)return;e.preventDefault();let s=e.currentTarget,i=s.selectionStart??v.length,n=s.selectionEnd??v.length,a=new TextEncoder().encode(r).length,o=kg(w,a);_(v.slice(0,i)+o+v.slice(n)),b(e=>[...e,{id:w,content:r,size:a}]),S(w+1);let l=i+o.length;requestAnimationFrame(()=>{try{s.setSelectionRange(l,l)}catch{}})},[v,w,_]);async function eE(e,r,s,i){let n=new Set;for(let r of e.matchAll(km))n.add(Number(r[1]));let a=r.filter(e=>n.has(e.id));if(0===a.length)return e;let o=e;for(let e of a){let r=await s(e.content,i),n=kg(e.id,e.size),a=`<vpaste path="${r.path}" size="${r.size}" />`;o=o.split(n).join(a)}return o}let eD=async e=>{let r=e.text,s=e.files.length>0,i=y.length>0,n=r.trim();if(n||s){A(!0);try{let a;_(""),Y.push(n),d?.();let o=J?.id,l=null;if(!J){if(!(l=await ed(C)))return void _(r);o=l.id,O(l.id)}let c=n;if(i)try{c=(await eE(r,y,ea,o)).trim()}catch(s){let e=s instanceof Error?s.message:"Failed to upload paste";xg.toast.error("Paste upload failed",{description:e}),_(r);return}if(c.length>2e3)try{let e=await ea(c,o);c=`<vpaste path="${e.path}" size="${e.size}" />`}catch(s){let e=s instanceof Error?s.message:"Failed to upload paste";xg.toast.error("Paste upload failed",{description:e}),_(r);return}if(b([]),S(1),s){let r=[];for(let s of(c&&r.push({type:"text",text:c}),e.files))if(s.mediaType&&s.url){let e=s.url.match(/^data:[^;]+;base64,(.+)$/);e&&r.push({type:"image",mediaType:s.mediaType,data:e[1]})}a=r}else a=c;if(k){let e="string"==typeof a?a:a.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if(e.trim()){D(!0);try{let s=await (0,rv.translateText)(e);if(s.error){_(r),b(y),S(w),xg.toast.error("Translation failed",{description:"Disable translation to send the original text."});return}a="string"==typeof a?s.translatedText:a.map(e=>"text"===e.type?{...e,text:s.translatedText}:e)}catch{_(r),b(y),S(w),xg.toast.error("Translation failed",{description:"Disable translation to send the original text."});return}finally{D(!1)}}}l?(console.log(`[AgentConversation] handleSubmit: using freshly started session ${l.id}`),await en(a,l.id)):(console.log(`[AgentConversation] handleSubmit: existing session ${J.id}, status=${Q}`),await en(a))}finally{A(!1)}}},{settings:eR}=(0,dh.useConversationSettings)();return e?(0,z.jsxs)("div",{className:"h-full flex flex-col min-h-0",style:{"--conv-font-size":`${eR.agentFontSize}px`},children:[(0,z.jsxs)("div",{className:"flex-shrink-0 flex items-center justify-between px-4 h-10 border-b border-border/60 bg-muted/20",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[T.length>1?(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsxs)("button",{disabled:er||"running"===Q&&Z.length>0,className:(0,ey.cn)("inline-flex items-center gap-1 rounded-md border bg-muted/50 px-2 py-0.5 text-xs font-medium transition-colors hover:bg-muted",(er||"running"===Q&&Z.length>0)&&"opacity-50 cursor-not-allowed"),children:[T.find(e=>e.type===M)?.displayName??("codex"===M?"Codex":"Claude Code"),(0,z.jsx)(sw,{className:"h-3 w-3 text-muted-foreground"})]})}),(0,z.jsx)(ag,{align:"start",children:(0,z.jsx)(a_,{value:M,onValueChange:async e=>{if(!J)return void F(e);let r=await el(e);r?xg.toast.error("Failed to switch agent",{description:r}):F(e)},children:T.map(e=>(0,z.jsx)(ay,{value:e.type,disabled:!e.available,className:"text-xs pl-2 [&>span:first-child]:hidden data-[state=checked]:bg-accent data-[state=checked]:text-accent-foreground",children:e.displayName},e.type))})})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(aE,{className:`h-4 w-4 ${"codex"===M?"text-green-500":"text-violet-500"}`}),(0,z.jsx)("span",{className:"text-sm font-medium",children:"codex"===M?"Codex":"Claude Code"})]}),(0,z.jsx)(j9,{mode:C,onModeChange:ex}),X.length>=1&&a&&(0,z.jsx)(ak,{targets:X,activeTarget:n?.agent_mode??"local",onTargetChange:a}),J&&(p=J.id.startsWith("remote-"),m="text-muted-foreground",g=(0,z.jsx)(j1,{className:"h-3 w-3"}),x="Disconnected",ee?p&&"connected"!==ei&&null!==ei?"reconnecting"===ei?(m="text-amber-500",g=(0,z.jsx)(j0,{className:"h-3 w-3 animate-pulse"}),x="Reconnecting..."):"disconnected"===ei&&(m="text-red-500",g=(0,z.jsx)(j1,{className:"h-3 w-3"}),x="Remote disconnected"):(m="text-green-500",g=(0,z.jsx)(j0,{className:"h-3 w-3"}),x="Connected"):em||(m="text-amber-500",g=(0,z.jsx)(j0,{className:"h-3 w-3 animate-pulse"}),x="Connecting..."),(0,z.jsxs)("span",{className:`flex items-center gap-1 text-xs ${m}`,children:[g,x]}))]}),(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[e&&(0,z.jsx)(ku,{projectId:e,branch:r,sessionId:J?.id??null,currentAgentType:M,providers:T}),e&&(0,z.jsx)(kn,{projectId:e,branch:r,currentSessionId:J?.id??null,refreshKey:B,pendingTitleSessionId:I,aiTitleOverride:H,onSwitch:e=>{i?.(e)},onDelete:(e,r)=>{if(e===J?.id){let e=r[0];i?.(e?e.id:null)}}}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",onClick:async()=>{await ec(),u?.(),i?.(null)},disabled:er||!J,className:"h-7 w-7",title:"New Conversation",children:(0,z.jsx)(j2,{className:"h-3.5 w-3.5"})}),(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",onClick:()=>eo(),disabled:"running"!==Q,className:"h-7 text-xs",children:[(0,z.jsx)(uA,{className:"h-3 w-3 mr-1"}),"Stop"]})]})]}),(0,z.jsxs)("div",{className:"flex-1 min-h-0 relative",children:[(0,z.jsxs)(ja,{className:"h-full",initial:"instant",children:[(0,z.jsxs)(jo,{className:"gap-1 p-4",scrollClassName:"edge-scrollbar",children:[J||0!==Z.length?(0,z.jsx)(kf.Provider,{value:{sendMessage:en,messages:Z,acceptPlan:ev,permissionMode:J?.permissionMode??C,agentType:J?.agentType??M,sessionId:J?.id??null},children:(0,z.jsxs)("div",{className:"space-y-1 outline-none",ref:K,tabIndex:-1,onKeyDown:q,children:[Z.map((e,r)=>e?.type==="turn_end"?(0,z.jsx)(j8,{durationMs:e.durationMs,outcome:e.outcome,emphasis:r===ej?"normal":"subtle",agentType:M,currentAgentName:eS,alternateProviders:eC,onBranch:e=>ew(e,r),disabled:e_},r):(0,z.jsx)("div",{"data-message-idx":r,..."user"===e.type?{"data-user-msg-idx":r}:{},className:"scroll-mt-2",children:(0,z.jsx)(CX,{message:e,messageIndex:r})},r)),er&&(0,z.jsxs)("div",{className:"flex items-center gap-2 py-4 text-muted-foreground",children:[(0,z.jsx)(jQ,{className:"h-4 w-4"}),(0,z.jsx)("span",{className:"text-sm",children:"Connecting to agent..."})]})]})}):(0,z.jsx)("div",{className:"text-center py-16",children:er||e&&!et?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(jQ,{className:"h-6 w-6 mx-auto mb-4"}),(0,z.jsx)("h3",{className:"text-sm font-semibold mb-1 text-foreground",children:"Connecting to agent..."}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Setting up the session for this worktree"})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("div",{className:"mx-auto w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center mb-4",children:(0,z.jsx)(aE,{className:"h-6 w-6 text-primary/60"})}),(0,z.jsx)("h3",{className:"text-sm font-semibold mb-1 text-foreground",children:"Start a conversation"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Ask the agent to help you with coding tasks in this worktree"})]})}),es&&(0,z.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-red-500/10 rounded-lg text-red-500 text-sm mt-4",children:[(0,z.jsx)(SX,{className:"h-4 w-4"}),es]})]}),(0,z.jsx)(jl,{})]}),(0,z.jsx)(ks,{messages:Z,contentRef:K}),(0,z.jsx)(kl,{containerRef:K,onQuote:ek})]}),(0,z.jsx)("div",{className:"flex-shrink-0 border-t border-border/60 p-3",children:(0,z.jsxs)(j$,{onSubmit:eD,accept:"image/*",className:"w-full",children:[(0,z.jsx)(kh,{}),(0,z.jsxs)("div",{className:"relative flex w-full flex-col",children:[k&&(0,z.jsx)("div",{className:"flex items-center pl-12 pr-2 pt-1.5 pb-0.5",children:(0,z.jsxs)("button",{type:"button",onClick:()=>N(!1),className:"inline-flex shrink-0 items-center gap-1.5 rounded-full bg-blue-500/10 text-blue-600 dark:text-blue-400 px-2.5 py-0.5 text-xs font-medium hover:bg-blue-500/20 transition-colors",children:[E?(0,z.jsx)(rk,{className:"size-3 animate-spin"}):(0,z.jsx)(j5,{className:"size-3"}),"Translate",(0,z.jsx)(t8,{className:"size-3"})]})}),(0,z.jsxs)("div",{className:"flex w-full items-center",children:[(0,z.jsxs)(jK,{children:[(0,z.jsx)(jq,{className:"ml-1"}),(0,z.jsxs)(jV,{children:[(0,z.jsx)(jz,{label:"Add images"}),(0,z.jsxs)(jY,{onSelect:()=>{N(!k)},children:[(0,z.jsx)(j5,{className:"mr-2 size-4"}),k?"Disable translation":"Translate"]})]})]}),(0,z.jsx)("div",{ref:V,className:"contents",children:(0,z.jsx)(jW,{value:v,onChange:e=>_(e.target.value),onPasteText:eN,onKeyDown:Y.handleKeyDown,placeholder:J?"Ask the agent to help with your code...":"Type your first message to start...",className:"pr-12",style:{fontSize:"var(--conv-font-size, 14px)"}})}),(0,z.jsx)("div",{className:"pointer-events-none absolute bottom-0 right-1 flex items-center text-base md:text-sm",style:{fontSize:"var(--conv-font-size, 14px)",height:"calc(1lh + 1.5rem)"},children:(0,z.jsx)(jG,{className:"pointer-events-auto",disabled:!v.trim()&&!er||E||R,status:R||E?"submitted":er?"streaming":"ready"})})]})]})]})}),(0,z.jsx)(lU,{open:null!==ef,onOpenChange:e=>{e||ef?.resolve(!1)},children:(0,z.jsxs)(lV,{children:[(0,z.jsxs)(lY,{children:[(0,z.jsx)(lX,{children:"Agent process limit reached"}),(0,z.jsxs)(lJ,{children:["All ",ef?.maxResidentAgentProcesses," resident agent processes for this workspace branch are running. Starting a new conversation will stop the least recently active running session in this branch."]})]}),(0,z.jsxs)(lG,{children:[(0,z.jsx)(lQ,{children:"Cancel"}),(0,z.jsx)(lZ,{onClick:()=>ef?.resolve(!0),children:"Stop & start new"})]})]})})]}):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(aE,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to start coding"})]})})});function kv(){return"localhost"===window.location.hostname&&"3000"===window.location.port?"http://localhost:5173":""}async function k_(e,r){let s=await (0,rv.authFetch)(`${kv()}/api/projects/${e}/chat-sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:r})});if(!s.ok)throw Error("Failed to create chat session");return s.json()}async function ky(e,r){if(!(await (0,rv.authFetch)(`${kv()}/api/chat-sessions/${e}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})})).ok)throw Error("Failed to send message")}async function kb(e){if(!(await (0,rv.authFetch)(`${kv()}/api/chat-sessions/${e}/stop`,{method:"POST"})).ok)throw Error("Failed to stop generation")}let kw=new Map;function kS(e,r){return`chat:${e}:${r??""}`}function kC({sessionId:e,approvalId:r,tool:s,input:i,resolved:n}){let[a,o]=(0,$.useState)(null),l=function(e){if(null!==e&&"object"==typeof e){if("string"==typeof e.message)return e.message;if("string"==typeof e.prompt)return e.prompt}return JSON.stringify(e)}(i),c=async s=>{if(!a&&!n){o(s?"approve":"deny");try{await rv.api.chatToolApproval(e,r,s)}finally{o(null)}}};return(0,z.jsx)("div",{className:"mx-4 my-1",children:(0,z.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 p-3 space-y-2",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(aE,{className:"h-3.5 w-3.5 text-amber-500 shrink-0"}),(0,z.jsxs)("span",{className:"text-xs font-medium text-amber-600 dark:text-amber-400",children:["Approval needed · ","spawnAgentSession"===s?"Start a new coding agent":"Send to the coding agent"]})]}),(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all text-foreground/80",style:{fontSize:"var(--conv-font-size, 12px)"},children:l}),n?(0,z.jsxs)(sb,{variant:"default",className:"approved"===n?"bg-green-600 hover:bg-green-700 text-white":"bg-red-600 hover:bg-red-700 text-white",children:["approved"===n?(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}):(0,z.jsx)(rj,{className:"h-3 w-3 mr-1"}),"approved"===n?"Approved — sent.":"Denied — not sent."]}):(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsxs)(W.Button,{onClick:()=>c(!0),disabled:null!==a,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:["approve"===a?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rC,{className:"h-3.5 w-3.5 mr-1"}),"Approve"]}),(0,z.jsxs)(W.Button,{onClick:()=>c(!1),disabled:null!==a,variant:"destructive",size:"sm",children:["deny"===a?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rj,{className:"h-3.5 w-3.5 mr-1"}),"Deny"]})]})]})})}let kj=new Set(["waiting_reviewer","waiting_feedback","sending_feedback"]);function kk({projectId:e,branch:r,runUpdate:s,onRunsChange:i}){let[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)({}),[c,d]=(0,$.useState)({}),[u,h]=(0,$.useState)(null),[f,p]=(0,$.useState)(null),m=(0,$.useCallback)(async()=>{if(e)try{let s=await rv.api.getActiveWorkflowRuns(e,r);a(s),i?.(s)}catch{}},[e,r,i]);(0,$.useEffect)(()=>{m()},[m]),(0,$.useEffect)(()=>{s&&m()},[s,m]),(0,$.useEffect)(()=>{if(0===n.length)return;let e=setInterval(()=>void m(),5e3);return()=>clearInterval(e)},[n.length,m]);let g=async(e,r)=>{h(r),p(null);try{await e()}catch(e){p(e instanceof Error?e.message:String(e))}finally{h(null),await m()}},x=n.filter(e=>kj.has(e.status));return 0===x.length?null:(0,z.jsx)("div",{className:"shrink-0 border-b bg-muted/30 px-4 py-2 space-y-2 max-h-[50vh] overflow-y-auto",children:x.map(e=>(0,z.jsxs)("div",{className:"text-sm space-y-2",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between",children:[(0,z.jsxs)("span",{className:"font-medium",children:["Review",e.review_focus?` — ${e.review_focus}`:"",(0,z.jsxs)("span",{className:"ml-2 text-muted-foreground",children:["waiting_reviewer"===e.status&&"reviewer 审查中…","waiting_feedback"===e.status&&"等你确认反馈","sending_feedback"===e.status&&"发送中…"]})]}),(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",disabled:u===e.id,onClick:()=>g(()=>rv.api.cancelWorkflowRun(e.id),e.id),children:[(0,z.jsx)(t8,{className:"h-3 w-3 mr-1"}),"结束"]})]}),e.error&&(0,z.jsx)("div",{className:"text-xs text-amber-600",children:e.error}),"waiting_reviewer"===e.status&&(0,z.jsxs)("div",{className:"flex items-center text-muted-foreground text-xs",children:[(0,z.jsx)(rk,{className:"h-3 w-3 mr-1 animate-spin"})," reviewer session 正在工作"]}),"waiting_feedback"===e.status&&(0,z.jsxs)(z.Fragment,{children:[c[e.id]?(0,z.jsx)(rl,{className:"text-xs font-mono min-h-28 max-h-72",value:o[e.id]??e.feedback_snapshot??"",onChange:r=>l(s=>({...s,[e.id]:r.target.value}))}):(0,z.jsx)("div",{className:"text-xs border rounded-md bg-background px-3 py-2 max-h-72 overflow-y-auto",children:(0,z.jsx)(wc,{children:o[e.id]??e.feedback_snapshot??""})}),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsx)(W.Button,{size:"sm",disabled:u===e.id,onClick:()=>g(()=>rv.api.workflowRunGate(e.id,"approve",o[e.id]??void 0),e.id),children:"发送反馈给原 session"}),(0,z.jsx)(W.Button,{variant:"outline",size:"sm",disabled:u===e.id,onClick:()=>d(r=>({...r,[e.id]:!r[e.id]})),children:c[e.id]?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(_O,{className:"h-3 w-3 mr-1"}),"预览"]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(rg,{className:"h-3 w-3 mr-1"}),"编辑"]})})]})]}),f&&(0,z.jsx)("div",{className:"text-xs text-destructive",children:f})]},e.id))})}let kN=(0,ew.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);function kE({messages:e}){let{scrollToBottom:r}=jn(),s=(0,$.useRef)(e.length);return(0,$.useEffect)(()=>{let i=s.current;if(s.current=e.length,!(e.length<=i))for(let s=i;s<e.length;s++){let i=e[s];if("user"===i.type&&i.content.startsWith("[Executor Event:"))return void r({animation:"instant"})}},[e,r]),null}let kD=(0,$.forwardRef)(function({projectId:e,branch:r},s){let{session:i,messages:n,status:a,isInitialized:o,isLoading:l,error:c,sendMessage:d,stopGeneration:u,restartSession:h,workflowRunUpdate:f}=function(e,r){let[s,i]=(0,$.useState)(null),[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)("stopped"),[c,d]=(0,$.useState)(!1),[u,h]=(0,$.useState)(!1),[f,p]=(0,$.useState)(!1),[m,g]=(0,$.useState)(null),[x,v]=(0,$.useState)(null),_=(0,$.useRef)(null),y=(0,$.useRef)(()=>{}),b=(0,$.useRef)(null),w=(0,$.useRef)(0),S=(0,$.useRef)({entries:[],status:"stopped"}),C=(0,$.useRef)(!1),j=(0,$.useRef)(!0),k=(0,$.useRef)(!1),N=(0,$.useRef)(0),E=(0,$.useRef)(null),D=(0,$.useRef)(null),R=(0,$.useRef)(0),A=(0,$.useRef)(!1),M=(0,$.useCallback)((e,r=!1)=>{_.current?.readyState!==WebSocket.OPEN&&_.current?.readyState!==WebSocket.CONNECTING&&(0,rv.getFreshToken)(r?{skipCache:!0}:void 0).then(()=>y.current(e))},[]),F=(0,$.useCallback)(n=>{if(_.current?.readyState===WebSocket.OPEN||_.current?.readyState===WebSocket.CONNECTING)return;S.current={entries:[],status:"stopped"},C.current=!1,k.current=!0;let o=new WebSocket((0,rv.getWebSocketUrl)(`/api/chat-sessions/${n}/stream`));_.current=o;let c=N.current;o.onopen=()=>{d(!0),g(null),E.current=Date.now(),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{w.current=0,R.current=0},5e3)},o.onmessage=s=>{if(c===N.current)try{let c=JSON.parse(s.data);if("JsonPatch"in c){var i,n;let e=S.current.entries.filter(Boolean).length;i=S.current,n=c.JsonPatch,S.current=SS(i,e=>{for(let r of n){let{op:s,path:i,value:n}=r;if("/entries"===i&&"replace"===s&&n?.type==="ENTRY"&&n.content?.type==="system"&&n.content?.content==="__CLEAR_ALL__"){e.entries=[];continue}if(i.startsWith("/entries/")){let r=parseInt(i.replace("/entries/",""),10);if(isNaN(r)||n?.type!=="ENTRY")continue;switch(s){case"add":for(;e.entries.length<=r;)e.entries.push(null);e.entries[r]=n.content;break;case"replace":r<e.entries.length&&(e.entries[r]=n.content);break;case"remove":r<e.entries.length&&e.entries.splice(r,1)}}else"/status"===i&&n?.type==="STATUS"&&(e.status=n.content)}});let r=S.current.entries.filter(Boolean).length;k.current?r!==e&&console.log(`[ChatSession] WS patch added message (${e} → ${r}) but isReplaying=true, state NOT updated`):(r!==e&&console.log(`[ChatSession] New message via WS patch (${e} → ${r}), calling setMessages`),a([...S.current.entries.filter(Boolean)]),l(S.current.status));return}if("Ready"in c){k.current=!1;let e=S.current.entries.filter(Boolean).length;console.log(`[ChatSession] Ready received, isReplaying → false, ${e} messages`),a([...S.current.entries.filter(Boolean)]),l(S.current.status),h(!0);return}if("finished"in c){C.current=!0,o.close(1e3,"finished");return}if("openPreviewFrame"in c)return void(0,_L.openPreviewFrame)(c.openPreviewFrame.projectId,c.openPreviewFrame.url);if("WorkflowRunUpdated"in c)return void v(c.WorkflowRunUpdated);if("browserCommand"in c){let r=c.browserCommand;e&&(0,_L.sendCommandToIframe)(e,{type:"vibedeckx-command",...r}).then(e=>{e&&o.readyState===WebSocket.OPEN&&o.send(JSON.stringify({type:"browser_result",result:{id:r.id,success:e.success??!1,error:e.error,content:e.content,found:e.found,tag:e.tag,text:e.text}}))});return}if("error"in c){g(c.error),"Session not found"===c.error&&(e&&kw.delete(kS(e,r)),C.current=!0);return}}catch(e){console.error("[ChatSession] Failed to parse message:",e)}},o.onclose=n=>{let a,o;if(c!==N.current)return;d(!1),_.current=null,D.current&&(clearTimeout(D.current),D.current=null);let l=4e3===n.code,u=E.current?Date.now()-E.current:0;if(E.current=null,!l&&u>0&&u<5e3){if(R.current++,R.current>=3)return A.current?void g("Unable to connect to remote server. Please check the server configuration."):(e&&kw.delete(kS(e,r)),i(null),g(null),w.current=0,R.current=0,void(j.current=!0))}else u>=5e3&&(R.current=0);if(C.current||1e3===n.code)return;if(w.current>=10)return void g("Unable to connect to server.");let h=(o=(a=Math.min(3e4,1e3*Math.pow(2,w.current)))*Math.random()*.25,a+o);w.current++,b.current=setTimeout(()=>{s?.id&&!C.current&&M(s.id,!0)},h)},o.onerror=()=>{}},[s?.id,M]);(0,$.useEffect)(()=>{y.current=F},[F]);let T=(0,$.useCallback)(async()=>{if(!e)return null;let s=N.current;g(null),h(!1),A.current=!1;let n=kS(e,r),o=kw.get(n);if(o)return i(o),l(o.status),M(o.id),o;p(!0);try{let{session:o,messages:c}=await k_(e,r);if(N.current!==s)return null;return kw.set(n,o),i(o),l(o.status),c&&c.length>0&&a(c),M(o.id),o}catch(e){if(N.current!==s)return null;return g(e instanceof Error?e.message:"Failed to start session"),A.current=!0,null}finally{N.current===s&&p(!1)}},[e,r,M]),P=(0,$.useCallback)(async e=>{let r=s?.id;if(r&&e.trim())try{await ky(r,e.trim())}catch(r){let e=r instanceof Error?r.message:"Failed to send message";g(e),xg.toast.error("Failed to send message",{description:e})}},[s?.id]),B=(0,$.useCallback)(async()=>{if(s?.id)try{await kb(s.id)}catch(e){console.error("[ChatSession] Failed to stop generation:",e)}},[s?.id]),L=(0,$.useCallback)(async()=>{if(s?.id)try{await rv.api.resetChatSession(s.id),a([]),l("stopped"),S.current={entries:[],status:"stopped"}}catch(e){console.error("[ChatSession] Failed to reset session:",e),xg.toast.error("Failed to start new conversation")}},[s?.id]);return(0,$.useEffect)(()=>()=>{_.current&&(C.current=!0,_.current.close()),b.current&&clearTimeout(b.current),D.current&&clearTimeout(D.current)},[]),(0,$.useEffect)(()=>{_.current&&(_.current.close(1e3,"branch-switch"),_.current=null),b.current&&(clearTimeout(b.current),b.current=null),D.current&&(clearTimeout(D.current),D.current=null),N.current+=1,i(null),l("stopped"),d(!1),h(!1),g(null),p(!1),S.current={entries:[],status:"stopped"},C.current=!1,w.current=0,E.current=null,R.current=0,A.current=!1,j.current=!0},[e,r]),(0,$.useEffect)(()=>{!j.current||!e||s||f||A.current||(j.current=!1,T())},[e,s,f,T]),(0,$.useEffect)(()=>{!s?.id||c||C.current||M(s.id)},[s?.id,c,M]),(0,$.useEffect)(()=>{let e=()=>{if("visible"!==document.visibilityState||!s?.id||C.current)return;let e=_.current,r=S.current.entries.filter(Boolean).length;console.log(`[ChatSession] Tab visible: ws.readyState=${e?.readyState??"null"}, isReplaying=${k.current}, messages=${r}`),e&&e.readyState===WebSocket.OPEN&&e.close(4e3,"visibility-recovery")};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[s?.id]),{session:s,messages:n,status:o,isConnected:c,isInitialized:u,isLoading:f,error:m,workflowRunUpdate:x,sendMessage:P,stopGeneration:B,restartSession:L}}(e,r),{settings:p}=(0,dh.useConversationSettings)(),[m,g]=(0,$.useState)([]);(0,$.useImperativeHandle)(s,()=>({sendMessage:async e=>{let r=e.trim();r&&await d(r)}}),[d]);let[x,v]=(0,$.useState)(""),[_,y]=(0,$.useState)(!1);(0,$.useEffect)(()=>{i?.eventListeningEnabled!=null&&y(i.eventListeningEnabled)},[i?.eventListeningEnabled]);let b="running"===a,w=(0,$.useCallback)(async e=>{let r=e.text.trim();r&&(v(""),await d(r))},[d]);return e?(0,z.jsxs)("div",{className:"h-full flex flex-col min-h-0",style:{"--conv-font-size":`${p.chatFontSize}px`},children:[(0,z.jsxs)("div",{className:"flex-shrink-0 flex items-center justify-between px-4 h-10 border-b border-border/60 bg-muted/20",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(x_,{className:"h-3.5 w-3.5 text-primary"}),(0,z.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Main Chat"}),b&&(0,z.jsx)(rk,{className:"h-3 w-3 animate-spin text-primary/60"})]}),i&&(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",onClick:async()=>{let e=!_;try{await rv.api.setChatEventListening(i.id,e),y(e)}catch{xg.toast.error("Failed to toggle event listening")}},className:`h-7 w-7 ${_?"text-amber-500":""}`,title:_?"Listening to executor events (click to disable)":"Listen to executor events (click to enable)",children:(0,z.jsx)(kN,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",onClick:()=>h(),disabled:b,className:"h-7 w-7",title:"New Conversation",children:(0,z.jsx)(j2,{className:"h-3.5 w-3.5"})})]})]}),(0,z.jsx)(kk,{projectId:e,branch:r,runUpdate:f,onRunsChange:g}),(0,z.jsxs)(ja,{className:"flex-1 min-h-0",initial:"instant",children:[(0,z.jsx)(kE,{messages:n}),(0,z.jsxs)(jo,{className:"gap-4 p-4",children:[l&&0===n.length&&(0,z.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,z.jsx)(rk,{className:"h-6 w-6 animate-spin text-muted-foreground"})}),!l&&o&&0===n.length&&(0,z.jsxs)("div",{className:"text-center py-16",children:[(0,z.jsx)("div",{className:"mx-auto w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center mb-4",children:(0,z.jsx)(x_,{className:"h-6 w-6 text-primary/60"})}),(0,z.jsx)("h3",{className:"text-sm font-semibold mb-1 text-foreground",children:"Start a conversation"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Chat with the AI assistant about your project"})]}),n.map((s,n)=>{if("turn_end"===s.type)return(0,z.jsxs)("div",{className:"mx-4 my-3 flex items-center gap-2","aria-hidden":!0,children:[(0,z.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,z.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-border"}),(0,z.jsx)("div",{className:"h-px flex-1 bg-border"})]},n);if("user"===s.type&&s.content.startsWith("[System Invariant Violation]")){let e=s.content.replace(/^\[System Invariant Violation\]\n?/,"");return(0,z.jsxs)("div",{className:"mx-4 my-2 flex gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2",children:[(0,z.jsx)(ll,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-500"}),(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("div",{className:"text-xs font-medium text-amber-600 dark:text-amber-400",children:"System invariant correction"}),(0,z.jsx)("div",{className:"mt-0.5 whitespace-pre-wrap text-muted-foreground",style:{fontSize:"var(--conv-font-size, 12px)"},children:e})]})]},n)}if("user"===s.type){let i=s.event,a=i?.kind==="agent_task_completed"&&m.some(e=>e.source_session_id===i.sessionId||e.reviewer_session_id===i.sessionId);return(0,z.jsxs)("div",{children:[(0,z.jsx)(wo,{from:"user",children:(0,z.jsx)(wl,{style:{fontSize:"var(--conv-font-size, 14px)"},children:s.content})}),i?.kind==="agent_task_completed"&&(0,z.jsx)("div",{className:"mt-1 flex justify-end",children:(0,z.jsx)(W.Button,{variant:"outline",size:"sm",disabled:a,title:a?"该 session 已在一个进行中的 review 里":void 0,onClick:async()=>{if(e)try{await rv.api.createWorkflowRun({projectId:e,branch:r,sourceSessionId:i.sessionId,sourceTurnEndIndex:i.turnEndEntryIndex})}catch(e){alert(e instanceof Error?e.message:String(e))}},children:"Review"})})]},n)}return"assistant"===s.type?(0,z.jsx)(wo,{from:"assistant",children:(0,z.jsx)(wl,{style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(wc,{children:s.content})})},n):"tool_use"===s.type?(0,z.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 text-xs text-muted-foreground",children:[(0,z.jsx)(dt,{className:"w-3.5 h-3.5 animate-pulse"}),(0,z.jsx)("span",{children:function(e){switch(e){case"getExecutorStatus":return"Checking executor status...";case"getAgentConversation":return"Checking agent conversation...";case"listTerminals":return"Listing terminals...";case"runInTerminal":return"Sending command to terminal...";case"spawnAgentSession":return"Starting a coding agent...";case"sendToAgentSession":return"Sending a message to the agent...";default:return`Running ${e}...`}}(s.tool)})]},n):"tool_result"===s.type?(0,z.jsx)("div",{className:"px-4 py-2",children:(0,z.jsxs)("details",{className:"text-xs text-muted-foreground",children:[(0,z.jsx)("summary",{className:"cursor-pointer hover:text-foreground",children:"Tool result"}),(0,z.jsx)("pre",{className:"mt-1 p-2 bg-muted/50 rounded overflow-x-auto whitespace-pre-wrap",style:{fontSize:"var(--conv-font-size, 12px)"},children:s.output})]})},n):"tool_approval_request"===s.type?i?(0,z.jsx)(kC,{sessionId:i.id,approvalId:s.approvalId,tool:s.tool,input:s.input,resolved:s.resolved},n):null:"error"===s.type?(0,z.jsx)("div",{className:"mx-auto max-w-[90%] rounded-lg border border-destructive/50 bg-destructive/10 px-4 py-3 text-destructive",style:{fontSize:"var(--conv-font-size, 14px)"},children:s.message},n):null}),c&&(0,z.jsx)("div",{className:"mx-auto max-w-[90%] rounded-lg border border-destructive/50 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:c})]}),(0,z.jsx)(jl,{})]}),(0,z.jsxs)("div",{className:"flex-shrink-0 border-t border-border/60 p-3",children:[b&&(0,z.jsx)("div",{className:"flex justify-center mb-2",children:(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:u,className:"gap-1.5",children:[(0,z.jsx)(uA,{className:"h-3 w-3"}),"Stop generating"]})}),(0,z.jsxs)(j$,{onSubmit:w,className:"w-full",children:[(0,z.jsx)(jW,{disabled:!o||b,placeholder:o?b?"Waiting for response...":"Type a message...":"Connecting...",className:"pr-12",style:{fontSize:"var(--conv-font-size, 14px)"},value:x,onChange:e=>v(e.currentTarget.value)}),(0,z.jsx)("div",{className:"pointer-events-none absolute bottom-0 right-1 flex items-center text-base md:text-sm",style:{fontSize:"var(--conv-font-size, 14px)",height:"calc(1lh + 1.5rem)"},children:(0,z.jsx)(jG,{className:"pointer-events-auto",disabled:!o||b||!x.trim()})})]})]})]}):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(x_,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to start chatting"})]})})}),kR=(0,ew.default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),kA=(0,ew.default)("archive-restore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]]);function kM({task:e,onUpdate:r,onDelete:s,onArchive:i,onUnarchive:n,archivedView:a,onClick:o,worktrees:l,assignedBranches:c,onAssign:d}){let[u,h]=(0,$.useState)(!1),[f,p]=(0,$.useState)(e.title),m=(0,$.useRef)(null);(0,$.useEffect)(()=>{u&&(m.current?.focus(),m.current?.select())},[u]),(0,$.useEffect)(()=>{p(e.title)},[e.title]);let g=()=>{h(!1);let s=f.trim();s&&s!==e.title?r(e.id,{title:s}):p(e.title)},x="done"===e.status||"cancelled"===e.status;return(0,z.jsxs)(l5,{className:"group cursor-pointer",onClick:()=>o?.(e),children:[(0,z.jsx)(l4,{className:"w-10",onClick:e=>e.stopPropagation(),children:(0,z.jsx)(eb,{checked:"done"===e.status,onCheckedChange:s=>{r(e.id,{status:s?"done":"todo"})}})}),(0,z.jsx)(l4,{className:"font-medium",children:u?(0,z.jsx)("input",{ref:m,className:"w-full bg-transparent border-b border-primary outline-none text-sm py-0.5",value:f,onChange:e=>p(e.target.value),onBlur:g,onClick:e=>e.stopPropagation(),onKeyDown:r=>{"Enter"===r.key&&g(),"Escape"===r.key&&(p(e.title),h(!1))}}):(0,z.jsxs)("div",{children:[(0,z.jsx)("span",{className:`cursor-pointer hover:underline text-sm ${x?"line-through text-muted-foreground":""}`,onClick:e=>{e.stopPropagation(),h(!0)},children:e.title}),e.description&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate max-w-[400px] mt-0.5",children:e.description.length>80?e.description.slice(0,80)+"...":e.description})]})}),(0,z.jsx)(l4,{onClick:e=>e.stopPropagation(),children:(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{className:"focus:outline-none",children:(0,z.jsx)(sb,{variant:"outline",className:`cursor-pointer text-xs ${op[e.status].color}`,children:op[e.status].label})})}),(0,z.jsx)(ag,{align:"start",children:og.map(s=>(0,z.jsxs)(ax,{onClick:()=>r(e.id,{status:s}),children:[(0,z.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-2 ${op[s].color}`}),op[s].label]},s))})]})}),(0,z.jsx)(l4,{onClick:e=>e.stopPropagation(),children:(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{className:"focus:outline-none",children:(0,z.jsx)(sb,{variant:"outline",className:`cursor-pointer text-xs ${om[e.priority].color}`,children:om[e.priority].label})})}),(0,z.jsx)(ag,{align:"start",children:ox.map(s=>(0,z.jsxs)(ax,{onClick:()=>r(e.id,{priority:s}),children:[(0,z.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-2 ${om[s].color}`}),om[s].label]},s))})]})}),(0,z.jsx)(l4,{onClick:e=>e.stopPropagation(),children:(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{className:"focus:outline-none",children:(0,z.jsxs)(sb,{variant:"outline",className:`cursor-pointer text-xs font-mono ${null!==e.assigned_branch?"bg-accent text-accent-foreground border-transparent":"text-muted-foreground"}`,children:[(0,z.jsx)(rw,{className:"h-3 w-3 mr-1"}),null!==e.assigned_branch?""===e.assigned_branch?"main":e.assigned_branch:"Unassigned"]})})}),(0,z.jsxs)(ag,{align:"start",children:[null!==e.assigned_branch&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(ax,{onClick:()=>d(e.id,null),children:"Unassign"}),(0,z.jsx)(aw,{})]}),l.filter(r=>{let s=null===r.branch?"":r.branch;return!(e.assigned_branch===s||c.has(s))}).map(r=>{let s=null===r.branch?"":r.branch,i=r.branch??"main";return(0,z.jsxs)(ax,{onClick:()=>d(e.id,s),children:[(0,z.jsx)(rw,{className:"h-3 w-3 mr-2"}),i]},s)})]})]})}),(0,z.jsx)(l4,{className:"text-muted-foreground text-[10.5px] font-mono",children:new Date(e.created_at).toLocaleDateString()}),(0,z.jsx)(l4,{className:"w-10",onClick:e=>e.stopPropagation(),children:(0,z.jsxs)("div",{className:"flex items-center gap-0.5",children:[a?(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",title:"Unarchive",onClick:()=>n(e.id),children:(0,z.jsx)(kA,{className:"h-3.5 w-3.5 text-muted-foreground"})}):(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",title:"Archive",onClick:()=>i(e.id),children:(0,z.jsx)(kR,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",title:"Delete",onClick:()=>s(e.id),children:(0,z.jsx)(rc,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})})]})}let kF={todo:0,in_progress:1,done:2,cancelled:3},kT={urgent:0,high:1,medium:2,low:3};function kP({tasks:e,onUpdate:r,onDelete:s,onArchive:i,onUnarchive:n,archivedView:a,worktrees:o,onAssign:l}){let[c,d]=(0,$.useState)(null),[u,h]=(0,$.useState)("asc"),[f,p]=(0,$.useState)(null),[m,g]=(0,$.useState)(!1),x=e=>{c===e?h(e=>"asc"===e?"desc":"asc"):(d(e),h("asc"))},v=(0,$.useMemo)(()=>{if(!c)return e;let r="asc"===u?1:-1;return[...e].sort((e,s)=>{switch(c){case"title":return r*e.title.localeCompare(s.title);case"status":return r*(kF[e.status]-kF[s.status]);case"priority":return r*(kT[e.priority]-kT[s.priority]);case"created_at":return r*(new Date(e.created_at).getTime()-new Date(s.created_at).getTime());default:return 0}})},[e,c,u]),_=e=>c!==e?null:"asc"===u?" ↑":" ↓",y=(0,$.useMemo)(()=>new Set(e.filter(e=>null!==e.assigned_branch).map(e=>e.assigned_branch)),[e]);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(l0,{children:[(0,z.jsx)(l1,{children:(0,z.jsxs)(l5,{children:[(0,z.jsx)(l3,{className:"w-10"}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none",onClick:()=>x("title"),children:["Title",_("title")]}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none w-32",onClick:()=>x("status"),children:["Status",_("status")]}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none w-28",onClick:()=>x("priority"),children:["Priority",_("priority")]}),(0,z.jsx)(l3,{className:"w-32",children:"Assign"}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none w-28",onClick:()=>x("created_at"),children:["Created",_("created_at")]}),(0,z.jsx)(l3,{className:"w-10"})]})}),(0,z.jsxs)(l2,{children:[v.map(e=>(0,z.jsx)(kM,{task:e,onUpdate:r,onDelete:s,onArchive:i,onUnarchive:n,archivedView:a,onClick:e=>{p(e),g(!0)},worktrees:o,assignedBranches:y,onAssign:l},e.id)),0===e.length&&(0,z.jsx)(l5,{children:(0,z.jsx)("td",{colSpan:7,className:"text-center text-muted-foreground py-12 text-sm",children:(0,z.jsxs)("div",{className:"flex flex-col items-center gap-1",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-foreground/60",children:"No tasks yet"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"Create one to get started."})]})})})]})]}),(0,z.jsx)(ov,{task:f,open:m,onOpenChange:g})]})}function kB({open:e,onOpenChange:r,onSubmit:s}){let[i,n]=(0,$.useState)(""),[a,o]=(0,$.useState)("todo"),[l,c]=(0,$.useState)("medium");return(0,z.jsx)(t7,{open:e,onOpenChange:r,children:(0,z.jsxs)(rr,{className:"sm:max-w-md max-h-[85vh] flex flex-col",children:[(0,z.jsx)(rs,{children:(0,z.jsx)(rn,{children:"Create Task"})}),(0,z.jsxs)("form",{onSubmit:e=>{e.preventDefault(),i.trim()&&(s({description:i.trim(),status:a,priority:l}),n(""),o("todo"),c("medium"),r(!1))},className:"space-y-4 overflow-y-auto min-h-0 px-0.5",children:[(0,z.jsx)("div",{className:"space-y-2",children:(0,z.jsx)(rl,{placeholder:"Describe the task...",value:i,onChange:e=>n(e.target.value),className:"max-h-[40vh] focus-visible:border-input focus-visible:ring-0",rows:3,autoFocus:!0})}),(0,z.jsxs)("div",{className:"flex gap-3",children:[(0,z.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,z.jsx)("label",{className:"text-xs text-muted-foreground",children:"Status"}),(0,z.jsxs)(cX,{value:a,onValueChange:e=>o(e),children:[(0,z.jsx)(cZ,{children:(0,z.jsx)(cJ,{})}),(0,z.jsx)(cQ,{children:og.map(e=>(0,z.jsx)(c0,{value:e,children:op[e].label},e))})]})]}),(0,z.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,z.jsx)("label",{className:"text-xs text-muted-foreground",children:"Priority"}),(0,z.jsxs)(cX,{value:l,onValueChange:e=>c(e),children:[(0,z.jsx)(cZ,{children:(0,z.jsx)(cJ,{})}),(0,z.jsx)(cQ,{children:ox.map(e=>(0,z.jsx)(c0,{value:e,children:om[e].label},e))})]})]})]}),(0,z.jsxs)(ri,{children:[(0,z.jsx)(W.Button,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),(0,z.jsx)(W.Button,{type:"submit",disabled:!i.trim(),children:"Create"})]})]})]})})}let kL=[{value:"all",label:"All"},{value:"todo",label:"Todo"},{value:"in_progress",label:"Doing"},{value:"done",label:"Done"},{value:"cancelled",label:"Cancelled"},{value:"archived",label:"Archived"}];function kI({projectId:e,tasks:r,loading:s,worktrees:i,onCreateTask:n,onUpdateTask:a,onDeleteTask:o,onArchiveTask:l,onUnarchiveTask:c}){let[d,u]=(0,$.useState)(!1),[h,f]=(0,$.useState)("all"),p=(0,$.useMemo)(()=>r.filter(e=>null===e.archived_at),[r]),m=(0,$.useMemo)(()=>r.filter(e=>null!==e.archived_at),[r]),g=(0,$.useMemo)(()=>{let e={all:p.length,todo:0,in_progress:0,done:0,cancelled:0,archived:m.length};for(let r of p)e[r.status]++;return e},[p,m]),x=(0,$.useMemo)(()=>"archived"===h?m:"all"===h?p:p.filter(e=>e.status===h),[p,m,h]),v="archived"===h;return e?(0,z.jsxs)("div",{className:"flex flex-col h-full",children:[(0,z.jsx)(lb,{title:"Tasks",count:p.length,actions:(0,z.jsxs)(W.Button,{size:"sm",onClick:()=>u(!0),className:"shadow-sm",children:[(0,z.jsx)(eS,{className:"h-3.5 w-3.5 mr-1.5"}),"New Task"]})}),(0,z.jsx)(lw,{children:kL.map(e=>(0,z.jsx)(lS,{active:h===e.value,count:g[e.value],onClick:()=>f(e.value),children:e.label},e.value))}),(0,z.jsx)("div",{className:"flex-1 overflow-auto px-5 edge-scrollbar",children:s?(0,z.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:"Loading tasks..."}):(0,z.jsx)(kP,{tasks:x,onUpdate:a,onDelete:o,onArchive:l,onUnarchive:c,archivedView:v,worktrees:i,onAssign:(e,r)=>{a(e,{assigned_branch:r})}})}),(0,z.jsx)(kB,{open:d,onOpenChange:u,onSubmit:n})]}):(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(eS,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to view tasks."})]})})}let kO=(0,ew.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);function kz({open:e,onOpenChange:r,onNavigateProject:s,onNavigateWorkspace:i,onNavigateSession:n}){let[a,o]=(0,$.useState)(""),[l,c]=(0,$.useState)(null),[d,u]=(0,$.useState)(!1),h=(0,$.useRef)(null),f=(0,$.useRef)(null),p=(0,$.useRef)("");(0,$.useLayoutEffect)(()=>{p.current=a},[a]);let[m,g]=(0,$.useState)(e);e!==m&&(g(e),e&&(o(""),c(null),u(!1)));let x=(0,$.useCallback)(async e=>{h.current?.abort();let r=new AbortController;h.current=r;try{let s=await (0,rv.searchAll)(e,{signal:r.signal});r.signal.aborted||(c(s),u(!1))}catch{r.signal.aborted||u(!0)}},[]),v=(0,$.useRef)(!1);(0,$.useEffect)(()=>{let r=e&&!v.current;if(v.current=e,e)return f.current&&clearTimeout(f.current),f.current=setTimeout(()=>void x(a),150*!r),()=>{f.current&&clearTimeout(f.current)}},[a,e,x]),(0,$.useEffect)(()=>{if(!e)return;let r=!1;return(0,rv.refreshSearchCache)().then(()=>{r||x(p.current)}).catch(()=>{}),()=>{r=!0,h.current?.abort()}},[e,x]);let _=null===l,y=!!l&&0===l.projects.length&&0===l.workspaces.length&&0===l.sessions.length,b=l?.cacheState==="cold";return(0,z.jsxs)(bA,{open:e,onOpenChange:r,title:"Quick Switcher",description:"Search projects, workspaces, and sessions",shouldFilter:!1,children:[(0,z.jsx)(bM,{placeholder:"Search projects, workspaces, sessions…",value:a,onValueChange:o}),(0,z.jsxs)(bF,{children:[d&&(0,z.jsxs)("div",{className:"flex items-center justify-between gap-2 px-4 py-3 text-sm text-destructive",children:[(0,z.jsx)("span",{children:"Search failed."}),(0,z.jsx)(W.Button,{variant:"link",size:"sm",className:"h-auto p-0 text-destructive",onClick:()=>void x(p.current),children:"Retry"})]}),!d&&_&&(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}),"Searching…"]}),!d&&!_&&y&&b&&(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}),"Syncing history…"]}),!d&&!_&&y&&!b&&(0,z.jsx)(bT,{children:"No results found."}),l&&l.projects.length>0&&(0,z.jsx)(bP,{heading:"Projects",children:l.projects.map(e=>(0,z.jsxs)(bB,{value:`project-${e.id}`,onSelect:()=>s(e.id),children:[(0,z.jsx)(kO,{}),(0,z.jsx)("span",{children:e.name}),e.path&&(0,z.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:e.path})]},e.id))}),l&&l.workspaces.length>0&&(0,z.jsx)(bP,{heading:"Workspaces",children:l.workspaces.map(e=>(0,z.jsxs)(bB,{value:`ws-${e.projectId}-${e.targetId}-${e.branch??""}`,onSelect:()=>i(e),children:[(0,z.jsx)(rw,{}),(0,z.jsx)("span",{children:e.branch??"main"}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:e.projectName})]},`${e.projectId}-${e.targetId}-${e.branch??""}`))}),l&&l.sessions.length>0&&(0,z.jsx)(bP,{heading:"Sessions",children:l.sessions.map(e=>(0,z.jsxs)(bB,{value:`session-${e.sessionId}`,onSelect:()=>n(e),children:[(0,z.jsx)(x_,{}),(0,z.jsx)("span",{className:"truncate",children:e.title??"Untitled session"}),e.favoritedAt&&(0,z.jsx)(ki,{className:"h-3.5 w-3.5 shrink-0 fill-current text-amber-500"}),(0,z.jsxs)("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground",children:[e.projectName," · ",e.branch??"main"," · ",function(e){if(!e)return"";let r=Date.now()-e;return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:`${Math.floor(r/864e5)}d ago`}(e.lastActiveAt)]})]},e.sessionId))})]})]})}let k$={completed:"/sounds/sound1.mp3","main-completed":"/sounds/sound2.mp3"};function kW(e,r){return`${e}:${r??""}`}let kH="vibedeckx:completion-notifications";function kU(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.projectId&&("string"==typeof e.branch||null===e.branch)&&("string"==typeof e.sessionId||null===e.sessionId||void 0===e.sessionId)&&("completed"===e.type||"main-completed"===e.type)&&"number"==typeof e.at&&"boolean"==typeof e.read}let kK=new Map,kq=new Set,kV=(0,ew.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),kY={completed:{label:"Agent finished",dot:"bg-lime-400"},"main-completed":{label:"Chat finished",dot:"bg-emerald-500"}};function kG({notifications:e,unreadCount:r,projects:s,onNavigate:i,markRead:n,markAllRead:a,remove:o,clear:l}){return(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsxs)(W.Button,{variant:"ghost",size:"icon-sm",className:"relative","aria-label":r>0?`${r} unread completion notifications`:"Completion notifications",children:[(0,z.jsx)(kV,{className:"h-4 w-4"}),r>0&&(0,z.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[9px] font-semibold leading-none text-primary-foreground",children:r>9?"9+":r})]})}),(0,z.jsxs)(ag,{align:"end",className:"w-80 p-0",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,z.jsx)("span",{className:"text-[12.5px] font-semibold text-foreground",children:"Notifications"}),e.length>0&&(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsxs)("button",{onClick:a,disabled:0===r,className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-40",title:"Mark all read",children:[(0,z.jsx)(lo,{className:"h-3 w-3"}),"Mark all read"]}),(0,z.jsx)("button",{onClick:l,className:"rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",title:"Clear all",children:"Clear"})]})]}),(0,z.jsx)("div",{className:"max-h-[60vh] overflow-y-auto border-t border-border",children:0===e.length?(0,z.jsx)("div",{className:"px-3 py-8 text-center text-[12px] text-muted-foreground/70",children:"No completions yet."}):e.map(e=>{let r,a=kY[e.type];return(0,z.jsxs)(ax,{onSelect:()=>{n(e.id),i(e.projectId,e.branch,e.sessionId)},className:(0,ey.cn)("group flex flex-col items-start gap-0.5 rounded-none px-3 py-2",!e.read&&"bg-primary/[0.08]"),children:[(0,z.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,z.jsx)("span",{className:(0,ey.cn)("h-[7px] w-[7px] shrink-0 rounded-full",a.dot)}),(0,z.jsx)("span",{className:(0,ey.cn)("min-w-0 flex-1 truncate text-[12.5px]",e.read?"text-foreground/70":"font-medium text-foreground"),children:(r=e.projectId,s.find(e=>e.id===r)?.name??"Unknown project")}),(0,z.jsx)("span",{className:"shrink-0 text-[10.5px] text-muted-foreground/70",children:function(e){let r=Math.max(0,Math.round((Date.now()-e)/1e3));if(r<60)return"just now";let s=Math.round(r/60);if(s<60)return`${s}m ago`;let i=Math.round(s/60);if(i<24)return`${i}h ago`;let n=Math.round(i/24);return`${n}d ago`}(e.at)}),(0,z.jsx)("button",{onClick:r=>{r.stopPropagation(),o(e.id)},className:"shrink-0 rounded p-0.5 text-muted-foreground/60 opacity-0 transition-all hover:bg-muted hover:text-foreground group-hover:opacity-100",title:"Dismiss",children:(0,z.jsx)(t8,{className:"h-3 w-3"})})]}),(0,z.jsxs)("div",{className:"flex w-full items-center gap-1.5 pl-[15px] text-[11px] text-muted-foreground",children:[(0,z.jsx)("span",{className:"font-mono truncate",children:e.branch??"main"}),(0,z.jsx)("span",{className:"text-muted-foreground/50",children:"·"}),(0,z.jsx)("span",{className:"shrink-0",children:a.label})]})]},e.id)})})]})]})}function kX(e){if(null===e)return"尚未连接";let r=Math.max(0,Math.round((Date.now()-e)/1e3));if(r<60)return`${r} 秒前`;let s=Math.floor(r/60);return s<60?`${s} 分钟前`:`${Math.floor(s/60)} 小时前`}function kJ(){let{state:e,lastEventAt:r,reconnect:s}=(0,ok.useConnectionStatus)(),[,i]=(0,$.useState)(0);if((0,$.useEffect)(()=>{let e=setInterval(()=>i(e=>e+1),5e3);return()=>clearInterval(e)},[]),"stale"===e)return(0,z.jsxs)("button",{type:"button",onClick:s,title:`实时更新已断开 \xb7 上次更新 ${kX(r)} \xb7 点击重新连接`,className:"flex items-center gap-1.5 rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-600 transition-colors hover:bg-amber-500/20",children:[(0,z.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-500"}),"实时更新已断开"]});let n="live"===e;return(0,z.jsx)("span",{title:n?`实时更新正常 \xb7 上次更新 ${kX(r)}`:"正在连接实时更新…",className:"flex items-center px-1","aria-label":n?"实时更新正常":"正在连接实时更新",children:(0,z.jsx)("span",{className:n?"h-1.5 w-1.5 rounded-full bg-emerald-500":"h-1.5 w-1.5 animate-pulse rounded-full bg-muted-foreground/40"})})}let kZ=new Set(["workspace","tasks","schedules","remote-servers","settings","project-info"]),kQ="tasks";function k0(){let e=window.location.pathname,r=new URLSearchParams(window.location.search),s=r.get("project");if(s){let e=r.get("tab");return{projectId:s,tab:e&&kZ.has(e)?e:kQ,branch:r.get("branch")}}let i=e.split("/").filter(Boolean);if(1===i.length&&kZ.has(i[0])){let e=i[0];if("remote-servers"===e||"settings"===e)return{projectId:null,tab:e,branch:null}}let n=null,a=kQ;if("p"===i[0]&&i[1]){n=i[1];let e=i[2];e&&kZ.has(e)&&(a=e)}return{projectId:n,tab:a,branch:r.get("branch")}}function k1(e){let{projectId:r,tab:s,branch:i}=e;if("remote-servers"===s||"settings"===s)return`/${s}`;if(!r)return"/";let n=`/p/${r}/${s??kQ}`;return i&&(n+=`?branch=${encodeURIComponent(i)}`),n}function k2(e,r,s,i){return!!e&&e.projectId===r&&e.branch===s&&e.sessionId===i}function k5(){var e,r,s,i,n;let a,o,l,c,d,{projectId:u,tab:h,branch:f}=function(){let[e,r]=(0,$.useState)(k0);return(0,$.useEffect)(()=>{let e=()=>r(k0());return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),e}(),[p,m]=(0,$.useState)(()=>new URLSearchParams(window.location.search).get("session")),[g,x]=(0,$.useState)(null),v=(0,$.useCallback)(e=>{m(e);let r=new URL(window.location.href);e?r.searchParams.set("session",e):r.searchParams.delete("session"),window.history.replaceState(null,"",r.toString())},[]);(0,$.useEffect)(()=>{let e=()=>{m(new URLSearchParams(window.location.search).get("session"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),(0,$.useEffect)(()=>{if(new URLSearchParams(window.location.search).has("project")){let e=k1({projectId:u,tab:h,branch:f});window.history.replaceState(null,"",e)}},[]);let[_,y]=(0,$.useState)(!1),[b,w]=(0,$.useState)(!1),[S,C]=(0,$.useState)(!1),[j,k]=(0,$.useState)(null),[N,E]=(0,$.useState)(f),[D,R]=(0,$.useState)(h),[A,M]=(0,$.useState)(0),[F,T]=(0,$.useState)(0),P=(0,$.useRef)(null),[B,L]=(0,$.useState)(void 0),[I,O]=(0,$.useTransition)(),{projects:H,currentProject:U,loading:K,addProject:q,createProject:V,updateProject:Y,deleteProject:G,selectProject:X}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(null),[a,o]=(0,$.useState)(!0),l=(0,$.useCallback)(async()=>{o(!0);try{let r=await rv.api.getProjects();if(s(r),r.length>0&&!i){let s=e?r.find(r=>r.id===e):null;n(s??r[0])}}finally{o(!1)}},[i,e]);(0,$.useEffect)(()=>{l()},[]);let c=async(e,r)=>{let a=await rv.api.updateProject(e,r);return s(r=>r.map(r=>r.id===e?a:r)),i?.id===e&&n(a),a},d=async e=>{await rv.api.deleteProject(e),s(r=>r.filter(r=>r.id!==e)),i?.id===e&&n(r.find(r=>r.id!==e)??null)};return{projects:r,currentProject:i,loading:a,addProject:e=>{s(r=>[e,...r]),n(e)},createProject:async e=>{let r=await rv.api.createProject(e);return s(e=>[r,...e]),n(r),r},updateProject:c,deleteProject:d,selectProject:e=>{n(e)},refresh:l}}(u);U?.id!==B&&(void 0!==B&&E(null),L(U?.id));let{worktrees:J,loading:Z,refetch:Q}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(!0),[a,o]=(0,$.useState)(null),l=(0,$.useCallback)(async()=>{if(!e){s([]),o(null),n(!1);return}n(!0);try{let r=await rv.api.getProjectWorktrees(e);s(r)}catch(e){console.error("Failed to fetch worktrees:",e),s([{branch:null}])}finally{o(e),n(!1)}},[e]);return(0,$.useEffect)(()=>{l()},[l]),{worktrees:r,loading:i||a!==e,refetch:l}}(U?.id??null),{statuses:ee,defaultTarget:et,repositoryLabel:er,setTarget:es,refetch:ei}=function(e,r){let[s,i]=(0,$.useState)(new Map),[n,a]=(0,$.useState)(null),[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)(0),[u,h]=(0,$.useState)(e);e!==u&&(h(e),i(new Map),a(null),l(null));let f=(0,$.useCallback)(()=>d(e=>e+1),[]);return(0,$.useEffect)(()=>{let s=r.map(e=>e.branch).filter(e=>null!==e),n=!1;return(async()=>{if(!e||0===s.length){n||(i(new Map),a(null),l(null));return}if(oE(e).length>0&&(await function(e){let r=oD.get(e);if(r)return r;let s=(async()=>{let r=new Map;for(;;){let s=oE(e).filter(({key:e,target:s})=>r.get(e)!==s);if(0===s.length)break;for(let{key:i,branch:n,target:a}of s){r.set(i,a);let s=!1;try{s=await rv.api.setMergeTarget(e,n,a,{ifAbsent:!0})}catch{}if(s)try{localStorage.getItem(i)===a&&localStorage.removeItem(i)}catch{}}}})();return oD.set(e,s),s.finally(()=>{oD.get(e)===s&&oD.delete(e)}),s}(e),n))return;let r=s.map(e=>({branch:e})),o=await rv.api.getMergeStatus(e,r);n||o.ok&&(i(function(e){let r=new Map;for(let s of e){if("target-not-found"===s.error&&s.requestedTarget){r.set(s.branch,{branch:s.branch,error:s.error,requestedTarget:s.requestedTarget,targetSource:s.targetSource});continue}!s.error&&s.target&&s.status&&r.set(s.branch,{branch:s.branch,status:s.status,unmergedCount:s.unmergedCount??0,dirty:s.dirty??!1,target:s.target})}return r}(o.entries)),a(function(e){for(let r of e)if("default"===r.targetSource&&r.target)return r.target;return null}(o.entries)),l(o.repository.label))})(),()=>{n=!0}},[e,r,c,f]),{statuses:s,defaultTarget:n,repositoryLabel:o,setTarget:(0,$.useCallback)((r,s)=>{e&&rv.api.setMergeTarget(e,r,s).then(e=>{e&&f()})},[e,f]),refetch:f}}(U?.id??null,J),en=function(e,r,s){let i=(0,$.useMemo)(()=>r?.map(e=>e.branch)??[],[r]),[n,a]=(0,$.useState)([]),o=(0,$.useCallback)(async()=>{if(!e||0===i.length)return void a([]);let r=await Promise.all(i.map(async r=>(await (0,rv.listBranchSessions)(e,r)).sessions.filter(e=>e.processAlive).map(s=>({id:s.id,projectId:e,branch:r,title:s.title?.trim()||"New Session",status:s.status,processAlive:!0,updated_at:s.updated_at}))));a(e=>{var s;let i;return s=r.flat(),i=new Map(e.map(e=>[e.id,e])),s.map(e=>{let r=i.get(e.id);return r&&"New Session"===e.title&&"New Session"!==r.title?{...e,title:r.title}:e})})},[i,e]);(0,$.useEffect)(()=>{let e=!1;return o().catch(r=>{e||console.warn("[ResidentSessions] refresh failed:",r)}),()=>{e=!0}},[o]);let{state:l}=(0,ok.useConnectionStatus)(),c=(0,$.useRef)(null),d=(0,$.useRef)(!1);return(0,$.useEffect)(()=>{var e;let r=c.current;c.current=l;let s=(e=d.current,"live"===l&&e&&"live"!==r);"live"===l&&(d.current=!0),s&&o().catch(e=>console.warn("[ResidentSessions] reconnect refresh failed:",e))},[l,o]),(0,$.useEffect)(()=>{s&&s.processAlive&&e&&s.projectId===e&&a(e=>(function(e,r){let s=e.findIndex(e=>e.id===r.id);if(-1===s)return[r,...e];let i=e[s],n="New Session"===r.title&&"New Session"!==i.title?i.title:r.title,a=[...e];return a[s]={...r,title:n},a})(e,s))},[e,s]),(0,ok.useGlobalEventStream)(r=>{if(e&&r.projectId===e){if("session:process"===r.type){let e="string"==typeof r.sessionId?r.sessionId:null,s="boolean"==typeof r.alive?r.alive:null,i="string"==typeof r.branch?r.branch:null;if(!e||null===s)return;if(!s)return void a(r=>r.filter(r=>r.id!==e));o().catch(e=>console.warn("[ResidentSessions] process refresh failed:",e)),null!==i&&a(r=>r.map(r=>r.id===e?{...r,branch:i}:r))}if("session:status"===r.type){let e="string"==typeof r.sessionId?r.sessionId:null,s="string"==typeof r.status?r.status:null;if(!e||!s)return;a(r=>r.map(r=>r.id===e?{...r,status:s}:r))}if("session:title"===r.type){let e="string"==typeof r.sessionId?r.sessionId:null;if(!e)return;a(s=>{var i,n;return n=("string"==typeof(i=r.title)?i.trim():"")||"New Session",s.map(r=>r.id===e?{...r,title:n}:r)})}}}),(0,$.useMemo)(()=>{let e=new Map;for(let r of n){let s=r.branch??"",i=e.get(s)??[];i.push(r),e.set(s,i)}for(let r of e.values())r.sort((e,r)=>(r.updated_at??"").localeCompare(e.updated_at??""));return e},[n])}(U?.id??null,J,g),{tasks:ea,loading:eo,createTask:el,updateTask:ec,deleteTask:ed,archive:eu,unarchive:eh,refetch:ef}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(!0),a=(0,$.useCallback)(async()=>{if(!e){s([]),n(!1);return}try{let r=await rv.api.getTasks(e,{includeArchived:!0});s(r)}catch(e){console.error("Failed to fetch tasks:",e)}finally{n(!1)}},[e]);(0,$.useEffect)(()=>{a()},[a]);let o=(0,$.useCallback)(async r=>{if(!e)return null;try{let i=await rv.api.createTask(e,r);return s(e=>[...e,i]),i}catch(e){return console.error("Failed to create task:",e),null}},[e]),l=(0,$.useCallback)(async(e,i)=>{s(r=>r.map(r=>r.id===e?{...r,...i,updated_at:new Date().toISOString()}:r));try{let r=await rv.api.updateTask(e,i);return s(s=>s.map(s=>s.id===e?r:s)),r}catch(e){return console.error("Failed to update task:",e),s(r),null}},[r]),c=(0,$.useCallback)(async e=>{s(r=>r.filter(r=>r.id!==e));try{await rv.api.deleteTask(e)}catch(e){console.error("Failed to delete task:",e),s(r)}},[r]),d=(0,$.useCallback)(async e=>{s(r=>r.map(r=>r.id===e?{...r,archived_at:Date.now()}:r));try{let r=await rv.api.archiveTask(e);s(s=>s.map(s=>s.id===e?r:s))}catch(e){console.error("Failed to archive task:",e),s(r)}},[r]),u=(0,$.useCallback)(async e=>{s(r=>r.map(r=>r.id===e?{...r,archived_at:null}:r));try{let r=await rv.api.unarchiveTask(e);s(s=>s.map(s=>s.id===e?r:s))}catch(e){console.error("Failed to unarchive task:",e),s(r)}},[r]),h=(0,$.useCallback)(async i=>{if(e){s(i.map(e=>r.find(r=>r.id===e)).filter(e=>void 0!==e));try{await rv.api.reorderTasks(e,i)}catch(e){console.error("Failed to reorder tasks:",e),s(r)}}},[e,r]);return{tasks:r,loading:i,createTask:o,updateTask:l,deleteTask:c,archive:d,unarchive:u,reorderTasks:h,refetch:a}}(U?.id??null),{schedules:ep,loading:em,createSchedule:eg,updateSchedule:ex,deleteSchedule:ev,runNow:e_}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(!1),a=(0,$.useRef)(e),o=(0,$.useRef)(0),l=(0,$.useCallback)(async(e,r,i)=>{if(!e){o.current===r&&(s([]),n(!1));return}i&&n(!0);try{let i=await rv.api.getSchedules(e);o.current===r&&s(i)}catch(e){console.error("Failed to fetch schedules:",e)}finally{i&&o.current===r&&n(!1)}},[]);(0,$.useEffect)(()=>{a.current=e,o.current+=1,l(e,o.current,!0)},[e,l]);let c=(0,$.useCallback)(async()=>{let e=a.current;e&&await l(e,o.current,!1)},[l]),d=(0,$.useRef)(c);(0,$.useEffect)(()=>{d.current=c},[c]),(0,ok.useGlobalEventStream)(e=>{!e.type?.startsWith("schedule:")||a.current&&e.projectId===a.current&&d.current()});let u=(0,$.useCallback)(async r=>{if(!e)throw Error("No project selected");let s=await rv.api.createSchedule(e,r);return await c(),s},[e,c]),h=(0,$.useCallback)(async(e,r)=>{let s=await rv.api.updateSchedule(e,r);return await c(),s},[c]),f=(0,$.useCallback)(async e=>{await rv.api.deleteSchedule(e),await c()},[c]),p=(0,$.useCallback)(async e=>{let r=await rv.api.runScheduleNow(e);return await c(),r},[c]);return{schedules:r,loading:i,refetch:c,createSchedule:u,updateSchedule:h,deleteSchedule:f,runNow:p}}(U?.id??null),[ey,eb]=(0,$.useState)(null),[ew,eC]=(0,$.useState)(!1),{activity:ej,since:ek,refetch:eN,setOptimisticActivity:eE}=function(e){let[r,s]=(0,$.useState)(new Map),[i,n]=(0,$.useState)(new Map),a=(0,$.useRef)(new Map),o=(0,$.useRef)(new Map),l=(0,$.useRef)(null),c=(0,$.useCallback)(async()=>{if(!e){s(new Map),n(new Map),o.current=new Map,l.current=null,a.current=new Map;return}try{let r=await (0,rv.authFetch)(`${"localhost"===window.location.hostname&&"3000"===window.location.port?"http://localhost:5173":""}/api/projects/${e}/branches/activity`);if(!r.ok)return;let i=await r.json(),c=l.current!==e,{nextActivity:d,nextSince:u}=function(e,r,s,i){let n=new Map,a=new Map,o=[];for(let l of e){let e=l.branch??"",c=s.get(e)??0;if(!i&&l.since<c){let s=r.get(e);if(void 0!==s){n.set(e,s),a.set(e,c);continue}}n.set(e,l.activity),a.set(e,l.since),i||r.get(e)===l.activity||o.push(l.branch)}return{nextActivity:n,nextSince:a,transitions:o}}(i.branches,o.current,a.current,c);s(d),n(u),o.current=d,l.current=e,a.current=u}catch{}},[e]);return(0,$.useEffect)(()=>{c()},[c]),(0,ok.useGlobalEventStream)(r=>{var i,l,c;let d,u;if("branch:activity"!==r.type||!e||r.projectId!==e)return;let h=(i=r,l=o.current,c=a.current,d=i.branch??"",u=c.get(d)??0,i.since<u?{kind:"stale"}:l.get(d)===i.activity?{kind:"redundant",key:d}:{kind:"transition",key:d});"stale"===h.kind||(a.current.set(h.key,r.since),n(new Map(a.current)),"redundant"!==h.kind&&s(e=>{let s=new Map(e);return s.set(h.key,r.activity),o.current=s,s}))}),{activity:r,since:i,refetch:c,setOptimisticActivity:(0,$.useCallback)((e,r)=>{s(s=>{let i=function(e,r,s){let i=r??"";if(e.get(i)===s)return e;let n=new Map(e);return n.set(i,s),n}(s,e,r);return o.current=i,i})},[])}}(U?.id??null),{rules:eD,createRule:eR,updateRule:eA,deleteRule:eM}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(!0),o=(0,$.useCallback)(async()=>{if(!e){i([]),a(!1);return}try{let s=await rv.api.getRules(e,r);i(s)}catch(e){console.error("Failed to fetch rules:",e)}finally{a(!1)}},[e,r]);(0,$.useEffect)(()=>{o()},[o]);let l=(0,$.useCallback)(async s=>{if(!e)return null;try{let n=await rv.api.createRule(e,{...s,branch:r});return i(e=>[...e,n]),n}catch(e){return console.error("Failed to create rule:",e),null}},[e,r]),c=(0,$.useCallback)(async(e,r)=>{i(s=>s.map(s=>s.id===e?{...s,...r,enabled:void 0!==r.enabled?+!!r.enabled:s.enabled,updated_at:new Date().toISOString()}:s));try{let s=await rv.api.updateRule(e,r);return i(r=>r.map(r=>r.id===e?s:r)),s}catch(e){return console.error("Failed to update rule:",e),i(s),null}},[s]),d=(0,$.useCallback)(async e=>{i(r=>r.filter(r=>r.id!==e));try{await rv.api.deleteRule(e)}catch(e){console.error("Failed to delete rule:",e),i(s)}},[s]);return{rules:s,loading:n,createRule:l,updateRule:c,deleteRule:d,refetch:o}}(U?.id??null,N),{commands:eF,createCommand:eT,updateCommand:eP,deleteCommand:eB}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(!0),o=(0,$.useCallback)(async()=>{if(!e){i([]),a(!1);return}try{let s=await rv.api.getCommands(e,r);i(s)}catch(e){console.error("Failed to fetch commands:",e)}finally{a(!1)}},[e,r]);(0,$.useEffect)(()=>{o()},[o]);let l=(0,$.useCallback)(async s=>{if(!e)return null;try{let n=await rv.api.createCommand(e,{...s,branch:r});return i(e=>[...e,n]),n}catch(e){return console.error("Failed to create command:",e),null}},[e,r]),c=(0,$.useCallback)(async(e,r)=>{i(s=>s.map(s=>s.id===e?{...s,...r,updated_at:new Date().toISOString()}:s));try{let s=await rv.api.updateCommand(e,r);return i(r=>r.map(r=>r.id===e?s:r)),s}catch(e){return console.error("Failed to update command:",e),i(s),null}},[s]),d=(0,$.useCallback)(async e=>{i(r=>r.filter(r=>r.id!==e));try{await rv.api.deleteCommand(e)}catch(e){console.error("Failed to delete command:",e),i(s)}},[s]);return{commands:s,loading:n,createCommand:l,updateCommand:c,deleteCommand:d,refetch:o}}(U?.id??null,N),eL=(0,$.useRef)(null),eI=(0,$.useSyncExternalStore)(SR,SA,SM),eO=U?.id??null,ez=U?.agent_mode??null,e$=(0,$.useCallback)(e=>!!eO&&eI.has(SF(eO,e,ez)),[eI,eO,ez]),eW=(0,$.useCallback)(e=>{if(eO)return eI.get(SF(eO,e,ez))},[eI,eO,ez]),eH=(0,$.useCallback)(e=>ek.get(su(e)),[ek]),eU=(0,$.useMemo)(()=>(function(e,r,s,i){let n=new Map;if(!e)return n;for(let a of e){let e=su(a.branch),o=r.get(e);if(!s?.(a.branch)){n.set(e,o??"idle");continue}if("main-running"===o)n.set(e,"main-running");else if("main-completed"===o){let r=i?.backendSince?.(a.branch)??0,s=i?.placeholderSince?.(a.branch)??0;n.set(e,s>r?"idle":"main-completed")}else n.set(e,"idle")}return n})(J,ej,e$,{backendSince:eH,placeholderSince:eW}),[J,ej,e$,eH,eW]);s=ei,i=eU,n=U?.id??null,a=(0,$.useRef)(new Set),l=(o=function(e){let r=new Set;if(!e)return r;for(let[s,i]of e)oR.has(i)&&r.add(s);return r}(i)).size>0,c=JSON.stringify(Array.from(o).sort()),(0,$.useEffect)(()=>{let e=new Set(JSON.parse(c)),r=a.current;a.current=e,function(e,r){for(let s of e)if(!r.has(s))return!0;return!1}(r,e)&&s()},[c,s]),(0,$.useEffect)(()=>{let e=()=>s();return window.addEventListener("focus",e),()=>window.removeEventListener("focus",e)},[s]),(0,ok.useGlobalEventStream)(e=>{"executor:stopped"===e.type&&e.projectId===n&&s(),"merge-target:updated"===e.type&&null!==n&&e.projectId===n&&s()}),(0,$.useEffect)(()=>{let e=null,r=()=>{null!==e&&(clearInterval(e),e=null)},i=()=>{r(),e=setInterval(s,l?3e4:6e4)},n=()=>{"visible"===document.visibilityState?i():r()};return"visible"===document.visibilityState&&i(),document.addEventListener("visibilitychange",n),()=>{r(),document.removeEventListener("visibilitychange",n)}},[s,l]);let{notifications:eK,unreadCount:eq,markRead:eV,markAllRead:eY,remove:eG,clear:eX}=function(e){let[r,s]=(0,$.useState)([]),i=(0,$.useRef)(new Map);(0,$.useEffect)(()=>{for(let e of Object.values(k$))kK.has(e)||kq.has(e)||(kq.add(e),(async()=>{try{let r=await fetch(e),s=await r.blob(),i=new Audio(URL.createObjectURL(s));i.preload="auto",i.load(),kK.set(e,i),console.log(`[sound-preload-debug] warmed ${e} bytes=${s.size}`)}catch(r){console.log(`[sound-preload-debug] warm failed ${e}`,r)}finally{kq.delete(e)}})())},[]);let n=(0,$.useRef)(e);(0,$.useEffect)(()=>{n.current=e},[e]),(0,$.useEffect)(()=>{e&&s(r=>r.some(r=>r.id===e&&!r.read)?r.map(r=>r.id===e?{...r,read:!0}:r):r)},[e,r]),(0,ok.useGlobalEventStream)(e=>{var r,a;let o;if("branch:activity"!==e.type)return;let l=kW(e.projectId,e.branch),c=i.current.get(l)!==e.activity;if(i.current.set(l,e.activity),!c||"completed"!==(r=e.activity)&&"main-completed"!==r)return;let d=e.activity;a=k$[d],(o=kK.get(a))||((o=new Audio(a)).preload="auto",kK.set(a,o)),o.currentTime=0,console.log(`[sound-preload-debug] play ${a} readyState=${o.readyState}`),o.play().catch(()=>{});let u=n.current===l;s(r=>{var s;return[(s={...e,activity:d},{id:kW(s.projectId,s.branch),projectId:s.projectId,branch:s.branch,sessionId:s.sessionId??null,type:s.activity,at:s.since,read:u}),...r.filter(e=>e.id!==l)].slice(0,50)})}),(0,$.useEffect)(()=>{let e=function(){try{var e=window.localStorage.getItem(kH);if(!e)return[];try{let r=JSON.parse(e);if(!Array.isArray(r))return[];return r.filter(kU).map(e=>({...e,sessionId:e.sessionId??null})).slice(0,50)}catch{return[]}}catch{return[]}}();0!==e.length&&s(r=>{if(0===r.length)return e;let s=new Set(r.map(e=>e.id));return[...r,...e.filter(e=>!s.has(e.id))].slice(0,50)})},[]);let a=(0,$.useRef)(!1);(0,$.useEffect)(()=>{if(!a.current){a.current=!0;return}try{window.localStorage.setItem(kH,JSON.stringify(r))}catch{}},[r]);let o=(0,$.useCallback)(e=>{s(r=>r.map(r=>r.id===e?{...r,read:!0}:r))},[]),l=(0,$.useCallback)(()=>{s(e=>e.some(e=>!e.read)?e.map(e=>({...e,read:!0})):e)},[]),c=(0,$.useCallback)(e=>{s(r=>r.filter(r=>r.id!==e))},[]),d=(0,$.useCallback)(()=>{s(e=>e.length?[]:e)},[]),u=r.reduce((e,r)=>e+ +!r.read,0);return{notifications:r,unreadCount:u,markRead:o,markAllRead:l,remove:c,clear:d}}(U&&"workspace"===D?`${U.id}:${N??""}`:null),eJ=(0,$.useCallback)(()=>{eE(N,"working")},[N,eE]),eZ=(0,$.useRef)(null),eQ=(0,$.useCallback)(()=>{ef()},[ef]),e0=(0,$.useCallback)((e,r,s)=>{eZ.current={projectId:s??U?.id,branch:e,sessionId:r},E(e),v(r),M(e=>e+1)},[U?.id,v]),e1=(0,$.useCallback)(e=>{e0(e.branch,e.id),R("workspace")},[e0]),e2=(0,$.useCallback)(e=>{eN(),!1!==e.processAlive&&x({id:e.id,projectId:e.projectId,branch:e.branch,title:"New Session",status:e.status,processAlive:!0,updated_at:new Date().toISOString()})},[eN]),e5=(0,$.useCallback)((e,r)=>{U?.id&&r.trim()&&x(s=>({id:e,projectId:U.id,branch:s?.id===e?s.branch:N,title:r,status:s?.id===e?s.status:"running",processAlive:!0,updated_at:s?.id===e?s.updated_at:new Date().toISOString()}))},[U?.id,N]),e3=(0,$.useCallback)(()=>{eE(N,"idle")},[N,eE]),e4=(0,$.useCallback)(()=>{ef()},[ef]);e=U?.id??null,r={onTaskChanged:e4},d=(0,$.useRef)(r.onTaskChanged),(0,$.useEffect)(()=>{d.current=r.onTaskChanged}),(0,ok.useGlobalEventStream)(r=>{e&&r.projectId===e&&("task:created"===r.type||"task:updated"===r.type||"task:deleted"===r.type)&&d.current?.()});let e6=(0,$.useMemo)(()=>{let e=su(N);return ea.find(r=>r.assigned_branch===e)??null},[ea,N]);(0,$.useCallback)(e=>{O(async()=>{await P.current?.submitMessage(e.description??e.title)})},[]),(0,$.useCallback)(e=>{ec(e,{assigned_branch:null})},[ec]);let e8=(0,$.useRef)(void 0);(0,$.useEffect)(()=>{if(Z||0===J.length)return;let e=e8.current;if(void 0!==e){if(J.some(r=>r.branch===e.branch)){e8.current=void 0,e.sessionId?e0(e.branch,e.sessionId):E(e.branch);return}e8.current=void 0}J.some(e=>e.branch===N)||E(J[0].branch)},[J,Z,N,e0]);let e7=(0,$.useCallback)((e,r,s=null)=>{if(R("workspace"),e===U?.id)return void(s?e0(r,s):E(r));let i=H.find(r=>r.id===e);i&&(e8.current={branch:r,sessionId:s},X(i))},[U?.id,H,X,e0]),[e9,te]=(0,$.useState)(!1);(0,$.useEffect)(()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),te(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let tt=(0,$.useRef)(!1),tr=(0,$.useCallback)(async(e,r)=>{let s=H.find(r=>r.id===e);if(!s)return null;let i="local"===r?"local":r;return(s.agent_mode??"local")!==i?Y(s.id,{agentMode:i}):s},[H,Y]),ts=(0,$.useCallback)(e=>{if(tt.current)return;let r=H.find(r=>r.id===e);r&&(te(!1),X(r),R("project-info"))},[H,X]),ti=(0,$.useCallback)(async e=>{if(!tt.current){tt.current=!0,te(!1);try{let r=await tr(e.projectId,e.targetId);if(!r)return;R("workspace"),r.id===U?.id?(E(e.branch),v(null)):(e8.current={branch:e.branch,sessionId:null},X(r))}catch(e){console.error("Quick switcher navigation failed:",e),xg.toast.error("Failed to open workspace")}finally{tt.current=!1}}},[U?.id,tr,X,v]),tn=(0,$.useCallback)(async e=>{if(!tt.current){tt.current=!0,te(!1);try{let r=await tr(e.projectId,e.targetId);if(!r)return;R("workspace"),r.id===U?.id?e0(e.branch,e.sessionId,e.projectId):(e8.current={branch:e.branch,sessionId:e.sessionId},X(r))}catch(e){console.error("Quick switcher navigation failed:",e),xg.toast.error("Failed to open session")}finally{tt.current=!1}}},[U?.id,tr,X,e0]),ta=(0,$.useRef)(N),to=(0,$.useRef)(U?.id),tl=(0,$.useRef)(!1);(0,$.useEffect)(()=>{if(K)return;let e=!tl.current,r=!e&&ta.current!==N,s=!e&&to.current!==U?.id;ta.current=N,to.current=U?.id,tl.current=!0;let i=eZ.current;if(k2(i,U?.id,N,p)&&(eZ.current=null),function({branchChanged:e,projectChanged:r,urlSessionId:s,pendingSessionSelection:i,currentProjectId:n,selectedBranch:a}){return(!!e||!!r)&&!!s&&!k2(i,n,a,s)}({branchChanged:r,projectChanged:s,urlSessionId:p,pendingSessionSelection:i,currentProjectId:U?.id,selectedBranch:N})){eZ.current=null,v(null);return}let n=k1({projectId:U?.id,tab:D,branch:N});if(p){let e=new URL(n,window.location.origin);e.searchParams.set("session",p),window.history.replaceState(null,"",e.pathname+e.search)}else window.history.replaceState(null,"",n)},[U?.id,D,N,K,p,v]);let tc=(0,$.useCallback)(e=>{Q(),E(e)},[Q]);(0,$.useCallback)((e,r)=>{U&&r!==U.agent_mode?Y(U.id,{agentMode:r}).then(()=>{P.current?.submitMessage(e)}):P.current?.submitMessage(e)},[U,Y]);let td=(0,$.useRef)({content:"",at:0}),tu=(0,$.useCallback)(e=>{let r=Date.now(),s=td.current;s.content===e&&r-s.at<600||(td.current={content:e,at:r},eL.current?.sendMessage(e))},[]),th=(0,$.useCallback)(()=>{let e=`Please perform the following git operations for this worktree:
28
+ `,r)}paste(e){this._core.paste(e)}refresh(e,r){this._verifyIntegers(e,r),this._core.refresh(e,r)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return uz},set promptLabel(t){uz=t},get tooMuchOutput(){return u$},set tooMuchOutput(t){u$=t}}}_verifyIntegers(...e){for(xo of e)if(xo===1/0||isNaN(xo)||xo%1!=0)throw Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(xo of e)if(xo&&(xo===1/0||isNaN(xo)||xo%1!=0||xo<0))throw Error("This API only accepts positive integers")}},xc=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let r=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(r._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(0===e.css.cell.width||0===e.css.cell.height)return;let r=0===this._terminal.options.scrollback?0:this._terminal.options.overviewRuler?.width||14,s=window.getComputedStyle(this._terminal.element.parentElement),i=parseInt(s.getPropertyValue("height")),n=Math.max(0,parseInt(s.getPropertyValue("width"))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue("padding-top")),bottom:parseInt(a.getPropertyValue("padding-bottom")),right:parseInt(a.getPropertyValue("padding-right")),left:parseInt(a.getPropertyValue("padding-left"))},l=o.top+o.bottom;return{cols:Math.max(2,Math.floor((n-(o.right+o.left)-r)/e.css.cell.width)),rows:Math.max(1,Math.floor((i-l)/e.css.cell.height))}}},xd=class{constructor(e,r,s,i={}){this._terminal=e,this._regex=r,this._handler=s,this._options=i}provideLinks(e,r){let s=xu.computeLink(e,this._regex,this._terminal,this._handler);r(this._addCallbacks(s))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(r,s)=>{if(this._options.hover){let{range:i}=e;this._options.hover(r,s,i)}},e))}},xu=class e{static computeLink(r,s,i,n){let a=RegExp(s.source,(s.flags||"")+"g"),[o,l]=e._getWindowedLineStrings(r-1,i),c=o.join(""),d,u=[];for(;d=a.exec(c);){let r=d[0];if(!function(e){try{let r=new URL(e),s=r.password&&r.username?`${r.protocol}//${r.username}:${r.password}@${r.host}`:r.username?`${r.protocol}//${r.username}@${r.host}`:`${r.protocol}//${r.host}`;return e.toLocaleLowerCase().startsWith(s.toLocaleLowerCase())}catch{return!1}}(r))continue;let[s,a]=e._mapStrIdx(i,l,0,d.index),[o,c]=e._mapStrIdx(i,s,a,r.length);if(-1===s||-1===a||-1===o||-1===c)continue;let h={start:{x:a+1,y:s+1},end:{x:c,y:o+1}};u.push({range:h,text:r,activate:n})}return u}static _getWindowedLineStrings(e,r){let s,i=e,n=e,a=0,o="",l=[];if(s=r.buffer.active.getLine(e)){let e=s.translateToString(!0);if(s.isWrapped&&" "!==e[0]){for(a=0;(s=r.buffer.active.getLine(--i))&&a<2048&&(a+=(o=s.translateToString(!0)).length,l.push(o),!(!s.isWrapped||-1!==o.indexOf(" "))););l.reverse()}for(l.push(e),a=0;(s=r.buffer.active.getLine(++n))&&s.isWrapped&&a<2048&&(a+=(o=s.translateToString(!0)).length,l.push(o),-1===o.indexOf(" ")););}return[l,i]}static _mapStrIdx(e,r,s,i){let n=e.buffer.active,a=n.getNullCell(),o=s;for(;i;){let e=n.getLine(r);if(!e)return[-1,-1];for(let s=o;s<e.length;++s){e.getCell(s,a);let o=a.getChars();if(a.getWidth()&&(i-=o.length||1,s===e.length-1&&""===o)){let e=n.getLine(r+1);e&&e.isWrapped&&(e.getCell(0,a),2===a.getWidth()&&(i+=1))}if(i<0)return[r,s]}r++,o=0}return[r,o]}},xh=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function xf(e,r){let s=window.open();if(s){try{s.opener=null}catch{}s.location.href=r}else console.warn("Opening link blocked as opener could not be cleared")}var xp=class{constructor(e=xf,r={}){this._handler=e,this._options=r}activate(e){this._terminal=e;let r=this._options,s=r.urlRegex||xh;this._linkProvider=this._terminal.registerLinkProvider(new xd(this._terminal,s,this._handler,r))}dispose(){this._linkProvider?.dispose()}};let xm=(0,ew.default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var xg=e.i(754219);let xx=/\x1B(?:\][^\x07]*(?:\x07|\x1B\\)|[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g;function xv({logs:e,isPty:r,className:s,onInput:i,onResize:n,muteInput:a,processId:o,executorId:l,target:c,status:d,exitCode:u}){let h=(0,$.useRef)(null),f=(0,$.useRef)(null),p=(0,$.useRef)(null),m=(0,$.useRef)(0),g=(0,$.useRef)(0),x=(0,$.useRef)(a);x.current!==a&&console.log(`[ExecutorOutput] muteInput changed: ${x.current} → ${a}`),x.current=a;let{settings:v}=(0,d4.useTerminalSettings)(),_=(0,$.useRef)(v),[y,b]=(0,$.useState)(!1),w=(0,$.useRef)(0),S=(0,$.useRef)(e);S.current=e;let C=async()=>{if(!y){w.current=S.current.length,b(!0);return}let e=S.current,r=Math.min(w.current,e.length),s=e.slice(r).map(e=>"stdout"===e.type||"stderr"===e.type||"pty"===e.type?e.data:"").join("");b(!1);let i=s.replace(xx,"");if(!i)return void xg.toast.info("Capture stopped — no output to copy");try{await navigator.clipboard.writeText(i),xg.toast.success("Copied captured output to clipboard")}catch{xg.toast.error("Failed to copy to clipboard")}};(0,$.useEffect)(()=>{if(!h.current||f.current)return;let e=_.current,s=new xl({cursorBlink:r,cursorStyle:r?"block":"underline",disableStdin:!r,convertEol:!0,fontSize:e.fontSize,fontFamily:e.fontFamily,scrollback:e.scrollback,theme:{background:"#09090b",foreground:"#fafafa",cursor:r?"#fafafa":"#09090b",cursorAccent:"#09090b",selectionBackground:"#3f3f46",black:"#09090b",red:"#f87171",green:"#4ade80",yellow:"#facc15",blue:"#60a5fa",magenta:"#c084fc",cyan:"#22d3ee",white:"#fafafa",brightBlack:"#71717a",brightRed:"#fca5a5",brightGreen:"#86efac",brightYellow:"#fde047",brightBlue:"#93c5fd",brightMagenta:"#d8b4fe",brightCyan:"#67e8f9",brightWhite:"#ffffff"},allowProposedApi:!0}),a=new xc,o=new xp;return s.loadAddon(a),s.loadAddon(o),s.open(h.current),setTimeout(()=>{try{let e=h.current;if(!e||0===e.clientWidth||0===e.clientHeight)return;a.fit(),r&&n?.(s.cols,s.rows)}catch{}},0),f.current=s,p.current=a,r&&i&&s.onData(e=>{x.current||0!==g.current||i(e)}),r&&n&&s.onResize(({cols:e,rows:r})=>{n(e,r)}),()=>{s.dispose(),f.current=null,p.current=null,m.current=0,g.current=0}},[r,i,n]),(0,$.useEffect)(()=>{if(!f.current)return;e.length<m.current&&(f.current.reset(),m.current=0);let r="",s="";for(let i=m.current;i<e.length;i++){let n=e[i];("pty"===n.type||"stdout"===n.type||"stderr"===n.type)&&(n.historical?r+=n.data:s+=n.data)}if(m.current=e.length,r){g.current++;try{f.current.write(r,()=>{g.current=Math.max(0,g.current-1)})}catch(e){g.current=Math.max(0,g.current-1),console.error("[ExecutorOutput] terminal write failed",e)}}if(s)try{f.current.write(s)}catch(e){console.error("[ExecutorOutput] terminal write failed",e)}},[e]),(0,$.useEffect)(()=>{let e=f.current;if(e){e.options.fontSize=v.fontSize,e.options.fontFamily=v.fontFamily,e.options.scrollback=v.scrollback;try{p.current?.fit()}catch{}}},[v.fontSize,v.fontFamily,v.scrollback]),(0,$.useEffect)(()=>{if(!h.current||!p.current)return;let e=new ResizeObserver(()=>{try{let e=h.current;if(!e||0===e.clientWidth||0===e.clientHeight)return;p.current?.fit()}catch{}});return e.observe(h.current),()=>{e.disconnect()}},[]);let j="closed"===d&&null!==u?`closed \xb7 exit ${u}`:d??null;return(0,z.jsxs)("div",{className:(0,ey.cn)("relative h-[300px] rounded-md border bg-zinc-950 overflow-hidden",s),children:[(0,z.jsx)("div",{ref:h,className:"h-full w-full"}),(0,z.jsxs)("div",{className:"absolute top-2 right-3 z-10 flex items-center gap-1.5",children:[(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{type:"button",title:"Process info","aria-label":"Show process info",className:(0,ey.cn)("flex h-6 w-6 items-center justify-center rounded","bg-zinc-900/70 backdrop-blur-sm border border-zinc-700/60","text-zinc-400 hover:text-zinc-100 hover:border-zinc-500 transition-colors"),children:(0,z.jsx)(xm,{className:"h-3 w-3"})})}),(0,z.jsxs)(ag,{align:"end",className:"w-72",children:[(0,z.jsx)(ab,{className:"text-xs text-muted-foreground",children:"Process info"}),[{label:"Process",value:o??null},{label:"Executor",value:l??null},{label:"Target",value:c??null},{label:"Status",value:j}].map(e=>(0,z.jsxs)(ax,{disabled:!e.value,onSelect:r=>{var s,i;r.preventDefault(),s=e.label,(i=e.value)&&(navigator.clipboard.writeText(i),xg.toast.success(`${s} copied`))},className:"flex items-center justify-between gap-3 font-mono text-xs",children:[(0,z.jsx)("span",{className:"shrink-0 text-muted-foreground",children:e.label}),(0,z.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,z.jsx)("span",{className:"truncate",children:e.value??"—"}),e.value&&(0,z.jsx)(ul.Copy,{className:"h-3 w-3 shrink-0 opacity-60"})]})]},e.label))]})]}),(0,z.jsx)("button",{type:"button",onClick:C,title:y?"Stop capture & copy to clipboard":"Start capturing output","aria-label":y?"Stop capture and copy":"Start capturing output",className:(0,ey.cn)("flex h-6 w-6 items-center justify-center rounded","bg-zinc-900/70 backdrop-blur-sm border border-zinc-700/60","text-zinc-400 hover:text-zinc-100 hover:border-zinc-500 transition-colors",y&&"text-red-400 border-red-500/70 hover:text-red-300"),children:y?(0,z.jsx)(uA,{className:"h-3 w-3 fill-current"}):(0,z.jsx)(rS,{className:"h-3 w-3"})})]})]})}let x_=(0,ew.default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]),xy=[{name:"Dev Server",command:"pnpm dev",executor_type:"command",pty:!0,description:"Start the development server with hot reload"},{name:"Build",command:"pnpm build",executor_type:"command",pty:!0,description:"Build the project for production"},{name:"Lint",command:"pnpm lint",executor_type:"command",pty:!0,description:"Run the linter to check code quality"},{name:"Type Check",command:"npx tsc --noEmit",executor_type:"command",pty:!0,description:"Run TypeScript type checking without emitting files"},{name:"Test",command:"pnpm test",executor_type:"command",pty:!0,description:"Run the test suite"},{name:"Rebase on and merge into main",command:"Our goal is to sync the current local branch with the local branch/worktree `main`. The two branches may have diverged.\n\nPlease do the following in order. Only proceed to the next step if the previous step succeeds:\n\n1. Rebase the current local branch onto the local branch `main`, and resolve any conflicts if needed.\n2. If, after the rebase, `main` does not yet contain the current branch's commits, switch to the `main` branch/worktree and merge the current branch into `main` using `git merge`. Do not use `git branch -f`.\n3. If the current branch is already fully contained in `main`, and `main` has newer commits, update the current branch so it includes the latest commits from `main`.\n4. Push both the current local branch and the local branch `main` to the remote.",executor_type:"prompt",pty:!1,description:"Rebase current branch onto main, merge into main, and push both branches"},{name:"Reset to main",command:"git reset --hard main",executor_type:"command",pty:!0,description:"Hard reset the current branch to match main"},{name:"Push to remote",command:"git push --force-with-lease",executor_type:"command",pty:!0,description:"Force push to remote with lease safety check"},{name:"Git commit",command:"Inspect the modified and untracked and deleted files in the current repository, generate an appropriate commit message, and commit all relevant files.\n\nCommit message rules:\n- Use Conventional Commits format (feat:, fix:, chore:, refactor:, docs:, test:, ci:, build:, perf:, style:, etc.)\n- Choose the type that best matches the main purpose of the changes\n- Make the message specific to the actual changes\n- Keep it within 50 characters if possible\n- Use lowercase\n- Do not end with a period\n- Do not wrap the message in quotes, backticks, or markdown\n\nCommit requirements:\n- Include all relevant modified and untracked files\n- Do not include unrelated files\n- If there are no meaningful changes to commit, do not create a commit\n\nWhen finished, output only the final commit message.",executor_type:"prompt",pty:!1,description:"Inspect changes, generate a conventional commit message, and commit"},{name:"Tag and push",command:"Find the latest SemVer tag in the repository, increase the patch number by 1, create the new tag from the current commit, and push it to origin.",executor_type:"prompt",pty:!1,description:"Bump the patch version tag and push it to origin"}];function xb({open:e,onOpenChange:r,executor:s,onSubmit:i}){let[n,a]=(0,$.useState)(s?.name??""),[o,l]=(0,$.useState)(s?.executor_type??"command"),[c,d]=(0,$.useState)(s?.prompt_provider??"claude"),[u,h]=(0,$.useState)(s?.command??""),[f,p]=(0,$.useState)(s?.cwd??""),[m,g]=(0,$.useState)(s?.pty??!0),[x,v]=(0,$.useState)(!1),[_,y]=(0,$.useState)(!1),[b,w]=(0,$.useState)(null),[S,C]=(0,$.useState)(null),[j,k]=(0,$.useState)(""),N=!!s;(0,$.useEffect)(()=>{e&&(y(!1),w(null),C(null),k(""),s&&(a(s.name),l(s.executor_type??"command"),d(s.prompt_provider??"claude"),h(s.command),p(s.cwd??""),g(s.pty)))},[e]);let E=async e=>{if(e.preventDefault(),n.trim()&&u.trim()){v(!0);try{await i({name:n.trim(),command:u.trim(),executor_type:o,prompt_provider:"prompt"===o?c:null,cwd:f.trim()||void 0,pty:"prompt"===o||m}),r(!1),N||(a(""),l("command"),d("claude"),h(""),p(""),g(!0))}finally{v(!1)}}};return(0,z.jsx)(t7,{open:e,onOpenChange:r,children:(0,z.jsxs)(rr,{children:[(0,z.jsx)(rs,{children:(0,z.jsxs)("div",{className:"flex items-center justify-between pr-6",children:[(0,z.jsx)(rn,{children:_?"Select Preset":N?"Edit Executor":"Add Executor"}),!N&&!_&&(0,z.jsx)("button",{type:"button",className:"text-sm text-muted-foreground hover:text-foreground transition-colors",onClick:()=>y(!0),children:"Select from presets"})]})}),(0,z.jsxs)("div",{className:"h-[420px] flex flex-col",children:[!_&&(0,z.jsxs)("form",{onSubmit:E,className:"space-y-4 flex-1 flex flex-col",children:[(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Name"}),(0,z.jsx)(ro,{placeholder:"e.g., Dev Server",value:n,onChange:e=>a(e.target.value),required:!0})]}),(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Type"}),(0,z.jsxs)("div",{className:"flex rounded-md border border-input overflow-hidden",children:[(0,z.jsx)("button",{type:"button",className:(0,ey.cn)("flex-1 px-3 py-1.5 text-sm font-medium transition-colors","command"===o?"bg-primary text-primary-foreground":"bg-background text-muted-foreground hover:bg-muted"),onClick:()=>l("command"),children:"Command"}),(0,z.jsx)("button",{type:"button",className:(0,ey.cn)("flex-1 px-3 py-1.5 text-sm font-medium transition-colors border-l border-input","prompt"===o?"bg-primary text-primary-foreground":"bg-background text-muted-foreground hover:bg-muted"),onClick:()=>l("prompt"),children:"Prompt"})]})]}),"prompt"===o&&(0,z.jsxs)("div",{className:"flex gap-3",children:[(0,z.jsxs)("div",{className:"w-[140px] shrink-0 space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Provider"}),(0,z.jsxs)(cX,{value:c,onValueChange:e=>d(e),children:[(0,z.jsx)(cZ,{className:"w-full",children:(0,z.jsx)(cJ,{})}),(0,z.jsxs)(cQ,{children:[(0,z.jsx)(c0,{value:"claude",children:"Claude"}),(0,z.jsx)(c0,{value:"codex",children:"Codex"})]})]})]}),(0,z.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,z.jsxs)("label",{className:"text-sm font-medium",children:["Working Directory"," ",(0,z.jsx)("span",{className:"text-muted-foreground",children:"(optional)"})]}),(0,z.jsx)(ro,{placeholder:"Relative to worktree root",value:f,onChange:e=>p(e.target.value)})]})]}),(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"prompt"===o?"Prompt":"Command"}),"prompt"===o?(0,z.jsx)("textarea",{className:"flex min-h-[90px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 resize-y",placeholder:"e.g., Review the code and suggest improvements",value:u,onChange:e=>h(e.target.value),required:!0}):(0,z.jsx)(ro,{placeholder:"e.g., npm run dev",value:u,onChange:e=>h(e.target.value),required:!0})]}),"command"===o&&(0,z.jsxs)("div",{className:"space-y-2",children:[(0,z.jsxs)("label",{className:"text-sm font-medium",children:["Working Directory"," ",(0,z.jsx)("span",{className:"text-muted-foreground",children:"(optional)"})]}),(0,z.jsx)(ro,{placeholder:"Relative to worktree root (leave empty for root)",value:f,onChange:e=>p(e.target.value)})]}),"command"===o&&(0,z.jsxs)("div",{className:"flex items-center justify-between",children:[(0,z.jsxs)("div",{className:"space-y-0.5",children:[(0,z.jsx)("label",{className:"text-sm font-medium",children:"Terminal Mode (PTY)"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"Enable for interactive commands like top, vim, htop"})]}),(0,z.jsx)("button",{type:"button",role:"switch","aria-checked":m,onClick:()=>g(!m),className:(0,ey.cn)("relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",m?"bg-primary":"bg-input"),children:(0,z.jsx)("span",{className:(0,ey.cn)("pointer-events-none inline-block h-5 w-5 transform rounded-full bg-background shadow-lg ring-0 transition-transform",m?"translate-x-5":"translate-x-0")})})]}),(0,z.jsx)("div",{className:"flex-1"}),(0,z.jsxs)(ri,{children:[(0,z.jsx)(W.Button,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),(0,z.jsx)(W.Button,{type:"submit",disabled:x||!n.trim()||!u.trim(),children:x?"Saving...":N?"Save":"Add"})]})]}),_&&(0,z.jsxs)("div",{className:"space-y-4 flex-1 flex flex-col min-h-0",children:[(0,z.jsx)(ro,{placeholder:"Search presets...",value:j,onChange:e=>k(e.target.value),autoFocus:!0}),(0,z.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0 space-y-1",children:xy.filter(e=>{if(!j.trim())return!0;let r=j.toLowerCase();return e.name.toLowerCase().includes(r)||e.command.toLowerCase().includes(r)||(e.description?.toLowerCase().includes(r)??!1)}).map(e=>{let r=b?.command===e.command,s=S===e.command;return(0,z.jsxs)("div",{className:"rounded-md overflow-hidden",children:[(0,z.jsxs)("button",{type:"button",className:(0,ey.cn)("w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors",r?"bg-primary/10 text-primary":"hover:bg-muted"),onClick:()=>w(e),children:["command"===e.executor_type?(0,z.jsx)(aN,{className:"h-4 w-4 shrink-0 text-muted-foreground"}):(0,z.jsx)(x_,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,z.jsx)("span",{className:"font-medium flex-1 text-left",children:e.name}),(0,z.jsx)("button",{type:"button",className:"shrink-0 p-0.5 rounded hover:bg-muted-foreground/10 transition-colors",onClick:r=>{r.stopPropagation(),C(s?null:e.command)},children:s?(0,z.jsx)(sw,{className:"h-4 w-4 text-muted-foreground"}):(0,z.jsx)(af,{className:"h-4 w-4 text-muted-foreground"})})]}),s&&(0,z.jsxs)("div",{className:(0,ey.cn)("px-3 pb-2 pt-1 text-xs text-muted-foreground space-y-1 border-t border-border/50",r?"bg-primary/5":"bg-muted/50"),children:[e.description&&(0,z.jsx)("p",{children:e.description}),(0,z.jsx)("pre",{className:"whitespace-pre-wrap break-all bg-muted/50 rounded px-2 py-1 font-mono",children:e.command}),(0,z.jsxs)("div",{className:"flex gap-3",children:[(0,z.jsxs)("span",{children:["Type: ",(0,z.jsx)("span",{className:"font-medium text-foreground/70",children:e.executor_type})]}),(0,z.jsxs)("span",{children:["PTY: ",(0,z.jsx)("span",{className:"font-medium text-foreground/70",children:e.pty?"on":"off"})]})]})]})]},e.command)})}),(0,z.jsxs)(ri,{children:[(0,z.jsx)(W.Button,{type:"button",variant:"outline",onClick:()=>{y(!1),w(null),C(null)},children:"Cancel"}),(0,z.jsx)(W.Button,{type:"button",disabled:!b,onClick:()=>{b&&(a(b.name),h(b.command),l(b.executor_type),g(b.pty),y(!1),w(null),C(null))},children:"Select"})]})]})]})]})})}let xw={logs:[],status:"connecting",exitCode:null,isPty:!1,replayingHistory:!0},xS=(0,$.createContext)(null);function xC({projectId:e,children:r}){let s=(0,$.useRef)(new Map),i=(0,$.useRef)(new Map),n=(0,$.useRef)(new Set),a=(0,$.useRef)(null),o=(0,$.useRef)(0),l=(0,$.useRef)(null),c=(0,$.useCallback)(e=>{i.current.get(e)?.forEach(e=>e())},[]),d=(0,$.useCallback)((e,r)=>{let i=s.current.get(e)??xw;s.current.set(e,{...i,...r}),c(e)},[c]),u=(0,$.useCallback)(e=>{a.current?.readyState===WebSocket.OPEN&&a.current.send(JSON.stringify(e))},[]),h=(0,$.useCallback)(e=>{let{processId:r}=e,i="error"===e.type?e.message:"finished"===e.type?`exitCode=${e.exitCode}`:"init"===e.type?`isPty=${e.isPty}`:"history_end"===e.type?"":`${e.data.length}b`;if(console.log("[diag:mux] recv",e.type,r,i),"init"===e.type)d(r,{isPty:e.isPty,replayingHistory:!0,logs:[],status:"connected"});else if("history_end"===e.type)d(r,{replayingHistory:!1});else if("finished"===e.type)console.log(`[diag:remote-stop] ${new Date().toISOString()} mux received FINISHED processId=${r} exitCode=${e.exitCode} — will trigger markProcessFinished → button flips to Start`),d(r,{exitCode:e.exitCode,status:"closed"});else if("error"===e.type)console.log(`[diag:remote-stop] ${new Date().toISOString()} mux received ERROR processId=${r} — status=error, does NOT flip isRunning`),d(r,{status:"error"});else{let i=s.current.get(r)??xw,{processId:n,...a}=e;d(r,{logs:[...i.logs,{...a,historical:i.replayingHistory}]})}},[d]);(0,$.useEffect)(()=>{if(!e)return;let r=!1;o.current=0;let i=()=>{r||(0,rv.getFreshToken)().then(()=>{r||(()=>{if(r)return;let c=new WebSocket((0,rv.getWebSocketUrl)(`/api/executor-logs/stream?projectId=${encodeURIComponent(e)}`));a.current=c,c.onopen=()=>{if(!r)for(let e of(o.current=0,console.log("[diag:mux] WS open, resubscribing",[...n.current]),n.current))c.send(JSON.stringify({type:"subscribe",processId:e}))},c.onmessage=e=>{if(!r)try{h(JSON.parse(e.data))}catch(e){console.error("[ExecutorLogs] parse error:",e)}},c.onclose=()=>{if(a.current=null,console.log("[diag:mux] WS close, reconnectAttempt=",o.current,"cancelled=",r),r)return;let e=e=>{let r=s.current.get(e);return r?.status==="closed"||r?.status==="error"};if(o.current<8){let s=o.current++,a=Math.min(15e3,1e3*2**s),c=a+a*Math.random()*.25;for(let r of n.current)e(r)||d(r,{status:"connecting"});l.current=setTimeout(()=>{l.current=null,r||i()},c)}else for(let r of n.current)e(r)||d(r,{status:"error"})}})()})};return i(),()=>{r=!0,l.current&&clearTimeout(l.current),l.current=null,a.current?.close(),a.current=null}},[e,h,d]);let f=(0,$.useMemo)(()=>({subscribeProcess:e=>{n.current.has(e)||(n.current.add(e),s.current.set(e,{...xw}),c(e),console.log("[diag:mux] send subscribe",e,"(state reset to EMPTY)"),u({type:"subscribe",processId:e}))},unsubscribeProcess:e=>{n.current.has(e)&&(n.current.delete(e),console.log("[diag:mux] send unsubscribe",e),u({type:"unsubscribe",processId:e}))},sendInput:(e,r)=>u({type:"input",processId:e,data:r}),sendResize:(e,r,s)=>u({type:"resize",processId:e,cols:r,rows:s}),onProcessChange:(e,r)=>{let s=i.current.get(e);return s||(s=new Set,i.current.set(e,s)),s.add(r),()=>{s?.delete(r)}},getProcessState:e=>s.current.get(e)??xw}),[c,u]);return(0,z.jsx)(xS.Provider,{value:f,children:r})}let xj="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function xk(e){let r=Object.prototype.toString.call(e);return"[object Window]"===r||"[object global]"===r}function xN(e){return"nodeType"in e}function xE(e){var r,s;return e?xk(e)?e:xN(e)&&null!=(r=null==(s=e.ownerDocument)?void 0:s.defaultView)?r:window:window}function xD(e){let{Document:r}=xE(e);return e instanceof r}function xR(e){return!xk(e)&&e instanceof xE(e).HTMLElement}function xA(e){return e instanceof xE(e).SVGElement}function xM(e){return e?xk(e)?e.document:xN(e)?xD(e)?e:xR(e)||xA(e)?e.ownerDocument:document:document:document}let xF=xj?$.useLayoutEffect:$.useEffect;function xT(e){let r=(0,$.useRef)(e);return xF(()=>{r.current=e}),(0,$.useCallback)(function(){for(var e=arguments.length,s=Array(e),i=0;i<e;i++)s[i]=arguments[i];return null==r.current?void 0:r.current(...s)},[])}function xP(e,r){void 0===r&&(r=[e]);let s=(0,$.useRef)(e);return xF(()=>{s.current!==e&&(s.current=e)},r),s}function xB(e,r){let s=(0,$.useRef)();return(0,$.useMemo)(()=>{let r=e(s.current);return s.current=r,r},[...r])}function xL(e){let r=xT(e),s=(0,$.useRef)(null),i=(0,$.useCallback)(e=>{e!==s.current&&(null==r||r(e,s.current)),s.current=e},[]);return[s,i]}function xI(e){let r=(0,$.useRef)();return(0,$.useEffect)(()=>{r.current=e},[e]),r.current}let xO={};function xz(e,r){return(0,$.useMemo)(()=>{if(r)return r;let s=null==xO[e]?0:xO[e]+1;return xO[e]=s,e+"-"+s},[e,r])}function x$(e){return function(r){for(var s=arguments.length,i=Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];return i.reduce((r,s)=>{for(let[i,n]of Object.entries(s)){let s=r[i];null!=s&&(r[i]=s+e*n)}return r},{...r})}}let xW=x$(1),xH=x$(-1);function xU(e){if(!e)return!1;let{KeyboardEvent:r}=xE(e.target);return r&&e instanceof r}function xK(e){if(function(e){if(!e)return!1;let{TouchEvent:r}=xE(e.target);return r&&e instanceof r}(e)){if(e.touches&&e.touches.length){let{clientX:r,clientY:s}=e.touches[0];return{x:r,y:s}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:r,clientY:s}=e.changedTouches[0];return{x:r,y:s}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let xq=Object.freeze({Translate:{toString(e){if(!e)return;let{x:r,y:s}=e;return"translate3d("+(r?Math.round(r):0)+"px, "+(s?Math.round(s):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:r,scaleY:s}=e;return"scaleX("+r+") scaleY("+s+")"}},Transform:{toString(e){if(e)return[xq.Translate.toString(e),xq.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:r,duration:s,easing:i}=e;return r+" "+s+"ms "+i}}}),xV="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",xY={display:"none"};function xG(e){let{id:r,value:s}=e;return $.default.createElement("div",{id:r,style:xY},s)}function xX(e){let{id:r,announcement:s,ariaLiveType:i="assertive"}=e;return $.default.createElement("div",{id:r,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":i,"aria-atomic":!0},s)}let xJ=(0,$.createContext)(null),xZ={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},xQ={onDragStart(e){let{active:r}=e;return"Picked up draggable item "+r.id+"."},onDragOver(e){let{active:r,over:s}=e;return s?"Draggable item "+r.id+" was moved over droppable area "+s.id+".":"Draggable item "+r.id+" is no longer over a droppable area."},onDragEnd(e){let{active:r,over:s}=e;return s?"Draggable item "+r.id+" was dropped over droppable area "+s.id:"Draggable item "+r.id+" was dropped."},onDragCancel(e){let{active:r}=e;return"Dragging was cancelled. Draggable item "+r.id+" was dropped."}};function x0(e){var r;let s,{announcements:i=xQ,container:n,hiddenTextDescribedById:a,screenReaderInstructions:o=xZ}=e,{announce:l,announcement:c}=function(){let[e,r]=(0,$.useState)("");return{announce:(0,$.useCallback)(e=>{null!=e&&r(e)},[]),announcement:e}}(),d=xz("DndLiveRegion"),[u,h]=(0,$.useState)(!1);if((0,$.useEffect)(()=>{h(!0)},[]),r=(0,$.useMemo)(()=>({onDragStart(e){let{active:r}=e;l(i.onDragStart({active:r}))},onDragMove(e){let{active:r,over:s}=e;i.onDragMove&&l(i.onDragMove({active:r,over:s}))},onDragOver(e){let{active:r,over:s}=e;l(i.onDragOver({active:r,over:s}))},onDragEnd(e){let{active:r,over:s}=e;l(i.onDragEnd({active:r,over:s}))},onDragCancel(e){let{active:r,over:s}=e;l(i.onDragCancel({active:r,over:s}))}}),[l,i]),s=(0,$.useContext)(xJ),(0,$.useEffect)(()=>{if(!s)throw Error("useDndMonitor must be used within a children of <DndContext>");return s(r)},[r,s]),!u)return null;let f=$.default.createElement($.default.Fragment,null,$.default.createElement(xG,{id:a,value:o.draggable}),$.default.createElement(xX,{id:d,announcement:c}));return n?(0,ee.createPortal)(f,n):f}function x1(){}function x2(e,r){return(0,$.useMemo)(()=>({sensor:e,options:null!=r?r:{}}),[e,r])}(_=E||(E={})).DragStart="dragStart",_.DragMove="dragMove",_.DragEnd="dragEnd",_.DragCancel="dragCancel",_.DragOver="dragOver",_.RegisterDroppable="registerDroppable",_.SetDroppableDisabled="setDroppableDisabled",_.UnregisterDroppable="unregisterDroppable";let x5=Object.freeze({x:0,y:0});function x3(e,r){return Math.sqrt(Math.pow(e.x-r.x,2)+Math.pow(e.y-r.y,2))}function x4(e,r){let{data:{value:s}}=e,{data:{value:i}}=r;return s-i}function x6(e,r){let{data:{value:s}}=e,{data:{value:i}}=r;return i-s}function x8(e){let{left:r,top:s,height:i,width:n}=e;return[{x:r,y:s},{x:r+n,y:s},{x:r,y:s+i},{x:r+n,y:s+i}]}function x7(e,r){if(!e||0===e.length)return null;let[s]=e;return r?s[r]:s}function x9(e,r,s){return void 0===r&&(r=e.left),void 0===s&&(s=e.top),{x:r+.5*e.width,y:s+.5*e.height}}let ve=e=>{let{collisionRect:r,droppableRects:s,droppableContainers:i}=e,n=[];for(let e of i){let{id:i}=e,a=s.get(i);if(a){let s=function(e,r){let s=Math.max(r.top,e.top),i=Math.max(r.left,e.left),n=Math.min(r.left+r.width,e.left+e.width),a=Math.min(r.top+r.height,e.top+e.height);if(i<n&&s<a){let o=r.width*r.height,l=e.width*e.height,c=(n-i)*(a-s);return Number((c/(o+l-c)).toFixed(4))}return 0}(a,r);s>0&&n.push({id:i,data:{droppableContainer:e,value:s}})}}return n.sort(x6)};function vt(e,r){return e&&r?{x:e.left-r.left,y:e.top-r.top}:x5}let vr=function(e){for(var r=arguments.length,s=Array(r>1?r-1:0),i=1;i<r;i++)s[i-1]=arguments[i];return s.reduce((e,r)=>({...e,top:e.top+ +r.y,bottom:e.bottom+ +r.y,left:e.left+ +r.x,right:e.right+ +r.x}),{...e})},vs={ignoreTransform:!1};function vi(e,r){void 0===r&&(r=vs);let s=e.getBoundingClientRect();if(r.ignoreTransform){let{transform:r,transformOrigin:i}=xE(e).getComputedStyle(e);r&&(s=function(e,r,s){let i=function(e){if(e.startsWith("matrix3d(")){let r=e.slice(9,-1).split(/, /);return{x:+r[12],y:+r[13],scaleX:+r[0],scaleY:+r[5]}}if(e.startsWith("matrix(")){let r=e.slice(7,-1).split(/, /);return{x:+r[4],y:+r[5],scaleX:+r[0],scaleY:+r[3]}}return null}(r);if(!i)return e;let{scaleX:n,scaleY:a,x:o,y:l}=i,c=e.left-o-(1-n)*parseFloat(s),d=e.top-l-(1-a)*parseFloat(s.slice(s.indexOf(" ")+1)),u=n?e.width/n:e.width,h=a?e.height/a:e.height;return{width:u,height:h,top:d,right:c+u,bottom:d+h,left:c}}(s,r,i))}let{top:i,left:n,width:a,height:o,bottom:l,right:c}=s;return{top:i,left:n,width:a,height:o,bottom:l,right:c}}function vn(e){return vi(e,{ignoreTransform:!0})}function va(e,r){let s=[];return e?function i(n){var a,o;let l;if(null!=r&&s.length>=r||!n)return s;if(xD(n)&&null!=n.scrollingElement&&!s.includes(n.scrollingElement))return s.push(n.scrollingElement),s;if(!xR(n)||xA(n)||s.includes(n))return s;let c=xE(e).getComputedStyle(n);return(n!==e&&(void 0===(a=c)&&(a=xE(n).getComputedStyle(n)),l=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(e=>{let r=a[e];return"string"==typeof r&&l.test(r)}))&&s.push(n),void 0===(o=c)&&(o=xE(n).getComputedStyle(n)),"fixed"===o.position)?s:i(n.parentNode)}(e):s}function vo(e){let[r]=va(e,1);return null!=r?r:null}function vl(e){return xj&&e?xk(e)?e:xN(e)?xD(e)||e===xM(e).scrollingElement?window:xR(e)?e:null:null:null}function vc(e){return xk(e)?e.scrollX:e.scrollLeft}function vd(e){return xk(e)?e.scrollY:e.scrollTop}function vu(e){return{x:vc(e),y:vd(e)}}function vh(e){return!!xj&&!!e&&e===document.scrollingElement}function vf(e){let r={x:0,y:0},s=vh(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},i={x:e.scrollWidth-s.width,y:e.scrollHeight-s.height},n=e.scrollTop<=r.y,a=e.scrollLeft<=r.x;return{isTop:n,isLeft:a,isBottom:e.scrollTop>=i.y,isRight:e.scrollLeft>=i.x,maxScroll:i,minScroll:r}}(y=D||(D={}))[y.Forward=1]="Forward",y[y.Backward=-1]="Backward";let vp={x:.2,y:.2};function vm(e){return e.reduce((e,r)=>xW(e,vu(r)),x5)}let vg=[["x",["left","right"],function(e){return e.reduce((e,r)=>e+vc(r),0)}],["y",["top","bottom"],function(e){return e.reduce((e,r)=>e+vd(r),0)}]];class vx{constructor(e,r){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const s=va(r),i=vm(s);for(const[r,n,a]of(this.rect={...e},this.width=e.width,this.height=e.height,vg))for(const e of n)Object.defineProperty(this,e,{get:()=>{let n=a(s),o=i[r]-n;return this.rect[e]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class vv{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var r;return null==(r=this.target)?void 0:r.removeEventListener(...e)})},this.target=e}add(e,r,s){var i;null==(i=this.target)||i.addEventListener(e,r,s),this.listeners.push([e,r,s])}}function v_(e,r){let s=Math.abs(e.x),i=Math.abs(e.y);return"number"==typeof r?Math.sqrt(s**2+i**2)>r:"x"in r&&"y"in r?s>r.x&&i>r.y:"x"in r?s>r.x:"y"in r&&i>r.y}function vy(e){e.preventDefault()}function vb(e){e.stopPropagation()}(b=R||(R={})).Click="click",b.DragStart="dragstart",b.Keydown="keydown",b.ContextMenu="contextmenu",b.Resize="resize",b.SelectionChange="selectionchange",b.VisibilityChange="visibilitychange",(w=A||(A={})).Space="Space",w.Down="ArrowDown",w.Right="ArrowRight",w.Left="ArrowLeft",w.Up="ArrowUp",w.Esc="Escape",w.Enter="Enter",w.Tab="Tab";let vw={start:[A.Space,A.Enter],cancel:[A.Esc],end:[A.Space,A.Enter,A.Tab]},vS=(e,r)=>{let{currentCoordinates:s}=r;switch(e.code){case A.Right:return{...s,x:s.x+25};case A.Left:return{...s,x:s.x-25};case A.Down:return{...s,y:s.y+25};case A.Up:return{...s,y:s.y-25}}};class vC{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:r}}=e;this.props=e,this.listeners=new vv(xM(r)),this.windowListeners=new vv(xE(r)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(R.Resize,this.handleCancel),this.windowListeners.add(R.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(R.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:r}=this.props,s=e.node.current;s&&function(e,r){if(void 0===r&&(r=vi),!e)return;let{top:s,left:i,bottom:n,right:a}=r(e);vo(e)&&(n<=0||a<=0||s>=window.innerHeight||i>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(s),r(x5)}handleKeyDown(e){if(xU(e)){let{active:r,context:s,options:i}=this.props,{keyboardCodes:n=vw,coordinateGetter:a=vS,scrollBehavior:o="smooth"}=i,{code:l}=e;if(n.end.includes(l))return void this.handleEnd(e);if(n.cancel.includes(l))return void this.handleCancel(e);let{collisionRect:c}=s.current,d=c?{x:c.left,y:c.top}:x5;this.referenceCoordinates||(this.referenceCoordinates=d);let u=a(e,{active:r,context:s.current,currentCoordinates:d});if(u){let r=xH(u,d),i={x:0,y:0},{scrollableAncestors:n}=s.current;for(let s of n){let n=e.code,{isTop:a,isRight:l,isLeft:c,isBottom:d,maxScroll:h,minScroll:f}=vf(s),p=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:r}=window;return{top:0,left:0,right:e,bottom:r,width:e,height:r}}let{top:r,left:s,right:i,bottom:n}=e.getBoundingClientRect();return{top:r,left:s,right:i,bottom:n,width:e.clientWidth,height:e.clientHeight}}(s),m={x:Math.min(n===A.Right?p.right-p.width/2:p.right,Math.max(n===A.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(n===A.Down?p.bottom-p.height/2:p.bottom,Math.max(n===A.Down?p.top:p.top+p.height/2,u.y))},g=n===A.Right&&!l||n===A.Left&&!c,x=n===A.Down&&!d||n===A.Up&&!a;if(g&&m.x!==u.x){let e=s.scrollLeft+r.x,a=n===A.Right&&e<=h.x||n===A.Left&&e>=f.x;if(a&&!r.y)return void s.scrollTo({left:e,behavior:o});a?i.x=s.scrollLeft-e:i.x=n===A.Right?s.scrollLeft-h.x:s.scrollLeft-f.x,i.x&&s.scrollBy({left:-i.x,behavior:o});break}if(x&&m.y!==u.y){let e=s.scrollTop+r.y,a=n===A.Down&&e<=h.y||n===A.Up&&e>=f.y;if(a&&!r.x)return void s.scrollTo({top:e,behavior:o});a?i.y=s.scrollTop-e:i.y=n===A.Down?s.scrollTop-h.y:s.scrollTop-f.y,i.y&&s.scrollBy({top:-i.y,behavior:o});break}}this.handleMove(e,xW(xH(u,this.referenceCoordinates),i))}}}handleMove(e,r){let{onMove:s}=this.props;e.preventDefault(),s(r)}handleEnd(e){let{onEnd:r}=this.props;e.preventDefault(),this.detach(),r()}handleCancel(e){let{onCancel:r}=this.props;e.preventDefault(),this.detach(),r()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function vj(e){return!!(e&&"distance"in e)}function vk(e){return!!(e&&"delay"in e)}vC.activators=[{eventName:"onKeyDown",handler:(e,r,s)=>{let{keyboardCodes:i=vw,onActivation:n}=r,{active:a}=s,{code:o}=e.nativeEvent;if(i.start.includes(o)){let r=a.activatorNode.current;return(!r||e.target===r)&&(e.preventDefault(),null==n||n({event:e.nativeEvent}),!0)}return!1}}];class vN{constructor(e,r,s){var i;void 0===s&&(s=function(e){let{EventTarget:r}=xE(e);return e instanceof r?e:xM(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=r;const{event:n}=e,{target:a}=n;this.props=e,this.events=r,this.document=xM(a),this.documentListeners=new vv(this.document),this.listeners=new vv(s),this.windowListeners=new vv(xE(a)),this.initialCoordinates=null!=(i=xK(n))?i:x5,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:r,bypassActivationConstraint:s}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(R.Resize,this.handleCancel),this.windowListeners.add(R.DragStart,vy),this.windowListeners.add(R.VisibilityChange,this.handleCancel),this.windowListeners.add(R.ContextMenu,vy),this.documentListeners.add(R.Keydown,this.handleKeydown),r){if(null!=s&&s({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(vk(r)){this.timeoutId=setTimeout(this.handleStart,r.delay),this.handlePending(r);return}if(vj(r))return void this.handlePending(r)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,r){let{active:s,onPending:i}=this.props;i(s,e,this.initialCoordinates,r)}handleStart(){let{initialCoordinates:e}=this,{onStart:r}=this.props;e&&(this.activated=!0,this.documentListeners.add(R.Click,vb,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(R.SelectionChange,this.removeTextSelection),r(e))}handleMove(e){var r;let{activated:s,initialCoordinates:i,props:n}=this,{onMove:a,options:{activationConstraint:o}}=n;if(!i)return;let l=null!=(r=xK(e))?r:x5,c=xH(i,l);if(!s&&o){if(vj(o)){if(null!=o.tolerance&&v_(c,o.tolerance))return this.handleCancel();if(v_(c,o.distance))return this.handleStart()}return vk(o)&&v_(c,o.tolerance)?this.handleCancel():void this.handlePending(o,c)}e.cancelable&&e.preventDefault(),a(l)}handleEnd(){let{onAbort:e,onEnd:r}=this.props;this.detach(),this.activated||e(this.props.active),r()}handleCancel(){let{onAbort:e,onCancel:r}=this.props;this.detach(),this.activated||e(this.props.active),r()}handleKeydown(e){e.code===A.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let vE={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class vD extends vN{constructor(e){const{event:r}=e;super(e,vE,xM(r.target))}}vD.activators=[{eventName:"onPointerDown",handler:(e,r)=>{let{nativeEvent:s}=e,{onActivation:i}=r;return!!s.isPrimary&&0===s.button&&(null==i||i({event:s}),!0)}}];(S=M||(M={}))[S.RightClick=2]="RightClick";(C=F||(F={}))[C.Pointer=0]="Pointer",C[C.DraggableRect=1]="DraggableRect",(j=T||(T={}))[j.TreeOrder=0]="TreeOrder",j[j.ReversedTreeOrder=1]="ReversedTreeOrder";let vR={x:{[D.Backward]:!1,[D.Forward]:!1},y:{[D.Backward]:!1,[D.Forward]:!1}};(k=P||(P={}))[k.Always=0]="Always",k[k.BeforeDragging=1]="BeforeDragging",k[k.WhileDragging=2]="WhileDragging",(B||(B={})).Optimized="optimized";let vA=new Map;function vM(e,r){return xB(s=>e?s||("function"==typeof r?r(e):e):null,[r,e])}function vF(e){let{callback:r,disabled:s}=e,i=xT(r),n=(0,$.useMemo)(()=>{if(s||"undefined"==typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(i)},[s]);return(0,$.useEffect)(()=>()=>null==n?void 0:n.disconnect(),[n]),n}function vT(e){return new vx(vi(e),e)}function vP(e,r,s){void 0===r&&(r=vT);let[i,n]=(0,$.useState)(null);function a(){n(i=>{if(!e)return null;if(!1===e.isConnected){var n;return null!=(n=null!=i?i:s)?n:null}let a=r(e);return JSON.stringify(i)===JSON.stringify(a)?i:a})}let o=function(e){let{callback:r,disabled:s}=e,i=xT(r),n=(0,$.useMemo)(()=>{if(s||"undefined"==typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(i)},[i,s]);return(0,$.useEffect)(()=>()=>null==n?void 0:n.disconnect(),[n]),n}({callback(r){if(e)for(let s of r){let{type:r,target:i}=s;if("childList"===r&&i instanceof HTMLElement&&i.contains(e)){a();break}}}}),l=vF({callback:a});return xF(()=>{a(),e?(null==l||l.observe(e),null==o||o.observe(document.body,{childList:!0,subtree:!0})):(null==l||l.disconnect(),null==o||o.disconnect())},[e]),i}let vB=[];function vL(e,r){void 0===r&&(r=[]);let s=(0,$.useRef)(null);return(0,$.useEffect)(()=>{s.current=null},r),(0,$.useEffect)(()=>{let r=e!==x5;r&&!s.current&&(s.current=e),!r&&s.current&&(s.current=null)},[e]),s.current?xH(e,s.current):x5}function vI(e){return(0,$.useMemo)(()=>{let r,s;return e?(r=e.innerWidth,{top:0,left:0,right:r,bottom:s=e.innerHeight,width:r,height:s}):null},[e])}let vO=[],vz=[{sensor:vD,options:{}},{sensor:vC,options:{}}],v$={current:{}},vW={draggable:{measure:vn},droppable:{measure:vn,strategy:P.WhileDragging,frequency:B.Optimized},dragOverlay:{measure:vi}};class vH extends Map{get(e){var r;return null!=e&&null!=(r=super.get(e))?r:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:r}=e;return!r})}getNodeFor(e){var r,s;return null!=(r=null==(s=this.get(e))?void 0:s.node.current)?r:void 0}}let vU={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new vH,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:x1},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:vW,measureDroppableContainers:x1,windowRect:null,measuringScheduled:!1},vK={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:x1,draggableNodes:new Map,over:null,measureDroppableContainers:x1},vq=(0,$.createContext)(vK),vV=(0,$.createContext)(vU);function vY(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new vH}}}function vG(e,r){switch(r.type){case E.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:r.initialCoordinates,active:r.active}};case E.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:r.coordinates.x-e.draggable.initialCoordinates.x,y:r.coordinates.y-e.draggable.initialCoordinates.y}}};case E.DragEnd:case E.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case E.RegisterDroppable:{let{element:s}=r,{id:i}=s,n=new vH(e.droppable.containers);return n.set(i,s),{...e,droppable:{...e.droppable,containers:n}}}case E.SetDroppableDisabled:{let{id:s,key:i,disabled:n}=r,a=e.droppable.containers.get(s);if(!a||i!==a.key)return e;let o=new vH(e.droppable.containers);return o.set(s,{...a,disabled:n}),{...e,droppable:{...e.droppable,containers:o}}}case E.UnregisterDroppable:{let{id:s,key:i}=r,n=e.droppable.containers.get(s);if(!n||i!==n.key)return e;let a=new vH(e.droppable.containers);return a.delete(s),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function vX(e){let{disabled:r}=e,{active:s,activatorEvent:i,draggableNodes:n}=(0,$.useContext)(vq),a=xI(i),o=xI(null==s?void 0:s.id);return(0,$.useEffect)(()=>{if(!r&&!i&&a&&null!=o){if(!xU(a)||document.activeElement===a.target)return;let e=n.get(o);if(!e)return;let{activatorNode:r,node:s}=e;(r.current||s.current)&&requestAnimationFrame(()=>{for(let e of[r.current,s.current]){if(!e)continue;let r=e.matches(xV)?e:e.querySelector(xV);if(r){r.focus();break}}})}},[i,r,n,o,a]),null}let vJ=(0,$.createContext)({...x5,scaleX:1,scaleY:1});(N=L||(L={}))[N.Uninitialized=0]="Uninitialized",N[N.Initializing=1]="Initializing",N[N.Initialized=2]="Initialized";let vZ=(0,$.memo)(function(e){var r,s,i,n,a,o,l,c;let d,u,h,f,p,m,g,x,{id:v,accessibility:_,autoScroll:y=!0,children:b,sensors:w=vz,collisionDetection:S=ve,measuring:C,modifiers:j,...k}=e,[N,R]=(0,$.useReducer)(vG,void 0,vY),[A,M]=function(){let[e]=(0,$.useState)(()=>new Set),r=(0,$.useCallback)(r=>(e.add(r),()=>e.delete(r)),[e]);return[(0,$.useCallback)(r=>{let{type:s,event:i}=r;e.forEach(e=>{var r;return null==(r=e[s])?void 0:r.call(e,i)})},[e]),r]}(),[B,I]=(0,$.useState)(L.Uninitialized),O=B===L.Initialized,{draggable:{active:z,nodes:W,translate:H},droppable:{containers:U}}=N,K=null!=z?W.get(z):null,q=(0,$.useRef)({initial:null,translated:null}),V=(0,$.useMemo)(()=>{var e;return null!=z?{id:z,data:null!=(e=null==K?void 0:K.data)?e:v$,rect:q}:null},[z,K]),Y=(0,$.useRef)(null),[G,X]=(0,$.useState)(null),[J,Z]=(0,$.useState)(null),Q=xP(k,Object.values(k)),et=xz("DndDescribedBy",v),er=(0,$.useMemo)(()=>U.getEnabled(),[U]),es=(0,$.useMemo)(()=>({draggable:{...vW.draggable,...null==C?void 0:C.draggable},droppable:{...vW.droppable,...null==C?void 0:C.droppable},dragOverlay:{...vW.dragOverlay,...null==C?void 0:C.dragOverlay}}),[null==C?void 0:C.draggable,null==C?void 0:C.droppable,null==C?void 0:C.dragOverlay]),{droppableRects:ei,measureDroppableContainers:en,measuringScheduled:ea}=function(e,r){let{dragging:s,dependencies:i,config:n}=r,[a,o]=(0,$.useState)(null),{frequency:l,measure:c,strategy:d}=n,u=(0,$.useRef)(e),h=function(){switch(d){case P.Always:return!1;case P.BeforeDragging:return s;default:return!s}}(),f=xP(h),p=(0,$.useCallback)(function(e){void 0===e&&(e=[]),f.current||o(r=>null===r?e:r.concat(e.filter(e=>!r.includes(e))))},[f]),m=(0,$.useRef)(null),g=xB(r=>{if(h&&!s)return vA;if(!r||r===vA||u.current!==e||null!=a){let r=new Map;for(let s of e){if(!s)continue;if(a&&a.length>0&&!a.includes(s.id)&&s.rect.current){r.set(s.id,s.rect.current);continue}let e=s.node.current,i=e?new vx(c(e),e):null;s.rect.current=i,i&&r.set(s.id,i)}return r}return r},[e,a,s,h,c]);return(0,$.useEffect)(()=>{u.current=e},[e]),(0,$.useEffect)(()=>{h||p()},[s,h]),(0,$.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,$.useEffect)(()=>{h||"number"!=typeof l||null!==m.current||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,h,p,...i]),{droppableRects:g,measureDroppableContainers:p,measuringScheduled:null!=a}}(er,{dragging:O,dependencies:[H.x,H.y],config:es.droppable}),eo=xB(e=>{var r;return null==z?null:null!=(r=null!=p?p:e)?r:null},[p=(f=null!=z?W.get(z):void 0)?f.node.current:null,z]),el=(0,$.useMemo)(()=>J?xK(J):null,[J]),ec=(d=(null==G?void 0:G.autoScrollEnabled)===!1,u="object"==typeof y?!1===y.enabled:!1===y,h=O&&!d&&!u,"object"==typeof y?{...y,enabled:h}:{enabled:h}),ed=vM(eo,es.draggable.measure);!function(e){let{activeNode:r,measure:s,initialRect:i,config:n=!0}=e,a=(0,$.useRef)(!1),{x:o,y:l}="boolean"==typeof n?{x:n,y:n}:n;xF(()=>{if(!o&&!l||!r){a.current=!1;return}if(a.current||!i)return;let e=null==r?void 0:r.node.current;if(!e||!1===e.isConnected)return;let n=vt(s(e),i);if(o||(n.x=0),l||(n.y=0),a.current=!0,Math.abs(n.x)>0||Math.abs(n.y)>0){let r=vo(e);r&&r.scrollBy({top:n.y,left:n.x})}},[r,o,l,i,s])}({activeNode:null!=z?W.get(z):null,config:ec.layoutShiftCompensation,initialRect:ed,measure:es.draggable.measure});let eu=vP(eo,es.draggable.measure,ed),eh=vP(eo?eo.parentElement:null),ef=(0,$.useRef)({activatorEvent:null,active:null,activeNode:eo,collisionRect:null,collisions:null,droppableRects:ei,draggableNodes:W,draggingNode:null,draggingNodeRect:null,droppableContainers:U,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ep=U.getNodeFor(null==(r=ef.current.over)?void 0:r.id),em=function(e){let{measure:r}=e,[s,i]=(0,$.useState)(null),n=vF({callback:(0,$.useCallback)(e=>{for(let{target:s}of e)if(xR(s)){i(e=>{let i=r(s);return e?{...e,width:i.width,height:i.height}:i});break}},[r])}),[a,o]=xL((0,$.useCallback)(e=>{let s=function(e){if(!e)return null;if(e.children.length>1)return e;let r=e.children[0];return xR(r)?r:e}(e);null==n||n.disconnect(),s&&(null==n||n.observe(s)),i(s?r(s):null)},[r,n]));return(0,$.useMemo)(()=>({nodeRef:a,rect:s,setRef:o}),[s,a,o])}({measure:es.dragOverlay.measure}),eg=null!=(s=em.nodeRef.current)?s:eo,ex=O?null!=(i=em.rect)?i:eu:null,ev=!!(em.nodeRef.current&&em.rect),e_=(m=vM(a=ev?null:eu),vt(a,m)),ey=vI(eg?xE(eg):null),eb=(o=O?null!=ep?ep:eo:null,g=(0,$.useRef)(o),x=xB(e=>o?e&&e!==vB&&o&&g.current&&o.parentNode===g.current.parentNode?e:va(o):vB,[o]),(0,$.useEffect)(()=>{g.current=o},[o]),x),ew=function(e,r){void 0===r&&(r=vi);let[s]=e,i=vI(s?xE(s):null),[n,a]=(0,$.useState)(vO);function o(){a(()=>e.length?e.map(e=>vh(e)?i:new vx(r(e),e)):vO)}let l=vF({callback:o});return xF(()=>{null==l||l.disconnect(),o(),e.forEach(e=>null==l?void 0:l.observe(e))},[e]),n}(eb),eS=function(e,r){let{transform:s,...i}=r;return null!=e&&e.length?e.reduce((e,r)=>r({transform:e,...i}),s):s}(j,{transform:{x:H.x-e_.x,y:H.y-e_.y,scaleX:1,scaleY:1},activatorEvent:J,active:V,activeNodeRect:eu,containerNodeRect:eh,draggingNodeRect:ex,over:ef.current.over,overlayNodeRect:em.rect,scrollableAncestors:eb,scrollableAncestorRects:ew,windowRect:ey}),eC=el?xW(el,H):null,ej=function(e){let[r,s]=(0,$.useState)(null),i=(0,$.useRef)(e),n=(0,$.useCallback)(e=>{let r=vl(e.target);r&&s(e=>e?(e.set(r,vu(r)),new Map(e)):null)},[]);return(0,$.useEffect)(()=>{let r=i.current;if(e!==r){a(r);let o=e.map(e=>{let r=vl(e);return r?(r.addEventListener("scroll",n,{passive:!0}),[r,vu(r)]):null}).filter(e=>null!=e);s(o.length?new Map(o):null),i.current=e}return()=>{a(e),a(r)};function a(e){e.forEach(e=>{let r=vl(e);null==r||r.removeEventListener("scroll",n)})}},[n,e]),(0,$.useMemo)(()=>e.length?r?Array.from(r.values()).reduce((e,r)=>xW(e,r),x5):vm(e):x5,[e,r])}(eb),ek=vL(ej),eN=vL(ej,[eu]),eE=xW(eS,ek),eD=ex?vr(ex,eS):null,eR=V&&eD?S({active:V,collisionRect:eD,droppableRects:ei,droppableContainers:er,pointerCoordinates:eC}):null,eA=x7(eR,"id"),[eM,eF]=(0,$.useState)(null),eT=(l=ev?eS:xW(eS,eN),c=null!=(n=null==eM?void 0:eM.rect)?n:null,{...l,scaleX:c&&eu?c.width/eu.width:1,scaleY:c&&eu?c.height/eu.height:1}),eP=(0,$.useRef)(null),eB=(0,$.useCallback)((e,r)=>{let{sensor:s,options:i}=r;if(null==Y.current)return;let n=W.get(Y.current);if(!n)return;let a=e.nativeEvent,o=new s({active:Y.current,activeNode:n,event:a,options:i,context:ef,onAbort(e){if(!W.get(e))return;let{onDragAbort:r}=Q.current,s={id:e};null==r||r(s),A({type:"onDragAbort",event:s})},onPending(e,r,s,i){if(!W.get(e))return;let{onDragPending:n}=Q.current,a={id:e,constraint:r,initialCoordinates:s,offset:i};null==n||n(a),A({type:"onDragPending",event:a})},onStart(e){let r=Y.current;if(null==r)return;let s=W.get(r);if(!s)return;let{onDragStart:i}=Q.current,n={activatorEvent:a,active:{id:r,data:s.data,rect:q}};(0,ee.unstable_batchedUpdates)(()=>{null==i||i(n),I(L.Initializing),R({type:E.DragStart,initialCoordinates:e,active:r}),A({type:"onDragStart",event:n}),X(eP.current),Z(a)})},onMove(e){R({type:E.DragMove,coordinates:e})},onEnd:l(E.DragEnd),onCancel:l(E.DragCancel)});function l(e){return async function(){let{active:r,collisions:s,over:i,scrollAdjustedTranslate:n}=ef.current,o=null;if(r&&n){let{cancelDrop:l}=Q.current;o={activatorEvent:a,active:r,collisions:s,delta:n,over:i},e===E.DragEnd&&"function"==typeof l&&await Promise.resolve(l(o))&&(e=E.DragCancel)}Y.current=null,(0,ee.unstable_batchedUpdates)(()=>{R({type:e}),I(L.Uninitialized),eF(null),X(null),Z(null),eP.current=null;let r=e===E.DragEnd?"onDragEnd":"onDragCancel";if(o){let e=Q.current[r];null==e||e(o),A({type:r,event:o})}})}}eP.current=o},[W]),eL=(0,$.useCallback)((e,r)=>(s,i)=>{let n=s.nativeEvent,a=W.get(i);null!==Y.current||!a||n.dndKit||n.defaultPrevented||!0===e(s,r.options,{active:a})&&(n.dndKit={capturedBy:r.sensor},Y.current=i,eB(s,r))},[W,eB]),eI=(0,$.useMemo)(()=>w.reduce((e,r)=>{let{sensor:s}=r;return[...e,...s.activators.map(e=>({eventName:e.eventName,handler:eL(e.handler,r)}))]},[]),[w,eL]);(0,$.useEffect)(()=>{if(!xj)return;let e=w.map(e=>{let{sensor:r}=e;return null==r.setup?void 0:r.setup()});return()=>{for(let r of e)null==r||r()}},w.map(e=>{let{sensor:r}=e;return r})),xF(()=>{eu&&B===L.Initializing&&I(L.Initialized)},[eu,B]),(0,$.useEffect)(()=>{let{onDragMove:e}=Q.current,{active:r,activatorEvent:s,collisions:i,over:n}=ef.current;if(!r||!s)return;let a={active:r,activatorEvent:s,collisions:i,delta:{x:eE.x,y:eE.y},over:n};(0,ee.unstable_batchedUpdates)(()=>{null==e||e(a),A({type:"onDragMove",event:a})})},[eE.x,eE.y]),(0,$.useEffect)(()=>{let{active:e,activatorEvent:r,collisions:s,droppableContainers:i,scrollAdjustedTranslate:n}=ef.current;if(!e||null==Y.current||!r||!n)return;let{onDragOver:a}=Q.current,o=i.get(eA),l=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:r,collisions:s,delta:{x:n.x,y:n.y},over:l};(0,ee.unstable_batchedUpdates)(()=>{eF(l),null==a||a(c),A({type:"onDragOver",event:c})})},[eA]),xF(()=>{ef.current={activatorEvent:J,active:V,activeNode:eo,collisionRect:eD,collisions:eR,droppableRects:ei,draggableNodes:W,draggingNode:eg,draggingNodeRect:ex,droppableContainers:U,over:eM,scrollableAncestors:eb,scrollAdjustedTranslate:eE},q.current={initial:ex,translated:eD}},[V,eo,eR,eD,W,eg,ex,ei,U,eM,eb,eE]),function(e){let r,{acceleration:s,activator:i=F.Pointer,canScroll:n,draggingRect:a,enabled:o,interval:l=5,order:c=T.TreeOrder,pointerCoordinates:d,scrollableAncestors:u,scrollableAncestorRects:h,delta:f,threshold:p}=e,m=function(e){let{delta:r,disabled:s}=e,i=xI(r);return xB(e=>{if(s||!i||!e)return vR;let n={x:Math.sign(r.x-i.x),y:Math.sign(r.y-i.y)};return{x:{[D.Backward]:e.x[D.Backward]||-1===n.x,[D.Forward]:e.x[D.Forward]||1===n.x},y:{[D.Backward]:e.y[D.Backward]||-1===n.y,[D.Forward]:e.y[D.Forward]||1===n.y}}},[s,r,i])}({delta:f,disabled:!o}),[g,x]=(r=(0,$.useRef)(null),[(0,$.useCallback)((e,s)=>{r.current=setInterval(e,s)},[]),(0,$.useCallback)(()=>{null!==r.current&&(clearInterval(r.current),r.current=null)},[])]),v=(0,$.useRef)({x:0,y:0}),_=(0,$.useRef)({x:0,y:0}),y=(0,$.useMemo)(()=>{switch(i){case F.Pointer:return d?{top:d.y,bottom:d.y,left:d.x,right:d.x}:null;case F.DraggableRect:return a}},[i,a,d]),b=(0,$.useRef)(null),w=(0,$.useCallback)(()=>{let e=b.current;if(!e)return;let r=v.current.x*_.current.x,s=v.current.y*_.current.y;e.scrollBy(r,s)},[]),S=(0,$.useMemo)(()=>c===T.TreeOrder?[...u].reverse():u,[c,u]);(0,$.useEffect)(()=>{if(!o||!u.length||!y)return void x();for(let e of S){if((null==n?void 0:n(e))===!1)continue;let r=h[u.indexOf(e)];if(!r)continue;let{direction:i,speed:a}=function(e,r,s,i,n){let{top:a,left:o,right:l,bottom:c}=s;void 0===i&&(i=10),void 0===n&&(n=vp);let{isTop:d,isBottom:u,isLeft:h,isRight:f}=vf(e),p={x:0,y:0},m={x:0,y:0},g={height:r.height*n.y,width:r.width*n.x};return!d&&a<=r.top+g.height?(p.y=D.Backward,m.y=i*Math.abs((r.top+g.height-a)/g.height)):!u&&c>=r.bottom-g.height&&(p.y=D.Forward,m.y=i*Math.abs((r.bottom-g.height-c)/g.height)),!f&&l>=r.right-g.width?(p.x=D.Forward,m.x=i*Math.abs((r.right-g.width-l)/g.width)):!h&&o<=r.left+g.width&&(p.x=D.Backward,m.x=i*Math.abs((r.left+g.width-o)/g.width)),{direction:p,speed:m}}(e,r,y,s,p);for(let e of["x","y"])m[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){x(),b.current=e,g(w,l),v.current=a,_.current=i;return}}v.current={x:0,y:0},_.current={x:0,y:0},x()},[s,w,n,x,o,l,JSON.stringify(y),JSON.stringify(m),g,u,S,h,JSON.stringify(p)])}({...ec,delta:H,draggingRect:eD,pointerCoordinates:eC,scrollableAncestors:eb,scrollableAncestorRects:ew});let eO=(0,$.useMemo)(()=>({active:V,activeNode:eo,activeNodeRect:eu,activatorEvent:J,collisions:eR,containerNodeRect:eh,dragOverlay:em,draggableNodes:W,droppableContainers:U,droppableRects:ei,over:eM,measureDroppableContainers:en,scrollableAncestors:eb,scrollableAncestorRects:ew,measuringConfiguration:es,measuringScheduled:ea,windowRect:ey}),[V,eo,eu,J,eR,eh,em,W,U,ei,eM,en,eb,ew,es,ea,ey]),ez=(0,$.useMemo)(()=>({activatorEvent:J,activators:eI,active:V,activeNodeRect:eu,ariaDescribedById:{draggable:et},dispatch:R,draggableNodes:W,over:eM,measureDroppableContainers:en}),[J,eI,V,eu,R,et,W,eM,en]);return $.default.createElement(xJ.Provider,{value:M},$.default.createElement(vq.Provider,{value:ez},$.default.createElement(vV.Provider,{value:eO},$.default.createElement(vJ.Provider,{value:eT},b)),$.default.createElement(vX,{disabled:(null==_?void 0:_.restoreFocus)===!1})),$.default.createElement(x0,{..._,hiddenTextDescribedById:et}))}),vQ=(0,$.createContext)(null),v0="button",v1={timeout:25},v2={position:"fixed",touchAction:"none"},v5=e=>xU(e)?"transform 250ms ease":void 0;function v3(e,r,s){let i=e.slice();return i.splice(s<0?i.length+s:s,0,i.splice(r,1)[0]),i}function v4(e){return null!==e&&e>=0}(e,r)=>{let{as:s,activatorEvent:i,adjustScale:n,children:a,className:o,rect:l,style:c,transform:d,transition:u=v5}=e;if(!l)return null;let h=n?d:{...d,scaleX:1,scaleY:1},f={...v2,width:l.width,height:l.height,top:l.top,left:l.left,transform:xq.Transform.toString(h),transformOrigin:n&&i?function(e,r){let s=xK(e);if(!s)return"0 0";let i={x:(s.x-r.left)/r.width*100,y:(s.y-r.top)/r.height*100};return i.x+"% "+i.y+"%"}(i,l):void 0,transition:"function"==typeof u?u(i):u,...c};return $.default.createElement(s,{className:o,style:f,ref:r},a)},x={styles:{active:{opacity:"0"}}};let v6=e=>{let{rects:r,activeIndex:s,overIndex:i,index:n}=e,a=v3(r,i,s),o=r[n],l=a[n];return l&&o?{x:l.left-o.left,y:l.top-o.top,scaleX:l.width/o.width,scaleY:l.height/o.height}:null},v8={scaleX:1,scaleY:1},v7=e=>{var r,s,i,n;let a,o,l,{activeIndex:c,activeNodeRect:d,index:u,rects:h,overIndex:f}=e,p=null!=(r=h[c])?r:d;if(!p)return null;if(u===c){let e=h[f];return e?{x:0,y:c<f?e.top+e.height-(p.top+p.height):e.top-p.top,...v8}:null}let m=(s=h,i=u,n=c,a=s[i],o=s[i-1],l=s[i+1],a?n<i?o?a.top-(o.top+o.height):l?l.top-(a.top+a.height):0:l?l.top-(a.top+a.height):o?a.top-(o.top+o.height):0:0);return u>c&&u<=f?{x:0,y:-p.height-m,...v8}:u<c&&u>=f?{x:0,y:p.height+m,...v8}:{x:0,y:0,...v8}},v9="Sortable",_e=$.default.createContext({activeIndex:-1,containerId:v9,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:v6,disabled:{draggable:!1,droppable:!1}});function _t(e){let{children:r,id:s,items:i,strategy:n=v6,disabled:a=!1}=e,{active:o,dragOverlay:l,droppableRects:c,over:d,measureDroppableContainers:u}=(0,$.useContext)(vV),h=xz(v9,s),f=null!==l.rect,p=(0,$.useMemo)(()=>i.map(e=>"object"==typeof e&&"id"in e?e.id:e),[i]),m=null!=o,g=o?p.indexOf(o.id):-1,x=d?p.indexOf(d.id):-1,v=(0,$.useRef)(p),_=!function(e,r){if(e===r)return!0;if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==r[s])return!1;return!0}(p,v.current),y=-1!==x&&-1===g||_,b="boolean"==typeof a?{draggable:a,droppable:a}:a;xF(()=>{_&&m&&u(p)},[_,p,m,u]),(0,$.useEffect)(()=>{v.current=p},[p]);let w=(0,$.useMemo)(()=>({activeIndex:g,containerId:h,disabled:b,disableTransforms:y,items:p,overIndex:x,useDragOverlay:f,sortedRects:p.reduce((e,r,s)=>{let i=c.get(r);return i&&(e[s]=i),e},Array(p.length)),strategy:n}),[g,h,b.draggable,b.droppable,y,p,x,c,f,n]);return $.default.createElement(_e.Provider,{value:w},r)}let _r=e=>{let{id:r,items:s,activeIndex:i,overIndex:n}=e;return v3(s,i,n).indexOf(r)},_s=e=>{let{containerId:r,isSorting:s,wasDragging:i,index:n,items:a,newIndex:o,previousItems:l,previousContainerId:c,transition:d}=e;return!!d&&!!i&&(l===a||n!==o)&&(!!s||o!==n&&r===c)},_i={duration:200,easing:"ease"},_n="transform",_a=xq.Transition.toString({property:_n,duration:0,easing:"linear"}),_o={roleDescription:"sortable"};function _l(e){if(!e)return!1;let r=e.data.current;return!!r&&"sortable"in r&&"object"==typeof r.sortable&&"containerId"in r.sortable&&"items"in r.sortable&&"index"in r.sortable}let _c=[A.Down,A.Right,A.Up,A.Left],_d=(e,r)=>{let{context:{active:s,collisionRect:i,droppableRects:n,droppableContainers:a,over:o,scrollableAncestors:l}}=r;if(_c.includes(e.code)){if(e.preventDefault(),!s||!i)return;let r=[];a.getEnabled().forEach(s=>{if(!s||null!=s&&s.disabled)return;let a=n.get(s.id);if(a)switch(e.code){case A.Down:i.top<a.top&&r.push(s);break;case A.Up:i.top>a.top&&r.push(s);break;case A.Left:i.left>a.left&&r.push(s);break;case A.Right:i.left<a.left&&r.push(s)}});let u=(e=>{let{collisionRect:r,droppableRects:s,droppableContainers:i}=e,n=x8(r),a=[];for(let e of i){let{id:r}=e,i=s.get(r);if(i){let s=x8(i),o=Number((n.reduce((e,r,i)=>e+x3(s[i],r),0)/4).toFixed(4));a.push({id:r,data:{droppableContainer:e,value:o}})}}return a.sort(x4)})({active:s,collisionRect:i,droppableRects:n,droppableContainers:r,pointerCoordinates:null}),h=x7(u,"id");if(h===(null==o?void 0:o.id)&&u.length>1&&(h=u[1].id),null!=h){let e=a.get(s.id),r=a.get(h),o=r?n.get(r.id):null,u=null==r?void 0:r.node.current;if(u&&o&&e&&r){var c,d;let s=va(u).some((e,r)=>l[r]!==e),n=_u(e,r),a=(c=e,d=r,!!_l(c)&&!!_l(d)&&!!_u(c,d)&&c.data.current.sortable.index<d.data.current.sortable.index),h=s||!n?{x:0,y:0}:{x:a?i.width-o.width:0,y:a?i.height-o.height:0},f={x:o.left,y:o.top};return h.x&&h.y?f:xH(f,h)}}}};function _u(e,r){return!!_l(e)&&!!_l(r)&&e.data.current.sortable.containerId===r.data.current.sortable.containerId}function _h({executor:e,executorMode:r,isOpen:s,onOpenChange:i,onStart:n,onStop:a,onUpdate:o,onDelete:l,onProcessFinished:c}){let d,u,h,f,p,m,g,[x,v]=(0,$.useState)(!1),[_,y]=(0,$.useState)(e.currentProcessId??e.lastProcessId),b=(0,$.useRef)(!1),w=(0,$.useRef)(e.currentProcessId),{attributes:S,listeners:C,setNodeRef:j,transform:k,transition:N,isDragging:D}=function(e){var r,s,i,n;let{animateLayoutChanges:a=_s,attributes:o,disabled:l,data:c,getNewIndex:d=_r,id:u,strategy:h,resizeObserverConfig:f,transition:p=_i}=e,{items:m,containerId:g,activeIndex:x,disabled:v,disableTransforms:_,sortedRects:y,overIndex:b,useDragOverlay:w,strategy:S}=(0,$.useContext)(_e),C=(r=l,s=v,"boolean"==typeof r?{draggable:r,droppable:!1}:{draggable:null!=(i=null==r?void 0:r.draggable)?i:s.draggable,droppable:null!=(n=null==r?void 0:r.droppable)?n:s.droppable}),j=m.indexOf(u),k=(0,$.useMemo)(()=>({sortable:{containerId:g,index:j,items:m},...c}),[g,c,j,m]),N=(0,$.useMemo)(()=>m.slice(m.indexOf(u)),[m,u]),{rect:D,node:R,isOver:A,setNodeRef:M}=function(e){let{data:r,disabled:s=!1,id:i,resizeObserverConfig:n}=e,a=xz("Droppable"),{active:o,dispatch:l,over:c,measureDroppableContainers:d}=(0,$.useContext)(vq),u=(0,$.useRef)({disabled:s}),h=(0,$.useRef)(!1),f=(0,$.useRef)(null),p=(0,$.useRef)(null),{disabled:m,updateMeasurementsFor:g,timeout:x}={...v1,...n},v=xP(null!=g?g:i),_=vF({callback:(0,$.useCallback)(()=>{if(!h.current){h.current=!0;return}null!=p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{d(Array.isArray(v.current)?v.current:[v.current]),p.current=null},x)},[x]),disabled:m||!o}),[y,b]=xL((0,$.useCallback)((e,r)=>{_&&(r&&(_.unobserve(r),h.current=!1),e&&_.observe(e))},[_])),w=xP(r);return(0,$.useEffect)(()=>{_&&y.current&&(_.disconnect(),h.current=!1,_.observe(y.current))},[y,_]),(0,$.useEffect)(()=>(l({type:E.RegisterDroppable,element:{id:i,key:a,disabled:s,node:y,rect:f,data:w}}),()=>l({type:E.UnregisterDroppable,key:a,id:i})),[i]),(0,$.useEffect)(()=>{s!==u.current.disabled&&(l({type:E.SetDroppableDisabled,id:i,key:a,disabled:s}),u.current.disabled=s)},[i,a,s,l]),{active:o,rect:f,isOver:(null==c?void 0:c.id)===i,node:y,over:c,setNodeRef:b}}({id:u,data:k,disabled:C.droppable,resizeObserverConfig:{updateMeasurementsFor:N,...f}}),{active:F,activatorEvent:T,activeNodeRect:P,attributes:B,setNodeRef:L,listeners:I,isDragging:O,over:z,setActivatorNodeRef:W,transform:H}=function(e){let{id:r,data:s,disabled:i=!1,attributes:n}=e,a=xz("Draggable"),{activators:o,activatorEvent:l,active:c,activeNodeRect:d,ariaDescribedById:u,draggableNodes:h,over:f}=(0,$.useContext)(vq),{role:p=v0,roleDescription:m="draggable",tabIndex:g=0}=null!=n?n:{},x=(null==c?void 0:c.id)===r,v=(0,$.useContext)(x?vJ:vQ),[_,y]=xL(),[b,w]=xL(),S=(0,$.useMemo)(()=>o.reduce((e,s)=>{let{eventName:i,handler:n}=s;return e[i]=e=>{n(e,r)},e},{}),[o,r]),C=xP(s);return xF(()=>(h.set(r,{id:r,key:a,node:_,activatorNode:b,data:C}),()=>{let e=h.get(r);e&&e.key===a&&h.delete(r)}),[h,r]),{active:c,activatorEvent:l,activeNodeRect:d,attributes:(0,$.useMemo)(()=>({role:p,tabIndex:g,"aria-disabled":i,"aria-pressed":!!x&&p===v0||void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[i,p,g,x,m,u.draggable]),isDragging:x,listeners:i?void 0:S,node:_,over:f,setNodeRef:y,setActivatorNodeRef:w,transform:v}}({id:u,data:k,attributes:{..._o,...o},disabled:C.draggable}),U=function(){for(var e=arguments.length,r=Array(e),s=0;s<e;s++)r[s]=arguments[s];return(0,$.useMemo)(()=>e=>{r.forEach(r=>r(e))},r)}(M,L),K=!!F,q=K&&!_&&v4(x)&&v4(b),V=!w&&O,Y=V&&q?H:null,G=q?null!=Y?Y:(null!=h?h:S)({rects:y,activeNodeRect:P,activeIndex:x,overIndex:b,index:j}):null,X=v4(x)&&v4(b)?d({id:u,items:m,activeIndex:x,overIndex:b}):j,J=null==F?void 0:F.id,Z=(0,$.useRef)({activeId:J,items:m,newIndex:X,containerId:g}),Q=m!==Z.current.items,ee=a({active:F,containerId:g,isDragging:O,isSorting:K,id:u,index:j,items:m,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:p,wasDragging:null!=Z.current.activeId}),et=function(e){let{disabled:r,index:s,node:i,rect:n}=e,[a,o]=(0,$.useState)(null),l=(0,$.useRef)(s);return xF(()=>{if(!r&&s!==l.current&&i.current){let e=n.current;if(e){let r=vi(i.current,{ignoreTransform:!0}),s={x:e.left-r.left,y:e.top-r.top,scaleX:e.width/r.width,scaleY:e.height/r.height};(s.x||s.y)&&o(s)}}s!==l.current&&(l.current=s)},[r,s,i,n]),(0,$.useEffect)(()=>{a&&o(null)},[a]),a}({disabled:!ee,index:j,node:R,rect:D});return(0,$.useEffect)(()=>{K&&Z.current.newIndex!==X&&(Z.current.newIndex=X),g!==Z.current.containerId&&(Z.current.containerId=g),m!==Z.current.items&&(Z.current.items=m)},[K,X,g,m]),(0,$.useEffect)(()=>{if(J===Z.current.activeId)return;if(null!=J&&null==Z.current.activeId){Z.current.activeId=J;return}let e=setTimeout(()=>{Z.current.activeId=J},50);return()=>clearTimeout(e)},[J]),{active:F,activeIndex:x,attributes:B,data:k,rect:D,index:j,newIndex:X,items:m,isOver:A,isSorting:K,isDragging:O,listeners:I,node:R,overIndex:b,over:z,setNodeRef:U,setActivatorNodeRef:W,setDroppableNodeRef:M,setDraggableNodeRef:L,transform:null!=et?et:G,transition:et||Q&&Z.current.newIndex===j?_a:(!V||xU(T))&&p&&(K||ee)?xq.Transition.toString({...p,property:_n}):void 0}}({id:e.id}),R={transform:xq.Translate.toString(k),transition:N,zIndex:D?50:void 0,position:D?"relative":void 0,opacity:D?1:void 0},{logs:A,status:M,exitCode:F,isPty:T,replayingHistory:P,sendInput:B,sendResize:L}=(d=function(){let e=(0,$.useContext)(xS);if(!e)throw Error("useExecutorLogsStore must be used within ExecutorLogsProvider");return e}(),u=(0,$.useCallback)(e=>{if(!_)return()=>{};d.subscribeProcess(_);let r=d.onProcessChange(_,e);return()=>{r(),d.unsubscribeProcess(_)}},[_,r,d]),h=(0,$.useCallback)(()=>_?d.getProcessState(_):null,[_,d]),f=(0,$.useSyncExternalStore)(u,h,h),p=(0,$.useCallback)(()=>{},[]),m=(0,$.useCallback)(e=>{_&&d.sendInput(_,e)},[_,d]),g=(0,$.useCallback)((e,r)=>{_&&d.sendResize(_,e,r)},[_,d]),{logs:f?.logs??[],status:f?.status??"closed",exitCode:f?.exitCode??null,isPty:f?.isPty??!1,replayingHistory:f?.replayingHistory??!0,clearLogs:p,sendInput:m,sendResize:g});(0,$.useEffect)(()=>(console.log("[diag:mux] ExecutorItem MOUNT",e.id,"localProcessId=",_),()=>console.log("[diag:mux] ExecutorItem UNMOUNT",e.id)),[]),(0,$.useEffect)(()=>{console.log("[diag:mux] localProcessId →",_,"executor=",e.id)},[_,e.id]),(0,$.useEffect)(()=>{let r=w.current;w.current=e.currentProcessId,e.currentProcessId&&e.currentProcessId!==r&&(y(e.currentProcessId),b.current=!1,i(!0))},[e.currentProcessId,i]),(0,$.useEffect)(()=>{e.currentProcessId||e.lastProcessId&&y(r=>r??e.lastProcessId)},[e.currentProcessId,e.lastProcessId]),(0,$.useEffect)(()=>{"closed"!==M||null===F||b.current||(b.current=!0,console.log(`[diag:remote-stop] ${new Date().toISOString()} executor-item marking finished executorId=${e.id} processId=${_} exitCode=${F} — removing from runningProcesses (button → Start)`),c(_))},[M,F,_,c]);let I=async()=>{console.log(`[ExecutorItem] Starting executor ${e.id}`),b.current=!1;let r=await n();console.log(`[ExecutorItem] Got processId: ${r}`),r&&(y(r),i(!0))},O=async()=>{await a(_||void 0)},H=e.isRunning,U=e.isDisabled,K=e.lastStartedAt?new Date(e.lastStartedAt).toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"}):null;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(uE,{open:s,onOpenChange:i,children:(0,z.jsxs)("div",{ref:j,style:R,className:(0,ey.cn)("border rounded-lg",D&&"shadow-lg bg-background"),children:[(0,z.jsx)(uD,{asChild:!0,children:(0,z.jsxs)("div",{className:"group flex items-center justify-between p-3 cursor-pointer hover:bg-muted/50",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)("button",{type:"button",className:"cursor-grab touch-none text-muted-foreground hover:text-foreground",...S,...C,onClick:e=>e.stopPropagation(),children:(0,z.jsx)(uF,{className:"h-4 w-4"})}),s?(0,z.jsx)(sw,{className:"h-4 w-4"}):(0,z.jsx)(af,{className:"h-4 w-4"}),(0,z.jsx)("span",{className:(0,ey.cn)("font-medium",U&&"text-muted-foreground line-through"),children:e.name}),U?(0,z.jsxs)(sb,{variant:"outline",className:"text-muted-foreground border-muted-foreground/40 gap-1",children:[(0,z.jsx)(uT,{className:"h-3 w-3"}),"Disabled"]}):(0,z.jsx)(sb,{variant:H?"default":"secondary",className:(0,ey.cn)(H&&"bg-green-600 hover:bg-green-600"),children:H?"Running":null!==F?0===F?"Completed":"Failed":"Stopped"})]}),(0,z.jsxs)("div",{className:"flex items-center gap-2",onClick:e=>e.stopPropagation(),children:[K&&(0,z.jsxs)("span",{className:"text-xs text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity",title:new Date(e.lastStartedAt).toLocaleString(),children:["Last run: ",K]}),H?(0,z.jsxs)(W.Button,{size:"sm",variant:"destructive",onClick:O,className:"w-20 border border-destructive",children:[(0,z.jsx)(uA,{className:"h-3 w-3 mr-1"}),"Stop"]}):(0,z.jsxs)(W.Button,{size:"sm",onClick:I,disabled:U,title:U?"Executor is disabled":void 0,className:"w-20",children:[(0,z.jsx)(rh,{className:"h-3 w-3 mr-1"}),"Start"]}),(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)(W.Button,{size:"icon",variant:"ghost",className:"h-8 w-8",children:(0,z.jsx)(uM,{className:"h-4 w-4"})})}),(0,z.jsxs)(ag,{align:"end",children:[(0,z.jsxs)(ax,{onClick:()=>v(!0),children:[(0,z.jsx)(rg,{className:"h-4 w-4 mr-2"}),"Edit"]}),(0,z.jsx)(ax,{onClick:()=>o({target:r??"local",disabled:!U}),children:U?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(rC,{className:"h-4 w-4 mr-2"}),"Enable"]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(uT,{className:"h-4 w-4 mr-2"}),"Disable"]})}),(0,z.jsxs)(ax,{onClick:l,className:"text-destructive",children:[(0,z.jsx)(rc,{className:"h-4 w-4 mr-2"}),"Delete"]})]})]})]})]})}),(0,z.jsx)(uR,{children:(0,z.jsxs)("div",{className:"px-3 pb-3",children:[(0,z.jsx)("div",{className:"text-xs text-muted-foreground mb-2 font-mono",children:"prompt"===e.executor_type?`${e.prompt_provider??"claude"} → ${e.command}`:`$ ${e.command}`}),(0,z.jsx)(xv,{logs:A,isPty:T,onInput:B,onResize:L,muteInput:P,processId:_,executorId:e.id,target:r??"local",status:M,exitCode:F})]})})]})}),(0,z.jsx)(xb,{open:x,onOpenChange:v,executor:e,onSubmit:async e=>{await o(e)}})]})}let _f=(0,$.createContext)(null);function _p({projectId:e,children:r}){let s=sc(e,{withStatus:!0});return(0,z.jsx)(_f.Provider,{value:s,children:r})}function _m(){let e=(0,$.useContext)(_f);if(!e)throw Error("useProjectRemotesContext must be used within a ProjectRemotesProvider");return e}let _g=e=>{let{droppableContainers:r,pointerCoordinates:s}=e;if(!s)return(e=>{let{collisionRect:r,droppableRects:s,droppableContainers:i}=e,n=x9(r,r.left,r.top),a=[];for(let e of i){let{id:r}=e,i=s.get(r);if(i){let s=x3(x9(i),n);a.push({id:r,data:{droppableContainer:e,value:s}})}}return a.sort(x4)})(e);let i=[];for(let e of r){let r=e.rect.current;if(!r)continue;let n=r.top,a=r.top+52;s.x>=r.left&&s.x<=r.right&&s.y>=n&&s.y<=a&&i.push({id:e.id,data:{droppableContainer:e}})}if(i.length>0)return i;let n=null;for(let e of r){let r=e.rect.current;if(!r)continue;let i=r.top+26,a=r.left+r.width/2,o=Math.sqrt(Math.pow(s.x-a,2)+Math.pow(s.y-i,2));(!n||o<n.distance)&&(n={id:e.id,distance:o,data:{droppableContainer:e}})}return n?[{id:n.id,data:n.data}]:[]};function _x({projectId:e,selectedBranch:r,project:s,onExecutorModeChange:i}){let[n,a]=(0,$.useState)(!1),[o,l]=(0,$.useState)(new Set),{remotes:c}=_m(),d=[];for(let e of(s?.path&&d.push({id:"local",label:"Local",icon:aD}),c))d.push({id:e.remote_server_id,label:e.server_name,icon:sd(e)});let{activeGroup:u,loading:h,createGroup:f}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(null),[o,l]=(0,$.useState)(!0),c=r??"",d=(0,$.useCallback)(async()=>{if(!e){i([]),a(null),l(!1);return}try{let[r,s]=await Promise.all([rv.api.getExecutorGroups(e),rv.api.getExecutorGroupByBranch(e,c)]);i(r),a(s)}catch(e){console.error("Failed to fetch executor groups:",e)}finally{l(!1)}},[e,c]);(0,$.useEffect)(()=>{l(!0),d()},[d]);let u=(0,$.useCallback)(async r=>{if(!e)return null;try{let s=await rv.api.createExecutorGroup(e,{name:r,branch:c});return i(e=>[...e,s]),a(s),s}catch(e){return console.error("Failed to create executor group:",e),null}},[e,c]);return{groups:s,activeGroup:n,loading:o,createGroup:u,updateGroup:(0,$.useCallback)(async(e,r)=>{try{let s=await rv.api.updateExecutorGroup(e,r);return i(r=>r.map(r=>r.id===e?s:r)),a(r=>r?.id===e?s:r),s}catch(e){return console.error("Failed to update executor group:",e),null}},[]),deleteGroup:(0,$.useCallback)(async e=>{try{await rv.api.deleteExecutorGroup(e),i(r=>r.filter(r=>r.id!==e)),a(r=>r?.id===e?null:r)}catch(e){console.error("Failed to delete executor group:",e)}},[]),refetch:d}}(e,r),{executors:p,loading:m,createExecutor:g,updateExecutor:x,deleteExecutor:v,startExecutor:_,stopExecutor:y,markProcessFinished:b,reorderExecutors:w}=function(e,r,s){let[i,n]=(0,$.useState)([]),[a,o]=(0,$.useState)(new Map),[l,c]=(0,$.useState)(new Map),[d,u]=(0,$.useState)(!0),h=(0,$.useCallback)(async()=>{if(!e||!r){n([]),u(!1);return}try{let s=await rv.api.getExecutors(e,r);n(s)}catch(e){console.error("Failed to fetch executors:",e)}finally{u(!1)}},[e,r]),f=(0,$.useCallback)(async()=>{try{let e=await rv.api.getRunningProcesses();console.log(`[useExecutors] fetchRunningProcesses: ${e.length} running`,e.map(e=>`${e.executor_id}/${e.id}/${e.target??"local"}`));let{runningProcesses:r,lastStartedProcess:s}=function(e){let r=new Map,s=new Map;for(let i of e){let e={processId:i.id,target:i.target??"local"},n=r.get(i.executor_id);n?n.push(e):r.set(i.executor_id,[e]),s.set(i.executor_id,e)}return{runningProcesses:r,lastStartedProcess:s}}(e);o(r),c(e=>{let i=function(e,r){let s=new Map;for(let[i,n]of e)r.get(i)?.some(e=>e.processId===n.processId&&e.target===n.target)&&s.set(i,n);return s}(e,r);for(let[e,r]of s)i.set(e,r);return i})}catch(e){console.error("Failed to fetch running processes:",e)}},[]);(0,$.useEffect)(()=>{h()},[h]),(0,$.useEffect)(()=>{f()},[f]),(0,$.useEffect)(()=>{e&&f()},[e,f]),(0,$.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&f()};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[f]);let p=(0,$.useRef)(new Set);(0,$.useEffect)(()=>{p.current=new Set(i.map(e=>e.id))},[i]),(0,ok.useGlobalEventStream)(r=>{if(("executor:started"===r.type||"executor:stopped"===r.type)&&console.log(`[useExecutors] SSE received: ${r.type} executor=${r.executorId} process=${r.processId} target=${r.target??"local"} project=${r.projectId}`),!e||r.projectId!==e){("executor:started"===r.type||"executor:stopped"===r.type)&&console.log(`[useExecutors] SSE filtered: projectId mismatch (event=${r.projectId}, hook=${e})`);return}if(!p.current.has(r.executorId)){("executor:started"===r.type||"executor:stopped"===r.type)&&console.log(`[useExecutors] SSE filtered: executorId ${r.executorId} not in current group (known: ${Array.from(p.current).join(",")})`);return}"executor:started"===r.type?(console.log("[useExecutors] Processing executor:started, adding to runningProcesses"),o(e=>{let s=e.get(r.executorId)??[];if(s.some(e=>e.processId===r.processId))return e;let i=new Map(e);return i.set(r.executorId,[...s,{processId:r.processId,target:r.target??"local"}]),i}),c(e=>{let s=new Map(e);return s.set(r.executorId,{processId:r.processId,target:r.target??"local"}),s}),n(e=>e.map(e=>{if(e.id!==r.executorId)return e;let s=r.target??"local";return{...e,last_runs:{...e.last_runs??{},[s]:{started_at:new Date().toISOString(),process_id:r.processId}}}}))):"executor:stopped"===r.type&&(console.log("[useExecutors] Processing executor:stopped, removing from runningProcesses"),console.log(`[diag:remote-stop] ${new Date().toISOString()} SSE executor:stopped executor=${r.executorId} process=${r.processId} target=${r.target??"local"} — flips button via SSE (NOT the mux finished path)`),o(e=>{let s=e.get(r.executorId);if(!s)return e;let i=s.filter(e=>e.processId!==r.processId),n=new Map(e);return 0===i.length?n.delete(r.executorId):n.set(r.executorId,i),n}),c(e=>{let s=e.get(r.executorId);if(!s||s.processId!==r.processId)return e;let i=new Map(e);return i.delete(r.executorId),i}))});let m=(0,$.useCallback)(async s=>{if(!e||!r)return null;try{let i=await rv.api.createExecutor(e,{...s,group_id:r});return n(e=>[...e,i]),i}catch(e){return console.error("Failed to create executor:",e),null}},[e,r]),g=(0,$.useCallback)(async(e,r)=>{try{let s=await rv.api.updateExecutor(e,r);return n(r=>r.map(r=>r.id===e?s:r)),s}catch(e){return console.error("Failed to update executor:",e),xg.toast.error("Failed to update executor",{description:e instanceof Error?e.message:void 0}),null}},[]),x=(0,$.useCallback)(async e=>{try{await rv.api.deleteExecutor(e),n(r=>r.filter(r=>r.id!==e))}catch(e){console.error("Failed to delete executor:",e)}},[]),v=(0,$.useCallback)(async(e,r)=>{try{let i=await rv.api.startExecutor(e,r,s),a=s??"local";return o(r=>{let s=r.get(e)??[],n=new Map(r);return n.set(e,[...s,{processId:i,target:a}]),n}),c(r=>{let s=new Map(r);return s.set(e,{processId:i,target:a}),s}),n(r=>r.map(r=>r.id!==e?r:{...r,last_runs:{...r.last_runs??{},[a]:{started_at:new Date().toISOString(),process_id:i}}})),i}catch(e){return console.error("Failed to start executor:",e),null}},[s]),_=(0,$.useCallback)(async(e,r)=>{let i=a.get(e),n=i?.find(e=>e.target===(s??"local")),l=r||n?.processId;if(l){try{await rv.api.stopProcess(l)}catch(e){console.error("Failed to stop executor:",e)}o(r=>{let s=r.get(e);if(!s)return r;let i=s.filter(e=>e.processId!==l),n=new Map(r);return 0===i.length?n.delete(e):n.set(e,i),n}),c(r=>{let s=r.get(e);if(!s||s.processId!==l)return r;let i=new Map(r);return i.delete(e),i})}},[a,s]),y=(0,$.useCallback)((e,r)=>{o(s=>{let i=s.get(e);if(!i)return s;if(r){let n=i.filter(e=>e.processId!==r);if(n.length===i.length)return s;let a=new Map(s);return 0===n.length?a.delete(e):a.set(e,n),a}let n=new Map(s);return n.delete(e),n}),c(s=>{if(!r){if(!s.has(e))return s;let r=new Map(s);return r.delete(e),r}let i=s.get(e);if(!i||i.processId!==r)return s;let n=new Map(s);return n.delete(e),n})},[]),b=(0,$.useCallback)(async s=>{if(e&&r){n(s.map(e=>i.find(r=>r.id===e)).filter(e=>void 0!==e));try{await rv.api.reorderExecutors(e,s,r)}catch(e){console.error("Failed to reorder executors:",e),n(i)}}},[e,r,i]);return{executors:i.map(e=>{let r=a.get(e.id),i=s??"local",n=r?.find(e=>e.target===i),o=l.get(e.id),c=o?.target===i?o:void 0,d=e.last_runs?.[i];return{...e,currentProcessId:n?.processId??c?.processId??null,isRunning:!!n,lastProcessId:d?.process_id??null,lastStartedAt:d?.started_at??null,isDisabled:e.disabled_targets.includes(i)}}),loading:d,createExecutor:m,updateExecutor:g,deleteExecutor:x,startExecutor:v,stopExecutor:_,markProcessFinished:y,reorderExecutors:b,refetch:h}}(e,u?.id,s?.executor_mode),S=function(){for(var e=arguments.length,r=Array(e),s=0;s<e;s++)r[s]=arguments[s];return(0,$.useMemo)(()=>[...r].filter(e=>null!=e),[...r])}(x2(vD,{activationConstraint:{distance:8}}),x2(vC,{coordinateGetter:_d}));return e?(0,z.jsx)(xC,{projectId:e,children:(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border/60 h-10",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsxs)("h2",{className:"text-xs font-semibold flex items-center gap-2 text-foreground",children:[(0,z.jsx)(aN,{className:"h-3.5 w-3.5"}),u?u.name:"Executors"]}),d.length>1&&i&&(0,z.jsx)(ak,{targets:d,activeTarget:s?.executor_mode??"local",onTargetChange:i})]}),u&&(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",className:"h-7 text-xs",onClick:()=>a(!0),children:[(0,z.jsx)(eS,{className:"h-3 w-3 mr-1"}),"Add"]})]}),(0,z.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,z.jsx)("div",{className:"p-4 space-y-3",children:h||m?(0,z.jsx)("div",{className:"text-center text-muted-foreground py-8",children:"Loading executors..."}):u?0===p.length?(0,z.jsxs)("div",{className:"text-center text-muted-foreground py-8",children:[(0,z.jsx)("p",{children:"No executors configured"}),(0,z.jsx)("p",{className:"text-sm mt-1",children:'Add an executor to run commands like "npm run dev"'})]}):(0,z.jsx)(vZ,{sensors:S,collisionDetection:_g,onDragEnd:e=>{let{active:r,over:s}=e;if(s&&r.id!==s.id){let e=p.findIndex(e=>e.id===r.id),i=p.findIndex(e=>e.id===s.id),n=[...p],[a]=n.splice(e,1);n.splice(i,0,a),w(n.map(e=>e.id))}},children:(0,z.jsx)(_t,{items:p.map(e=>e.id),strategy:v7,children:p.map(e=>(0,z.jsx)(_h,{executor:e,executorMode:s?.executor_mode??"local",isOpen:o.has(e.id),onOpenChange:r=>l(s=>{let i=new Set(s);return r?i.add(e.id):i.delete(e.id),i}),onStart:()=>_(e.id,r),onStop:r=>y(e.id,r||e.currentProcessId||void 0),onUpdate:r=>x(e.id,r),onDelete:()=>v(e.id),onProcessFinished:r=>b(e.id,r)},`${e.id}-${s?.executor_mode??"local"}`))})}):(0,z.jsxs)("div",{className:"text-center text-muted-foreground py-8",children:[(0,z.jsx)("p",{children:"No executor group for this branch"}),(0,z.jsx)("p",{className:"text-sm mt-1 mb-4",children:"Create a group to start adding executors"}),(0,z.jsxs)(W.Button,{size:"sm",onClick:()=>f(r?`Executors (${r})`:"Default"),children:[(0,z.jsx)(on,{className:"h-4 w-4 mr-1"}),"Create Group"]})]})})}),(0,z.jsx)(xb,{open:n,onOpenChange:a,onSubmit:async e=>{await g(e)}})]})},`${e??"none"}-${s?.executor_mode??"local"}`):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(aN,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to manage executors"})]})})}let _v=(0,ew.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),__=(0,ew.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);function _y({line:e}){let r="add"===e.type?"+":"delete"===e.type?"-":" ",s="add"===e.type,i="delete"===e.type,n=s?"bg-emerald-500/[0.07]":i?"bg-rose-500/[0.07]":"",a=s?"bg-emerald-500/[0.10]":i?"bg-rose-500/[0.10]":"bg-secondary",o=s?"text-emerald-600":i?"text-rose-600":"text-muted-foreground/70";return(0,z.jsxs)("div",{className:"flex font-mono text-[11.5px] leading-[1.55]",children:[(0,z.jsx)("span",{className:(0,ey.cn)("w-9 flex-shrink-0 text-right pr-2 select-none border-r border-border/60",a,o),children:e.oldLineNo??""}),(0,z.jsx)("span",{className:(0,ey.cn)("w-9 flex-shrink-0 text-right pr-2 select-none border-r border-border/60",a,o),children:e.newLineNo??""}),(0,z.jsx)("span",{className:(0,ey.cn)("w-5 flex-shrink-0 text-center select-none",n,o),children:r}),(0,z.jsx)("span",{className:(0,ey.cn)("whitespace-pre-wrap break-all pr-4 flex-1 min-w-0 pl-2",n,(s||i)&&"text-foreground"),children:e.content})]})}let _b={modified:"bg-yellow-500/20 text-yellow-500",added:"bg-green-500/20 text-green-500",deleted:"bg-red-500/20 text-red-500",renamed:"bg-blue-500/20 text-blue-500"},_w={modified:"Modified",added:"Added",deleted:"Deleted",renamed:"Renamed"};function _S({file:e,defaultOpen:r=!0}){let[s,i]=(0,$.useState)(r);return(0,z.jsxs)(uE,{open:s,onOpenChange:i,className:"border border-border rounded-lg overflow-hidden",children:[(0,z.jsxs)(uD,{className:"flex items-center gap-2 px-4 py-2 bg-secondary border-b border-border w-full cursor-pointer hover:bg-muted transition-colors",children:[s?(0,z.jsx)(sw,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,z.jsx)(af,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,z.jsx)("span",{className:"font-mono text-[11.5px] flex-1 min-w-0 truncate text-left text-foreground font-medium",children:e.oldPath&&"renamed"===e.status?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"text-muted-foreground font-normal",children:e.oldPath}),(0,z.jsx)("span",{className:"mx-2 text-muted-foreground",children:"→"}),e.path]}):e.path}),(0,z.jsx)(sb,{variant:"secondary",className:_b[e.status],children:_w[e.status]})]}),(0,z.jsx)(uR,{children:(0,z.jsx)("div",{children:e.hunks.map((e,r)=>(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:"px-4 py-0.5 bg-accent text-accent-foreground text-[11px] font-mono font-medium sticky top-0",children:["@@ -",e.oldStart,",",e.oldLines," +",e.newStart,",",e.newLines," @@"]}),e.lines.map((e,r)=>(0,z.jsx)(_y,{line:e},r))]},r))})})]})}let _C=(0,ew.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),_j="__head__",_k="__compare__";function _N({commits:e,selectedCommit:r,onSelectCommit:s,compareTarget:i,compareSelected:n,onSelectCompare:a,loading:o,disabled:l}){return(0,z.jsxs)(cX,{value:n?_k:r??_j,onValueChange:e=>{e===_k?a?.():s(e===_j?null:e)},disabled:l||o,children:[(0,z.jsxs)(cZ,{size:"sm",className:"w-[200px]",children:[(0,z.jsx)(_C,{className:"h-3.5 w-3.5 shrink-0"}),(0,z.jsx)(cJ,{placeholder:"Select commit..."})]}),(0,z.jsxs)(cQ,{children:[(0,z.jsx)(c0,{value:_j,children:"HEAD (uncommitted)"}),i&&(0,z.jsxs)(c0,{value:_k,children:["vs ",(0,z.jsx)("span",{className:"font-mono text-xs",children:i})]}),e.map(e=>(0,z.jsxs)(c0,{value:e.hash,children:[(0,z.jsx)("span",{className:"font-mono text-xs",children:e.shortHash})," ",(0,z.jsx)("span",{className:"truncate",children:e.message.length>40?e.message.slice(0,40)+"...":e.message})]},e.hash))]})]})}function _E({projectId:e,selectedBranch:r,onMergeRequest:s,project:i,mergeTarget:n,compareRequestNonce:a}){let[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)(!1),[u,h]=(0,$.useState)(a),[f,p]=(0,$.useState)(r),m=void 0!==a&&a!==u;m&&(h(a),d(!0),l(null)),r!==f&&(p(r),l(null),m||d(!1));let{remotes:g}=_m(),x=[];for(let e of(i?.path&&x.push({id:"local",label:"Local",icon:aD}),g))x.push({id:e.remote_server_id,label:e.server_name,icon:so});let v=i?.path?"local":g.length>0?g[0].remote_server_id:"local",[_,y]=(0,$.useState)(v),[b,w]=(0,$.useState)(!0),[S,C]=(0,$.useState)(0),j="local"===_?i?.path?"local":void 0:"remote",{diff:k,loading:N,error:E,refresh:D}=function(e,r,s,i,n){let[a,o]=(0,$.useState)(null),[l,c]=(0,$.useState)(!1),[d,u]=(0,$.useState)(null),h=(0,$.useCallback)(async()=>{if(!e)return void o(null);c(!0),u(null);try{let a=await rv.api.getDiff(e,r,s,i,n);o(a)}catch(e){u(e instanceof Error?e.message:"Failed to load diff"),o(null)}finally{c(!1)}},[e,r,s,i,n]);return{diff:a,loading:l,error:d,refresh:h}}(e,r,o,j,c&&n?n:null),{commits:R,loading:A,refetch:M}=function(e,r,s,i){let[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)(!1);return{commits:n,loading:o,refetch:(0,$.useCallback)(async()=>{if(!e)return void a([]);l(!0);try{let n=await rv.api.getCommits(e,r,s,i);a(n)}catch{a([])}finally{l(!1)}},[e,r,s,i])}}(e,r,void 0,j);if((0,$.useEffect)(()=>{D()},[D]),(0,$.useEffect)(()=>{M()},[M]),(0,$.useEffect)(()=>{y(v)},[e,v]),!e)return(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(rw,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to view changes"})]})});let F=k?.files.length??0;return(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border/60 h-10",children:[(0,z.jsx)("div",{className:"flex items-center gap-4",children:F>0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)("span",{className:"text-xs text-muted-foreground",children:[F," file",1!==F?"s":""," changed"]}),(0,z.jsxs)(W.Button,{size:"sm",variant:"ghost",onClick:()=>{w(e=>!e),C(e=>e+1)},title:b?"Collapse all":"Expand all",children:[(0,z.jsx)(__,{className:"h-4 w-4 mr-1"}),b?"Collapse all":"Expand all"]})]})}),(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[x.length>1&&(0,z.jsx)(ak,{targets:x,activeTarget:_,onTargetChange:y,disabled:N}),(0,z.jsx)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:"Commit:"}),(0,z.jsx)(_N,{commits:R,selectedCommit:o,onSelectCommit:e=>{d(!1),l(e)},compareTarget:n,compareSelected:c,onSelectCompare:()=>{d(!0),l(null)},loading:A,disabled:N}),(0,z.jsxs)(W.Button,{size:"sm",variant:"outline",onClick:s,disabled:N||0===F,children:[(0,z.jsx)(ld,{className:"h-4 w-4 mr-1"}),"Merge"]}),(0,z.jsxs)(W.Button,{size:"sm",variant:"outline",onClick:D,disabled:N,children:[(0,z.jsx)(_v,{className:`h-4 w-4 mr-1 ${N?"animate-spin":""}`}),"Refresh"]})]})]}),(0,z.jsx)(or,{className:"flex-1 overflow-hidden",children:(0,z.jsx)("div",{className:"p-4 space-y-4",children:N&&!k?(0,z.jsx)("div",{className:"text-center text-muted-foreground py-8",children:"Loading changes..."}):E?(0,z.jsx)("div",{className:"text-center text-red-400 py-8",children:E}):0===F?(0,z.jsx)("div",{className:"text-center text-muted-foreground py-8",children:(0,z.jsx)("p",{children:c&&n?`No changes vs ${n}`:o?"No changes in this commit":"No uncommitted changes"})}):k?.files.map((e,r)=>(0,z.jsx)(_S,{file:e,defaultOpen:b},`${r}-${S}`))})})]})}function _D({terminalId:e,onExit:r}){let{logs:s,sendInput:i,sendResize:n,exitCode:a,replayingHistory:o}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)("closed"),[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)(!1),[u,h]=(0,$.useState)(!0),f=(0,$.useRef)(null),p=(0,$.useRef)(null),m=(0,$.useRef)(0),g=(0,$.useRef)(null),x=(0,$.useRef)(!1),v=(0,$.useCallback)(()=>{i([]),l(null),d(!1)},[]),_=(0,$.useCallback)(e=>{f.current?.readyState===WebSocket.OPEN&&f.current.send(JSON.stringify({type:"input",data:e}))},[]),y=(0,$.useCallback)((e,r)=>{f.current?.readyState===WebSocket.OPEN?f.current.send(JSON.stringify({type:"resize",cols:e,rows:r})):p.current={cols:e,rows:r}},[]);return(0,$.useEffect)(()=>{if(!e)return;i([]),l(null),d(!1),x.current=!1,m.current=0;let r=!1;return function s(){r||x.current||(0,rv.getFreshToken)().then(()=>{r||x.current||function(){if(r||x.current)return;a("connecting");let n=(0,rv.getWebSocketUrl)(`/api/executor-processes/${e}/logs`);console.log(`[useExecutorLogs] Connecting to WebSocket: ${n}`);let o=new WebSocket(n);f.current=o;let c=!1,u=!1;o.onopen=()=>{if(!r&&(console.log("[useExecutorLogs] WebSocket connected"),a("connected"),i([]),p.current)){let{cols:e,rows:r}=p.current;o.send(JSON.stringify({type:"resize",cols:e,rows:r})),p.current=null}},o.onmessage=e=>{if(!r)try{let r=JSON.parse(e.data);if("init"===r.type)d(r.isPty),h(!0),console.log("[useExecutorLogs] init received, setReplayingHistory(true)");else if("history_end"===r.type)u=!0,h(!1),console.log("[useExecutorLogs] history_end received, setReplayingHistory(false)");else if("finished"===r.type)x.current=!0,l(r.exitCode),a("closed");else if("error"===r.type)x.current=!0,a("error");else{u&&(c=!0,m.current=0);let e="stdout"===r.type||"stderr"===r.type||"pty"===r.type?{...r,historical:!u}:r;i(r=>[...r,e])}}catch(e){console.error("Failed to parse WebSocket message:",e)}},o.onerror=e=>{r||console.error("[useExecutorLogs] WebSocket error:",e)},o.onclose=e=>{if(console.log("[useExecutorLogs] WebSocket closed:",e.code,e.reason),f.current=null,x.current||r)return void a("closed");if(u&&!c){console.log(`[useExecutorLogs] Server closed after history with no live data — treating as terminal`),x.current=!0,a("closed");return}if(m.current<8){let e=m.current,i=Math.min(15e3,1e3*Math.pow(2,e)),n=i*Math.random()*.25,o=i+n;console.log(`[useExecutorLogs] Scheduling reconnect in ${Math.round(o)}ms (attempt ${e+1}/8)`),a("connecting"),m.current=e+1,g.current=setTimeout(()=>{g.current=null,r||s()},o)}else console.log("[useExecutorLogs] Max reconnect attempts reached"),a("error")}}()})}(),()=>{r=!0,g.current&&(clearTimeout(g.current),g.current=null),f.current&&(f.current.close(),f.current=null)}},[e,void 0]),{logs:s,status:n,exitCode:o,isPty:c,replayingHistory:u,clearLogs:v,sendInput:_,sendResize:y}}(e);return(0,$.useEffect)(()=>{null!==a&&r(e)},[a,r,e]),(0,z.jsx)(xv,{logs:s,isPty:!0,className:"h-full rounded-none border-0",onInput:i,onResize:n,muteInput:o})}function _R({projectId:e,selectedBranch:r,project:s}){let{terminals:i,activeTerminalId:n,createTerminal:a,closeTerminal:o,setActiveTerminal:l,removeTerminal:c}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(null);(0,$.useEffect)(()=>{if(!e){i([]),a(null);return}rv.api.getTerminals(e,r).then(e=>{i(e),a(e.length>0?e[0].id:null)})},[e,r]);let o=(0,$.useCallback)(async(s,n)=>{if(e)try{let o=await rv.api.createTerminal(e,r,s,n);i(e=>[...e,o]),a(o.id)}catch(e){console.error("[useTerminals] Failed to create terminal:",e)}},[e,r]),l=(0,$.useCallback)(async e=>{await rv.api.closeTerminal(e),i(r=>{let s=r.filter(r=>r.id!==e);return a(r=>r===e?s.length>0?s[s.length-1].id:null:r),s})},[]);return{terminals:s,activeTerminalId:n,createTerminal:o,closeTerminal:l,setActiveTerminal:(0,$.useCallback)(e=>{a(e)},[]),removeTerminal:(0,$.useCallback)(e=>{i(r=>{let s=r.filter(r=>r.id!==e);return a(r=>r===e?s.length>0?s[s.length-1].id:null:r),s})},[])}}(e,r),{remotes:d}=_m(),[u,h]=(0,$.useState)(!1),f=(0,$.useRef)(null),p=!!s?.path,m=d.length>0,g=p&&m||d.length>1,x=!p&&m||g&&s?.executor_mode!=="local"?"remote":"local",v=(0,$.useCallback)(()=>{a(x)},[a,x]),_=(0,$.useCallback)((e,r)=>{h(!1),a(e,r)},[a]);(0,$.useEffect)(()=>{if(u)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){f.current&&!f.current.contains(e.target)&&h(!1)}},[u]);let y=(0,$.useCallback)(e=>{c(e)},[c]);return e?(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsxs)("div",{className:"flex items-center h-10 border-b border-border/60 px-2 gap-1 shrink-0 bg-muted/20",children:[(0,z.jsx)("div",{className:"flex-1 min-w-0 flex items-center gap-1 overflow-hidden",children:i.map(e=>{let r="remote"===e.location||e.id.startsWith("remote-"),s=g?r?so:aD:aN,i=n===e.id;return(0,z.jsxs)("button",{onClick:()=>l(e.id),title:e.name,className:(0,ey.cn)("group flex items-center gap-1.5 px-2 py-1 rounded-md text-xs transition-all duration-150 border flex-1 min-w-0 basis-0 max-w-[180px]",i?"bg-background text-foreground border-border shadow-sm":"text-muted-foreground hover:text-foreground bg-muted/40 hover:bg-background/60 border-border/30 hover:border-border/60"),children:[(0,z.jsx)(s,{className:"h-3 w-3 shrink-0"}),(0,z.jsx)("span",{className:"truncate flex-1 text-left",children:e.name}),(0,z.jsx)("span",{role:"button",onClick:r=>{r.stopPropagation(),o(e.id)},className:(0,ey.cn)("shrink-0 rounded-sm p-0.5 hover:bg-destructive/10 hover:text-destructive",i?"opacity-80 hover:opacity-100":"opacity-0 group-hover:opacity-80 hover:!opacity-100"),children:(0,z.jsx)(t8,{className:"h-3 w-3"})})]},e.id)})}),(0,z.jsxs)("div",{className:"relative shrink-0",ref:f,children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:g?()=>h(e=>!e):v,children:(0,z.jsx)(eS,{className:"h-3.5 w-3.5"})}),g&&u&&(0,z.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 min-w-[160px] rounded-md border bg-popover p-1 shadow-md",children:[p&&(0,z.jsxs)("button",{className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs hover:bg-accent hover:text-accent-foreground transition-colors",onClick:()=>_("local"),children:[(0,z.jsx)(aD,{className:"h-3.5 w-3.5"}),"Local Terminal"]}),d.map(e=>(0,z.jsxs)("button",{className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs hover:bg-accent hover:text-accent-foreground transition-colors",onClick:()=>_("remote",e.remote_server_id),children:[(0,z.jsx)(so,{className:"h-3.5 w-3.5"}),e.server_name," Terminal"]},e.remote_server_id))]})]})]}),(0,z.jsx)("div",{className:"flex-1 overflow-hidden bg-zinc-950",children:n?(0,z.jsx)(_D,{terminalId:n,onExit:y},n):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsx)(aN,{className:"h-10 w-10 text-muted-foreground/70"})})})]}):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(aN,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to use the terminal"})]})})}let _A=(0,ew.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),_M=(0,$.createContext)(null),_F=({className:e,children:r,defaultUrl:s="",onUrlChange:i,...n})=>{let[a,o]=(0,$.useState)(s),[l,c]=(0,$.useState)(!1);return(0,z.jsx)(_M.Provider,{value:{url:a,setUrl:e=>{o(e),i?.(e)},consoleOpen:l,setConsoleOpen:c},children:(0,z.jsx)("div",{className:(0,ey.cn)("flex size-full flex-col bg-card",e),...n,children:r})})},_T=({className:e,children:r,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("flex items-center gap-1 border-b p-2 h-14",e),...s,children:r}),_P=({onClick:e,disabled:r,tooltip:s,children:i,...n})=>(0,z.jsx)(ls,{children:(0,z.jsxs)(li,{children:[(0,z.jsx)(ln,{asChild:!0,children:(0,z.jsx)(W.Button,{className:"h-8 w-8 p-0 hover:text-foreground",disabled:r,onClick:e,size:"sm",variant:"ghost",...n,children:i})}),(0,z.jsx)(la,{children:(0,z.jsx)("p",{children:s})})]})}),_B=({value:e,onChange:r,onKeyDown:s,...i})=>{let{url:n,setUrl:a}=(()=>{let e=(0,$.useContext)(_M);if(!e)throw Error("WebPreview components must be used within a WebPreview");return e})(),[o,l]=(0,$.useState)(n);return(0,$.useEffect)(()=>{l(n)},[n]),(0,z.jsx)(ro,{className:"h-8 flex-1 text-sm",onChange:r??(e=>{l(e.target.value),r?.(e)}),onKeyDown:e=>{"Enter"===e.key&&a(e.target.value),s?.(e)},placeholder:"Enter URL...",value:e??o,...i})};var _L=e.i(254824);function _I({projectId:e}){let r=(0,$.useRef)(null),s=(0,$.useRef)(null),{addFrame:i,updateFrameUrl:n,refreshFrame:a,hasFrame:o,claimFrame:l,getFrameUrl:c}=(0,_L.useBrowserFrames)(),d=e?c(e):void 0;(0,$.useEffect)(()=>{if(e&&d&&r.current){let i=setTimeout(()=>{r.current&&(s.current?.(),s.current=l(e,r.current))},50);return()=>{clearTimeout(i),s.current?.(),s.current=null}}return()=>{s.current?.(),s.current=null}},[e,d,l]);let u=(0,$.useCallback)(()=>{e&&a(e)},[e,a]),h=(0,$.useCallback)(()=>{d&&window.open(d,"_blank")},[d]),f=(0,$.useCallback)(r=>{e&&(o(e)?n(e,r):i(e,r))},[e,o,n,i]);return(0,z.jsx)("div",{className:"h-full flex flex-col",children:(0,z.jsxs)(_F,{defaultUrl:d??"",onUrlChange:f,className:"h-full",children:[(0,z.jsxs)(_T,{className:"h-10 p-1.5 gap-0.5",children:[(0,z.jsx)(_P,{tooltip:"Refresh",onClick:u,disabled:!d,children:(0,z.jsx)(_v,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(_P,{tooltip:"Open in browser",onClick:h,disabled:!d,children:(0,z.jsx)(_A,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(_B,{className:"h-7 text-xs"})]}),d?(0,z.jsx)("div",{ref:r,className:"flex-1 bg-white"}):(0,z.jsx)("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,z.jsx)(ry,{className:"h-8 w-8 opacity-40"}),(0,z.jsx)("p",{className:"text-sm",children:"Enter a URL above to preview"})]})})]})})}let _O=(0,ew.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),_z=(0,ew.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),_$=(0,ew.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]),_W=(0,ew.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);var _H=e.i(553154);let _U=(0,ew.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),_K=(0,$.createContext)(null);_K.displayName="PanelGroupContext";let _q="data-panel-group-direction",_V="data-panel-group-id",_Y="data-resize-handle",_G="data-panel-resize-handle-id",_X=$.useLayoutEffect,_J=$["useId".toString()],_Z="function"==typeof _J?_J:()=>null,_Q=0;function _0(e=null){let r=_Z(),s=(0,$.useRef)(e||r||null);return null===s.current&&(s.current=""+_Q++),null!=e?e:s.current}function _1({children:e,className:r="",collapsedSize:s,collapsible:i,defaultSize:n,forwardedRef:a,id:o,maxSize:l,minSize:c,onCollapse:d,onExpand:u,onResize:h,order:f,style:p,tagName:m="div",...g}){let x=(0,$.useContext)(_K);if(null===x)throw Error("Panel components must be rendered within a PanelGroup container");let{collapsePanel:v,expandPanel:_,getPanelSize:y,getPanelStyle:b,groupId:w,isPanelCollapsed:S,reevaluatePanelConstraints:C,registerPanel:j,resizePanel:k,unregisterPanel:N}=x,E=_0(o),D=(0,$.useRef)({callbacks:{onCollapse:d,onExpand:u,onResize:h},constraints:{collapsedSize:s,collapsible:i,defaultSize:n,maxSize:l,minSize:c},id:E,idIsFromProps:void 0!==o,order:f});(0,$.useRef)({didLogMissingDefaultSizeWarning:!1}),_X(()=>{let{callbacks:e,constraints:r}=D.current,a={...r};D.current.id=E,D.current.idIsFromProps=void 0!==o,D.current.order=f,e.onCollapse=d,e.onExpand=u,e.onResize=h,r.collapsedSize=s,r.collapsible=i,r.defaultSize=n,r.maxSize=l,r.minSize=c,(a.collapsedSize!==r.collapsedSize||a.collapsible!==r.collapsible||a.maxSize!==r.maxSize||a.minSize!==r.minSize)&&C(D.current,a)}),_X(()=>{let e=D.current;return j(e),()=>{N(e)}},[f,E,j,N]),(0,$.useImperativeHandle)(a,()=>({collapse:()=>{v(D.current)},expand:e=>{_(D.current,e)},getId:()=>E,getSize:()=>y(D.current),isCollapsed:()=>S(D.current),isExpanded:()=>!S(D.current),resize:e=>{k(D.current,e)}}),[v,_,y,S,E,k]);let R=b(D.current,n);return(0,$.createElement)(m,{...g,children:e,className:r,id:E,style:{...R,...p},[_V]:w,"data-panel":"","data-panel-collapsible":i||void 0,"data-panel-id":E,"data-panel-size":parseFloat(""+R.flexGrow).toFixed(1)})}let _2=(0,$.forwardRef)((e,r)=>(0,$.createElement)(_1,{...e,forwardedRef:r}));_1.displayName="Panel",_2.displayName="forwardRef(Panel)";let _5=null,_3=-1,_4=null;function _6(e,s){var i,n,a;let o=function(e,r){if(r){let e=(r&ya)!=0,s=(r&yo)!=0,i=(r&yl)!=0,n=(r&yc)!=0;if(e)if(i)return"se-resize";else if(n)return"ne-resize";else return"e-resize";if(s)if(i)return"sw-resize";else if(n)return"nw-resize";else return"w-resize";if(i)return"s-resize";else if(n)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}(e,s);_5!==o&&(_5=o,null===_4&&(_4=document.createElement("style"),r&&_4.setAttribute("nonce",r),document.head.appendChild(_4)),_3>=0&&(null==(a=_4.sheet)||a.removeRule(_3)),_3=null!=(i=null==(n=_4.sheet)?void 0:n.insertRule(`*{cursor: ${o} !important;}`))?i:-1)}function _8(e){return"keydown"===e.type}function _7(e){return e.type.startsWith("pointer")}function _9(e){return e.type.startsWith("mouse")}function ye(e){if(_7(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(_9(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}let yt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function yr(e){let r=e.length;for(;r--;){let s=e[r];if(yj(s,"Missing node"),function(e){var r;let s,i=getComputedStyle(e);return"fixed"===i.position||!!("auto"!==i.zIndex&&("static"!==i.position||"flex"===(s=getComputedStyle(null!=(r=yn(e))?r:e).display)||"inline-flex"===s)||1>+i.opacity||"transform"in i&&"none"!==i.transform||"webkitTransform"in i&&"none"!==i.webkitTransform||"mixBlendMode"in i&&"normal"!==i.mixBlendMode||"filter"in i&&"none"!==i.filter||"webkitFilter"in i&&"none"!==i.webkitFilter||"isolation"in i&&"isolate"===i.isolation||yt.test(i.willChange))||"touch"===i.webkitOverflowScrolling}(s))return s}return null}function ys(e){return e&&Number(getComputedStyle(e).zIndex)||0}function yi(e){let r=[];for(;e;)r.push(e),e=yn(e);return r}function yn(e){let{parentNode:r}=e;return r&&r instanceof ShadowRoot?r.host:r}let ya=1,yo=2,yl=4,yc=8,yd="coarse"===function(){if("function"==typeof matchMedia)return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}(),yu=[],yh=!1,yf=new Map,yp=new Map,ym=new Set;function yg(e){let{target:r}=e,{x:s,y:i}=ye(e);yh=!0,yy({target:r,x:s,y:i}),yS(),yu.length>0&&(yC("down",e),e.preventDefault(),y_(r)||e.stopImmediatePropagation())}function yx(e){let{x:r,y:s}=ye(e);if(yh&&0===e.buttons&&(yh=!1,yC("up",e)),!yh){let{target:i}=e;yy({target:i,x:r,y:s})}yC("move",e),yb(),yu.length>0&&e.preventDefault()}function yv(e){let{target:r}=e,{x:s,y:i}=ye(e);yp.clear(),yh=!1,yu.length>0&&(e.preventDefault(),y_(r)||e.stopImmediatePropagation()),yC("up",e),yy({target:r,x:s,y:i}),yb(),yS()}function y_(e){let r=e;for(;r;){if(r.hasAttribute(_Y))return!0;r=r.parentElement}return!1}function yy({target:e,x:r,y:s}){yu.splice(0);let i=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(i=e),ym.forEach(e=>{let{element:n,hitAreaMargins:a}=e,o=n.getBoundingClientRect(),{bottom:l,left:c,right:d,top:u}=o,h=yd?a.coarse:a.fine;if(r>=c-h&&r<=d+h&&s>=u-h&&s<=l+h){if(null!==i&&document.contains(i)&&n!==i&&!n.contains(i)&&!i.contains(n)&&function(e,r){let s;if(e===r)throw Error("Cannot compare node with itself");let i={a:yi(e),b:yi(r)};for(;i.a.at(-1)===i.b.at(-1);)e=i.a.pop(),r=i.b.pop(),s=e;yj(s,"Stacking order can only be calculated for elements with a common ancestor");let n={a:ys(yr(i.a)),b:ys(yr(i.b))};if(n.a===n.b){let e=s.childNodes,r={a:i.a.at(-1),b:i.b.at(-1)},n=e.length;for(;n--;){let s=e[n];if(s===r.a)return 1;if(s===r.b)return -1}}return Math.sign(n.a-n.b)}(i,n)>0){let e=i,r=!1;for(;e;){var f;if(e.contains(n))break;if(f=e.getBoundingClientRect(),f.x<o.x+o.width&&f.x+f.width>o.x&&f.y<o.y+o.height&&f.y+f.height>o.y){r=!0;break}e=e.parentElement}if(r)return}yu.push(e)}})}function yb(){let e=!1,r=!1;yu.forEach(s=>{let{direction:i}=s;"horizontal"===i?e=!0:r=!0});let s=0;yp.forEach(e=>{s|=e}),e&&r?_6("intersection",s):e?_6("horizontal",s):r?_6("vertical",s):null!==_4&&(document.head.removeChild(_4),_5=null,_4=null,_3=-1)}let yw=new AbortController;function yS(){yw.abort();let e={capture:!0,signal:(yw=new AbortController).signal};ym.size&&(yh?(yu.length>0&&yf.forEach((r,s)=>{let{body:i}=s;r>0&&(i.addEventListener("contextmenu",yv,e),i.addEventListener("pointerleave",yx,e),i.addEventListener("pointermove",yx,e))}),window.addEventListener("pointerup",yv,e),window.addEventListener("pointercancel",yv,e)):yf.forEach((r,s)=>{let{body:i}=s;r>0&&(i.addEventListener("pointerdown",yg,e),i.addEventListener("pointermove",yx,e))}))}function yC(e,r){ym.forEach(s=>{let{setResizeHandlerState:i}=s;i(e,yu.includes(s),r)})}function yj(e,r){if(!e)throw console.error(r),Error(r)}function yk(e,r,s=10){return e.toFixed(s)===r.toFixed(s)?0:e>r?1:-1}function yN(e,r,s=10){return 0===yk(e,r,s)}function yE(e,r,s){return 0===yk(e,r,s)}function yD({panelConstraints:e,panelIndex:r,size:s}){let i=e[r];yj(null!=i,`Panel constraints not found for index ${r}`);let{collapsedSize:n=0,collapsible:a,maxSize:o=100,minSize:l=0}=i;return 0>yk(s,l)&&(s=a&&0>yk(s,(n+l)/2)?n:l),s=parseFloat((s=Math.min(o,s)).toFixed(10))}function yR({delta:e,initialLayout:r,panelConstraints:s,pivotIndices:i,prevLayout:n,trigger:a}){if(yE(e,0))return r;let o=[...r],[l,c]=i;yj(null!=l,"Invalid first pivot index"),yj(null!=c,"Invalid second pivot index");let d=0;if("keyboard"===a){{let i=e<0?c:l,n=s[i];yj(n,`Panel constraints not found for index ${i}`);let{collapsedSize:a=0,collapsible:o,minSize:d=0}=n;if(o){let s=r[i];if(yj(null!=s,`Previous layout not found for panel index ${i}`),yE(s,a)){let r=d-s;yk(r,Math.abs(e))>0&&(e=e<0?0-r:r)}}}{let i=e<0?l:c,n=s[i];yj(n,`No panel constraints found for index ${i}`);let{collapsedSize:a=0,collapsible:o,minSize:d=0}=n;if(o){let s=r[i];if(yj(null!=s,`Previous layout not found for panel index ${i}`),yE(s,d)){let r=s-a;yk(r,Math.abs(e))>0&&(e=e<0?0-r:r)}}}}{let i=e<0?1:-1,n=e<0?c:l,a=0;for(;;){let e=r[n];if(yj(null!=e,`Previous layout not found for panel index ${n}`),a+=yD({panelConstraints:s,panelIndex:n,size:100})-e,(n+=i)<0||n>=s.length)break}let o=Math.min(Math.abs(e),Math.abs(a));e=e<0?0-o:o}{let i=e<0?l:c;for(;i>=0&&i<s.length;){let n=Math.abs(e)-Math.abs(d),a=r[i];yj(null!=a,`Previous layout not found for panel index ${i}`);let l=yD({panelConstraints:s,panelIndex:i,size:a-n});if(!yE(a,l)&&(d+=a-l,o[i]=l,d.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?i--:i++}}if(function(e,r,s){if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(!yE(e[s],r[s],void 0))return!1;return!0}(n,o))return n;{let i=e<0?c:l,n=r[i];yj(null!=n,`Previous layout not found for panel index ${i}`);let a=n+d,u=yD({panelConstraints:s,panelIndex:i,size:a});if(o[i]=u,!yE(u,a)){let r=a-u,i=e<0?c:l;for(;i>=0&&i<s.length;){let n=o[i];yj(null!=n,`Previous layout not found for panel index ${i}`);let a=yD({panelConstraints:s,panelIndex:i,size:n+r});if(yE(n,a)||(r-=a-n,o[i]=a),yE(r,0))break;e>0?i--:i++}}}return yE(o.reduce((e,r)=>r+e,0),100)?o:n}function yA(e,r=document){return Array.from(r.querySelectorAll(`[${_G}][data-panel-group-id="${e}"]`))}function yM(e,r,s=document){let i=yA(e,s).findIndex(e=>e.getAttribute(_G)===r);return null!=i?i:null}function yF(e,r,s){let i=yM(e,r,s);return null!=i?[i,i+1]:[-1,-1]}function yT(e,r=document){var s;if(r instanceof HTMLElement&&(null==r||null==(s=r.dataset)?void 0:s.panelGroupId)==e)return r;let i=r.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return i||null}function yP(e,r=document){let s=r.querySelector(`[${_G}="${e}"]`);return s||null}function yB(e,r){if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==r[s])return!1;return!0}function yL(e,r){let{x:s,y:i}=ye(r);return"horizontal"===e?s:i}function yI(e,r,s){r.forEach((r,i)=>{let n=e[i];yj(n,`Panel data not found for index ${i}`);let{callbacks:a,constraints:o,id:l}=n,{collapsedSize:c=0,collapsible:d}=o,u=s[l];if(null==u||r!==u){s[l]=r;let{onCollapse:e,onExpand:i,onResize:n}=a;n&&n(r,u),d&&(e||i)&&(i&&(null==u||yN(u,c))&&!yN(r,c)&&i(),e&&(null==u||!yN(u,c))&&yN(r,c)&&e())}})}function yO(e,r){if(e.length!==r.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!=r[s])return!1;return!0}function yz(e){try{if("undefined"!=typeof localStorage)e.getItem=e=>localStorage.getItem(e),e.setItem=(e,r)=>{localStorage.setItem(e,r)};else throw Error("localStorage not supported in this environment")}catch(r){console.error(r),e.getItem=()=>null,e.setItem=()=>{}}}function y$(e){return`react-resizable-panels:${e}`}function yW(e){return e.map(e=>{let{constraints:r,id:s,idIsFromProps:i,order:n}=e;return i?s:n?`${n}:${JSON.stringify(r)}`:JSON.stringify(r)}).sort((e,r)=>e.localeCompare(r)).join(",")}function yH(e,r){try{let s=y$(e),i=r.getItem(s);if(i){let e=JSON.parse(i);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function yU(e,r,s,i,n){var a;let o=y$(e),l=yW(r),c=null!=(a=yH(e,n))?a:{};c[l]={expandToSizes:Object.fromEntries(s.entries()),layout:i};try{n.setItem(o,JSON.stringify(c))}catch(e){console.error(e)}}function yK({layout:e,panelConstraints:r}){let s=[...e],i=s.reduce((e,r)=>e+r,0);if(s.length!==r.length)throw Error(`Invalid ${r.length} panel layout: ${s.map(e=>`${e}%`).join(", ")}`);if(!yE(i,100)&&s.length>0)for(let e=0;e<r.length;e++){let r=s[e];yj(null!=r,`No layout data found for index ${e}`);let n=100/i*r;s[e]=n}let n=0;for(let e=0;e<r.length;e++){let i=s[e];yj(null!=i,`No layout data found for index ${e}`);let a=yD({panelConstraints:r,panelIndex:e,size:i});i!=a&&(n+=i-a,s[e]=a)}if(!yE(n,0))for(let e=0;e<r.length;e++){let i=s[e];yj(null!=i,`No layout data found for index ${e}`);let a=yD({panelConstraints:r,panelIndex:e,size:i+n});if(i!==a&&(n-=a-i,s[e]=a,yE(n,0)))break}return s}let yq={getItem:e=>(yz(yq),yq.getItem(e)),setItem:(e,r)=>{yz(yq),yq.setItem(e,r)}},yV={};function yY({autoSaveId:e=null,children:r,className:s="",direction:i,forwardedRef:n,id:a=null,onLayout:o=null,keyboardResizeBy:l=null,storage:c=yq,style:d,tagName:u="div",...h}){let f=_0(a),p=(0,$.useRef)(null),[m,g]=(0,$.useState)(null),[x,v]=(0,$.useState)([]),_=function(){let[e,r]=(0,$.useState)(0);return(0,$.useCallback)(()=>r(e=>e+1),[])}(),y=(0,$.useRef)({}),b=(0,$.useRef)(new Map),w=(0,$.useRef)(0),S=(0,$.useRef)({autoSaveId:e,direction:i,dragState:m,id:f,keyboardResizeBy:l,onLayout:o,storage:c}),C=(0,$.useRef)({layout:x,panelDataArray:[],panelDataArrayChanged:!1});(0,$.useRef)({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),(0,$.useImperativeHandle)(n,()=>({getId:()=>S.current.id,getLayout:()=>{let{layout:e}=C.current;return e},setLayout:e=>{let{onLayout:r}=S.current,{layout:s,panelDataArray:i}=C.current,n=yK({layout:e,panelConstraints:i.map(e=>e.constraints)});yB(s,n)||(v(n),C.current.layout=n,r&&r(n),yI(i,n,y.current))}}),[]),_X(()=>{S.current.autoSaveId=e,S.current.direction=i,S.current.dragState=m,S.current.id=f,S.current.onLayout=o,S.current.storage=c}),function({committedValuesRef:e,eagerValuesRef:r,groupId:s,layout:i,panelDataArray:n,panelGroupElement:a,setLayout:o}){(0,$.useRef)({didWarnAboutMissingResizeHandle:!1}),_X(()=>{if(!a)return;let e=yA(s,a);for(let r=0;r<n.length-1;r++){let{valueMax:s,valueMin:a,valueNow:o}=function({layout:e,panelsArray:r,pivotIndices:s}){let i=0,n=100,a=0,o=0,l=s[0];return yj(null!=l,"No pivot index found"),r.forEach((e,r)=>{let{constraints:s}=e,{maxSize:c=100,minSize:d=0}=s;r===l?(i=d,n=c):(a+=d,o+=c)}),{valueMax:Math.min(n,100-a),valueMin:Math.max(i,100-o),valueNow:e[l]}}({layout:i,panelsArray:n,pivotIndices:[r,r+1]}),l=e[r];if(null==l);else{let e=n[r];yj(e,`No panel data found for index "${r}"`),l.setAttribute("aria-controls",e.id),l.setAttribute("aria-valuemax",""+Math.round(s)),l.setAttribute("aria-valuemin",""+Math.round(a)),l.setAttribute("aria-valuenow",null!=o?""+Math.round(o):"")}}return()=>{e.forEach((e,r)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")})}},[s,i,n,a]),(0,$.useEffect)(()=>{if(!a)return;let e=r.current;yj(e,"Eager values not found");let{panelDataArray:n}=e;yj(null!=yT(s,a),`No group found for id "${s}"`);let l=yA(s,a);yj(l,`No resize handles found for group id "${s}"`);let c=l.map(e=>{let r=e.getAttribute(_G);yj(r,"Resize handle element has no handle id attribute");let[l,c]=function(e,r,s,i=document){var n,a,o,l;let c=yP(r,i),d=yA(e,i),u=c?d.indexOf(c):-1;return[null!=(n=null==(a=s[u])?void 0:a.id)?n:null,null!=(o=null==(l=s[u+1])?void 0:l.id)?o:null]}(s,r,n,a);if(null==l||null==c)return()=>{};let d=e=>{if(!e.defaultPrevented&&"Enter"===e.key){e.preventDefault();let c=n.findIndex(e=>e.id===l);if(c>=0){let e=n[c];yj(e,`No panel data found for index ${c}`);let l=i[c],{collapsedSize:d=0,collapsible:u,minSize:h=0}=e.constraints;if(null!=l&&u){let e=yR({delta:yE(l,d)?h-d:d-l,initialLayout:i,panelConstraints:n.map(e=>e.constraints),pivotIndices:yF(s,r,a),prevLayout:i,trigger:"keyboard"});i!==e&&o(e)}}}};return e.addEventListener("keydown",d),()=>{e.removeEventListener("keydown",d)}});return()=>{c.forEach(e=>e())}},[a,e,r,s,i,n,o])}({committedValuesRef:S,eagerValuesRef:C,groupId:f,layout:x,panelDataArray:C.current.panelDataArray,setLayout:v,panelGroupElement:p.current}),(0,$.useEffect)(()=>{let{panelDataArray:r}=C.current;if(e){if(0===x.length||x.length!==r.length)return;let s=yV[e];null==s&&(s=function(e,r=10){let s=null;return(...i)=>{null!==s&&clearTimeout(s),s=setTimeout(()=>{e(...i)},r)}}(yU,100),yV[e]=s),s(e,[...r],new Map(b.current),x,c)}},[e,x,c]),(0,$.useEffect)(()=>{});let j=(0,$.useCallback)(e=>{let{onLayout:r}=S.current,{layout:s,panelDataArray:i}=C.current;if(e.constraints.collapsible){let n=i.map(e=>e.constraints),{collapsedSize:a=0,panelSize:o,pivotIndices:l}=yJ(i,e,s);if(yj(null!=o,`Panel size not found for panel "${e.id}"`),!yN(o,a)){b.current.set(e.id,o);let c=yR({delta:yX(i,e)===i.length-1?o-a:a-o,initialLayout:s,panelConstraints:n,pivotIndices:l,prevLayout:s,trigger:"imperative-api"});yO(s,c)||(v(c),C.current.layout=c,r&&r(c),yI(i,c,y.current))}}},[]),k=(0,$.useCallback)((e,r)=>{let{onLayout:s}=S.current,{layout:i,panelDataArray:n}=C.current;if(e.constraints.collapsible){let a=n.map(e=>e.constraints),{collapsedSize:o=0,panelSize:l=0,minSize:c=0,pivotIndices:d}=yJ(n,e,i),u=null!=r?r:c;if(yN(l,o)){let r=b.current.get(e.id),o=null!=r&&r>=u?r:u,c=yR({delta:yX(n,e)===n.length-1?l-o:o-l,initialLayout:i,panelConstraints:a,pivotIndices:d,prevLayout:i,trigger:"imperative-api"});yO(i,c)||(v(c),C.current.layout=c,s&&s(c),yI(n,c,y.current))}}},[]),N=(0,$.useCallback)(e=>{let{layout:r,panelDataArray:s}=C.current,{panelSize:i}=yJ(s,e,r);return yj(null!=i,`Panel size not found for panel "${e.id}"`),i},[]),E=(0,$.useCallback)((e,r)=>{let{panelDataArray:s}=C.current,i=yX(s,e);return function({defaultSize:e,dragState:r,layout:s,panelData:i,panelIndex:n,precision:a=3}){let o=s[n];return{flexBasis:0,flexGrow:null==o?void 0!=e?e.toPrecision(a):"1":1===i.length?"1":o.toPrecision(a),flexShrink:1,overflow:"hidden",pointerEvents:null!==r?"none":void 0}}({defaultSize:r,dragState:m,layout:x,panelData:s,panelIndex:i})},[m,x]),D=(0,$.useCallback)(e=>{let{layout:r,panelDataArray:s}=C.current,{collapsedSize:i=0,collapsible:n,panelSize:a}=yJ(s,e,r);return yj(null!=a,`Panel size not found for panel "${e.id}"`),!0===n&&yN(a,i)},[]),R=(0,$.useCallback)(e=>{let{layout:r,panelDataArray:s}=C.current,{collapsedSize:i=0,collapsible:n,panelSize:a}=yJ(s,e,r);return yj(null!=a,`Panel size not found for panel "${e.id}"`),!n||yk(a,i)>0},[]),A=(0,$.useCallback)(e=>{let{panelDataArray:r}=C.current;r.push(e),r.sort((e,r)=>{let s=e.order,i=r.order;return null==s&&null==i?0:null==s?-1:null==i?1:s-i}),C.current.panelDataArrayChanged=!0,_()},[_]);_X(()=>{if(C.current.panelDataArrayChanged){C.current.panelDataArrayChanged=!1;let{autoSaveId:s,onLayout:i,storage:n}=S.current,{layout:a,panelDataArray:o}=C.current,l=null;if(s){var e,r;let i=null!=(r=(null!=(e=yH(s,n))?e:{})[yW(o)])?r:null;i&&(b.current=new Map(Object.entries(i.expandToSizes)),l=i.layout)}null==l&&(l=function({panelDataArray:e}){let r=Array(e.length),s=e.map(e=>e.constraints),i=0,n=100;for(let a=0;a<e.length;a++){let e=s[a];yj(e,`Panel constraints not found for index ${a}`);let{defaultSize:o}=e;null!=o&&(i++,r[a]=o,n-=o)}for(let a=0;a<e.length;a++){let o=s[a];yj(o,`Panel constraints not found for index ${a}`);let{defaultSize:l}=o;if(null!=l)continue;let c=n/(e.length-i);i++,r[a]=c,n-=c}return r}({panelDataArray:o}));let c=yK({layout:l,panelConstraints:o.map(e=>e.constraints)});yB(a,c)||(v(c),C.current.layout=c,i&&i(c),yI(o,c,y.current))}}),_X(()=>{let e=C.current;return()=>{e.layout=[]}},[]);let M=(0,$.useCallback)(e=>{let r=!1,s=p.current;return s&&"rtl"===window.getComputedStyle(s,null).getPropertyValue("direction")&&(r=!0),function(s){var i,n;s.preventDefault();let a=p.current;if(!a)return()=>null;let{direction:o,dragState:l,id:c,keyboardResizeBy:d,onLayout:u}=S.current,{layout:h,panelDataArray:f}=C.current,{initialLayout:m}=null!=l?l:{},g=yF(c,e,a),x=function(e,r,s,i,n,a){if(_8(e)){let r="horizontal"===s,i=0;i=e.shiftKey?100:null!=n?n:10;let a=0;switch(e.key){case"ArrowDown":a=r?0:i;break;case"ArrowLeft":a=r?-i:0;break;case"ArrowRight":a=r?i:0;break;case"ArrowUp":a=r?0:-i;break;case"End":a=100;break;case"Home":a=-100}return a}return null==i?0:function(e,r,s,i,n){let a="horizontal"===s,o=yP(r,n);yj(o,`No resize handle element found for id "${r}"`);let l=o.getAttribute(_V);yj(l,"Resize handle element has no group id attribute");let{initialCursorPosition:c}=i,d=yL(s,e),u=yT(l,n);yj(u,`No group element found for id "${l}"`);let h=u.getBoundingClientRect();return(d-c)/(a?h.width:h.height)*100}(e,r,s,i,a)}(s,e,o,l,d,a),_="horizontal"===o;_&&r&&(x=-x);let b=yR({delta:x,initialLayout:null!=m?m:h,panelConstraints:f.map(e=>e.constraints),pivotIndices:g,prevLayout:h,trigger:_8(s)?"keyboard":"mouse-or-touch"}),j=!yO(h,b);(_7(s)||_9(s))&&w.current!=x&&((w.current=x,j||0===x)?yp.set(e,0):_?(i=x<0?ya:yo,yp.set(e,i)):(n=x<0?yl:yc,yp.set(e,n))),j&&(v(b),C.current.layout=b,u&&u(b),yI(f,b,y.current))}},[]),F=(0,$.useCallback)((e,r)=>{let{onLayout:s}=S.current,{layout:i,panelDataArray:n}=C.current,a=n.map(e=>e.constraints),{panelSize:o,pivotIndices:l}=yJ(n,e,i);yj(null!=o,`Panel size not found for panel "${e.id}"`);let c=yR({delta:yX(n,e)===n.length-1?o-r:r-o,initialLayout:i,panelConstraints:a,pivotIndices:l,prevLayout:i,trigger:"imperative-api"});yO(i,c)||(v(c),C.current.layout=c,s&&s(c),yI(n,c,y.current))},[]),T=(0,$.useCallback)((e,r)=>{let{layout:s,panelDataArray:i}=C.current,{collapsedSize:n=0,collapsible:a}=r,{collapsedSize:o=0,collapsible:l,maxSize:c=100,minSize:d=0}=e.constraints,{panelSize:u}=yJ(i,e,s);null!=u&&(a&&l&&yN(u,n)?yN(n,o)||F(e,o):u<d?F(e,d):u>c&&F(e,c))},[F]),P=(0,$.useCallback)((e,r)=>{let{direction:s}=S.current,{layout:i}=C.current;if(!p.current)return;let n=yP(e,p.current);yj(n,`Drag handle element not found for id "${e}"`);let a=yL(s,r);g({dragHandleId:e,dragHandleRect:n.getBoundingClientRect(),initialCursorPosition:a,initialLayout:i})},[]),B=(0,$.useCallback)(()=>{g(null)},[]),L=(0,$.useCallback)(e=>{let{panelDataArray:r}=C.current,s=yX(r,e);s>=0&&(r.splice(s,1),delete y.current[e.id],C.current.panelDataArrayChanged=!0,_())},[_]),I=(0,$.useMemo)(()=>({collapsePanel:j,direction:i,dragState:m,expandPanel:k,getPanelSize:N,getPanelStyle:E,groupId:f,isPanelCollapsed:D,isPanelExpanded:R,reevaluatePanelConstraints:T,registerPanel:A,registerResizeHandle:M,resizePanel:F,startDragging:P,stopDragging:B,unregisterPanel:L,panelGroupElement:p.current}),[j,m,i,k,N,E,f,D,R,T,A,M,F,P,B,L]);return(0,$.createElement)(_K.Provider,{value:I},(0,$.createElement)(u,{...h,children:r,className:s,id:a,ref:p,style:{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",overflow:"hidden",width:"100%",...d},"data-panel-group":"",[_q]:i,[_V]:f}))}let yG=(0,$.forwardRef)((e,r)=>(0,$.createElement)(yY,{...e,forwardedRef:r}));function yX(e,r){return e.findIndex(e=>e===r||e.id===r.id)}function yJ(e,r,s){let i=yX(e,r),n=i===e.length-1,a=s[i];return{...r.constraints,panelSize:a,pivotIndices:n?[i-1,i]:[i,i+1]}}function yZ({children:e=null,className:r="",disabled:s=!1,hitAreaMargins:i,id:n,onBlur:a,onClick:o,onDragging:l,onFocus:c,onPointerDown:d,onPointerUp:u,style:h={},tabIndex:f=0,tagName:p="div",...m}){var g,x;let v=(0,$.useRef)(null),_=(0,$.useRef)({onClick:o,onDragging:l,onPointerDown:d,onPointerUp:u});(0,$.useEffect)(()=>{_.current.onClick=o,_.current.onDragging=l,_.current.onPointerDown=d,_.current.onPointerUp=u});let y=(0,$.useContext)(_K);if(null===y)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");let{direction:b,groupId:w,registerResizeHandle:S,startDragging:C,stopDragging:j,panelGroupElement:k}=y,N=_0(n),[E,D]=(0,$.useState)("inactive"),[R,A]=(0,$.useState)(!1),[M,F]=(0,$.useState)(null),T=(0,$.useRef)({state:E});_X(()=>{T.current.state=E}),(0,$.useEffect)(()=>{if(s)F(null);else{let e=S(N);F(()=>e)}},[s,N,S]);let P=null!=(g=null==i?void 0:i.coarse)?g:15,B=null!=(x=null==i?void 0:i.fine)?x:5;return(0,$.useEffect)(()=>{if(s||null==M)return;let e=v.current;yj(e,"Element ref not attached");let r=!1;return function(e,r,s,i,n){var a;let{ownerDocument:o}=r,l={direction:s,element:r,hitAreaMargins:i,setResizeHandlerState:n},c=null!=(a=yf.get(o))?a:0;return yf.set(o,c+1),ym.add(l),yS(),function(){var r;yp.delete(e),ym.delete(l);let s=null!=(r=yf.get(o))?r:1;if(yf.set(o,s-1),yS(),1===s&&yf.delete(o),yu.includes(l)){let e=yu.indexOf(l);e>=0&&yu.splice(e,1),yb(),n("up",!0,null)}}}(N,e,b,{coarse:P,fine:B},(e,s,i)=>{if(!s)return void D("inactive");switch(e){case"down":{D("drag"),r=!1,yj(i,'Expected event to be defined for "down" action'),C(N,i);let{onDragging:e,onPointerDown:s}=_.current;null==e||e(!0),null==s||s();break}case"move":{let{state:e}=T.current;r=!0,"drag"!==e&&D("hover"),yj(i,'Expected event to be defined for "move" action'),M(i);break}case"up":{D("hover"),j();let{onClick:e,onDragging:s,onPointerUp:i}=_.current;null==s||s(!1),null==i||i(),r||null==e||e()}}})},[P,b,s,B,S,N,M,C,j]),!function({disabled:e,handleId:r,resizeHandler:s,panelGroupElement:i}){(0,$.useEffect)(()=>{if(e||null==s||null==i)return;let n=yP(r,i);if(null==n)return;let a=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),s(e);break;case"F6":{e.preventDefault();let s=n.getAttribute(_V);yj(s,`No group element found for id "${s}"`);let a=yA(s,i),o=yM(s,r,i);yj(null!==o,`No resize element found for id "${r}"`);let l=e.shiftKey?o>0?o-1:a.length-1:o+1<a.length?o+1:0;a[l].focus()}}};return n.addEventListener("keydown",a),()=>{n.removeEventListener("keydown",a)}},[i,e,r,s])}({disabled:s,handleId:N,resizeHandler:M,panelGroupElement:k}),(0,$.createElement)(p,{...m,children:e,className:r,id:n,onBlur:()=>{A(!1),null==a||a()},onFocus:()=>{A(!0),null==c||c()},ref:v,role:"separator",style:{touchAction:"none",userSelect:"none",...h},tabIndex:f,[_q]:b,[_V]:w,[_Y]:"","data-resize-handle-active":"drag"===E?"pointer":R?"keyboard":void 0,"data-panel-resize-handle-enabled":!s,[_G]:N,"data-resize-handle-state":E})}yY.displayName="PanelGroup",yG.displayName="forwardRef(PanelGroup)",yZ.displayName="PanelResizeHandle";let yQ=({className:e,...r})=>(0,z.jsx)(yG,{className:(0,ey.cn)("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",e),...r}),y0=({withHandle:e,className:r,...s})=>(0,z.jsx)(yZ,{className:(0,ey.cn)("relative flex w-px items-center justify-center bg-border/60 after:absolute after:inset-y-0 after:-left-1 after:-right-1 after:content-[''] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:inset-x-0 data-[panel-group-direction=vertical]:after:-top-1 data-[panel-group-direction=vertical]:after:-bottom-1 data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:right-0 [&[data-resize-handle-active]]:bg-ring",r),...s,children:e&&(0,z.jsx)("div",{className:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border",children:(0,z.jsx)(uF,{className:"h-2.5 w-2.5"})})});function y1({className:e,...r}){return(0,z.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,ey.cn)("group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none","h-9 min-w-0 has-[textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]","has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",e),...r})}let y2=(0,s_.cva)("text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5","block-end":"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"}},defaultVariants:{align:"inline-start"}});function y5({className:e,align:r="inline-start",...s}){return(0,z.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":r,className:(0,ey.cn)(y2({align:r}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...s})}let y3=(0,s_.cva)("text-sm shadow-none flex gap-2 items-center",{variants:{size:{xs:"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",sm:"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function y4({className:e,type:r="button",variant:s="ghost",size:i="xs",...n}){return(0,z.jsx)(W.Button,{type:r,"data-size":i,variant:s,className:(0,ey.cn)(y3({size:i}),e),...n})}function y6({className:e,...r}){return(0,z.jsx)(ro,{"data-slot":"input-group-control",className:(0,ey.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",e),...r})}function y8({className:e,...r}){return(0,z.jsx)(rl,{"data-slot":"input-group-control",className:(0,ey.cn)("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",e),...r})}var y7=/[\\\/_+.#"@\[\(\{&]/,y9=/[\\\/_+.#"@\[\(\{&]/g,be=/[\s-]/,bt=/[\s-]/g;function br(e){return e.toLowerCase().replace(bt," ")}var bs=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let s=sm(`Primitive.${r}`),i=$.forwardRef((e,i)=>{let{asChild:n,...a}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,z.jsx)(n?s:r,{...a,ref:i})});return i.displayName=`Primitive.${r}`,{...e,[r]:i}},{}),bi='[cmdk-group=""]',bn='[cmdk-group-items=""]',ba='[cmdk-item=""]',bo=`${ba}:not([aria-disabled="true"])`,bl="cmdk-item-select",bc="data-value",bd=(e,r,s)=>{var i;return i=e,function e(r,s,i,n,a,o,l){if(o===s.length)return a===r.length?1:.99;var c=`${a},${o}`;if(void 0!==l[c])return l[c];for(var d,u,h,f,p=n.charAt(o),m=i.indexOf(p,a),g=0;m>=0;)(d=e(r,s,i,n,m+1,o+1,l))>g&&(m===a?d*=1:y7.test(r.charAt(m-1))?(d*=.8,(h=r.slice(a,m-1).match(y9))&&a>0&&(d*=Math.pow(.999,h.length))):be.test(r.charAt(m-1))?(d*=.9,(f=r.slice(a,m-1).match(bt))&&a>0&&(d*=Math.pow(.999,f.length))):(d*=.17,a>0&&(d*=Math.pow(.999,m-a))),r.charAt(m)!==s.charAt(o)&&(d*=.9999)),(d<.1&&i.charAt(m-1)===n.charAt(o+1)||n.charAt(o+1)===n.charAt(o)&&i.charAt(m-1)!==n.charAt(o))&&.1*(u=e(r,s,i,n,m+1,o+2,l))>d&&(d=.1*u),d>g&&(g=d),m=i.indexOf(p,m+1);return l[c]=g,g}(i=s&&s.length>0?`${i+" "+s.join(" ")}`:i,r,br(i),br(r),0,0,{})},bu=$.createContext(void 0),bh=$.createContext(void 0),bf=$.createContext(void 0),bp=$.forwardRef((e,r)=>{let s=bC(()=>{var r,s;return{search:"",value:null!=(s=null!=(r=e.value)?r:e.defaultValue)?s:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),i=bC(()=>new Set),n=bC(()=>new Map),a=bC(()=>new Map),o=bC(()=>new Set),l=bw(e),{label:c,children:d,value:u,onValueChange:h,filter:f,shouldFilter:p,loop:m,disablePointerSelection:g=!1,vimBindings:x=!0,...v}=e,_=ek(),y=ek(),b=ek(),w=$.useRef(null),S=bN();bS(()=>{if(void 0!==u){let e=u.trim();s.current.value=e,C.emit()}},[u]),bS(()=>{S(6,R)},[]);let C=$.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>s.current,setState:(e,r,i)=>{var n,a,o,c;if(!Object.is(s.current[e],r)){if(s.current[e]=r,"search"===e)D(),N(),S(1,E);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(b);e?e.focus():null==(n=document.getElementById(_))||n.focus()}if(S(7,()=>{var e;s.current.selectedItemId=null==(e=A())?void 0:e.id,C.emit()}),i||S(5,R),(null==(a=l.current)?void 0:a.value)!==void 0){null==(c=(o=l.current).onValueChange)||c.call(o,null!=r?r:"");return}}C.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),j=$.useMemo(()=>({value:(e,r,i)=>{var n;r!==(null==(n=a.current.get(e))?void 0:n.value)&&(a.current.set(e,{value:r,keywords:i}),s.current.filtered.items.set(e,k(r,i)),S(2,()=>{N(),C.emit()}))},item:(e,r)=>(i.current.add(e),r&&(n.current.has(r)?n.current.get(r).add(e):n.current.set(r,new Set([e]))),S(3,()=>{D(),N(),s.current.value||E(),C.emit()}),()=>{a.current.delete(e),i.current.delete(e),s.current.filtered.items.delete(e);let r=A();S(4,()=>{D(),(null==r?void 0:r.getAttribute("id"))===e&&E(),C.emit()})}),group:e=>(n.current.has(e)||n.current.set(e,new Set),()=>{a.current.delete(e),n.current.delete(e)}),filter:()=>l.current.shouldFilter,label:c||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:_,inputId:b,labelId:y,listInnerRef:w}),[]);function k(e,r){var i,n;let a=null!=(n=null==(i=l.current)?void 0:i.filter)?n:bd;return e?a(e,s.current.search,r):0}function N(){if(!s.current.search||!1===l.current.shouldFilter)return;let e=s.current.filtered.items,r=[];s.current.filtered.groups.forEach(s=>{let i=n.current.get(s),a=0;i.forEach(r=>{a=Math.max(e.get(r),a)}),r.push([s,a])});let i=w.current;M().sort((r,s)=>{var i,n;let a=r.getAttribute("id"),o=s.getAttribute("id");return(null!=(i=e.get(o))?i:0)-(null!=(n=e.get(a))?n:0)}).forEach(e=>{let r=e.closest(bn);r?r.appendChild(e.parentElement===r?e:e.closest(`${bn} > *`)):i.appendChild(e.parentElement===i?e:e.closest(`${bn} > *`))}),r.sort((e,r)=>r[1]-e[1]).forEach(e=>{var r;let s=null==(r=w.current)?void 0:r.querySelector(`${bi}[${bc}="${encodeURIComponent(e[0])}"]`);null==s||s.parentElement.appendChild(s)})}function E(){let e=M().find(e=>"true"!==e.getAttribute("aria-disabled")),r=null==e?void 0:e.getAttribute(bc);C.setState("value",r||void 0)}function D(){var e,r,o,c;if(!s.current.search||!1===l.current.shouldFilter){s.current.filtered.count=i.current.size;return}s.current.filtered.groups=new Set;let d=0;for(let n of i.current){let i=k(null!=(r=null==(e=a.current.get(n))?void 0:e.value)?r:"",null!=(c=null==(o=a.current.get(n))?void 0:o.keywords)?c:[]);s.current.filtered.items.set(n,i),i>0&&d++}for(let[e,r]of n.current)for(let i of r)if(s.current.filtered.items.get(i)>0){s.current.filtered.groups.add(e);break}s.current.filtered.count=d}function R(){var e,r,s;let i=A();i&&((null==(e=i.parentElement)?void 0:e.firstChild)===i&&(null==(s=null==(r=i.closest(bi))?void 0:r.querySelector('[cmdk-group-heading=""]'))||s.scrollIntoView({block:"nearest"})),i.scrollIntoView({block:"nearest"}))}function A(){var e;return null==(e=w.current)?void 0:e.querySelector(`${ba}[aria-selected="true"]`)}function M(){var e;return Array.from((null==(e=w.current)?void 0:e.querySelectorAll(bo))||[])}function F(e){let r=M()[e];r&&C.setState("value",r.getAttribute(bc))}function T(e){var r;let s=A(),i=M(),n=i.findIndex(e=>e===s),a=i[n+e];null!=(r=l.current)&&r.loop&&(a=n+e<0?i[i.length-1]:n+e===i.length?i[0]:i[n+e]),a&&C.setState("value",a.getAttribute(bc))}function P(e){let r=A(),s=null==r?void 0:r.closest(bi),i;for(;s&&!i;)i=null==(s=e>0?function(e,r){let s=e.nextElementSibling;for(;s;){if(s.matches(r))return s;s=s.nextElementSibling}}(s,bi):function(e,r){let s=e.previousElementSibling;for(;s;){if(s.matches(r))return s;s=s.previousElementSibling}}(s,bi))?void 0:s.querySelector(bo);i?C.setState("value",i.getAttribute(bc)):T(e)}let B=()=>F(M().length-1),L=e=>{e.preventDefault(),e.metaKey?B():e.altKey?P(1):T(1)},I=e=>{e.preventDefault(),e.metaKey?F(0):e.altKey?P(-1):T(-1)};return $.createElement(bs.div,{ref:r,tabIndex:-1,...v,"cmdk-root":"",onKeyDown:e=>{var r;null==(r=v.onKeyDown)||r.call(v,e);let s=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||s))switch(e.key){case"n":case"j":x&&e.ctrlKey&&L(e);break;case"ArrowDown":L(e);break;case"p":case"k":x&&e.ctrlKey&&I(e);break;case"ArrowUp":I(e);break;case"Home":e.preventDefault(),F(0);break;case"End":e.preventDefault(),B();break;case"Enter":{e.preventDefault();let r=A();if(r){let e=new Event(bl);r.dispatchEvent(e)}}}}},$.createElement("label",{"cmdk-label":"",htmlFor:j.inputId,id:j.labelId,style:bD},c),bE(e,e=>$.createElement(bh.Provider,{value:C},$.createElement(bu.Provider,{value:j},e))))}),bm=$.forwardRef((e,r)=>{var s,i;let n=ek(),a=$.useRef(null),o=$.useContext(bf),l=$.useContext(bu),c=bw(e),d=null!=(i=null==(s=c.current)?void 0:s.forceMount)?i:null==o?void 0:o.forceMount;bS(()=>{if(!d)return l.item(n,null==o?void 0:o.id)},[d]);let u=bk(n,a,[e.value,e.children,a],e.keywords),h=$.useContext(bh),f=bj(e=>e.value&&e.value===u.current),p=bj(e=>!!d||!1===l.filter()||!e.search||e.filtered.items.get(n)>0);function m(){var e,r;g(),null==(r=(e=c.current).onSelect)||r.call(e,u.current)}function g(){h.setState("value",u.current,!0)}if($.useEffect(()=>{let r=a.current;if(!(!r||e.disabled))return r.addEventListener(bl,m),()=>r.removeEventListener(bl,m)},[p,e.onSelect,e.disabled]),!p)return null;let{disabled:x,value:v,onSelect:_,forceMount:y,keywords:b,...w}=e;return $.createElement(bs.div,{ref:(0,U.composeRefs)(a,r),...w,id:n,"cmdk-item":"",role:"option","aria-disabled":!!x,"aria-selected":!!f,"data-disabled":!!x,"data-selected":!!f,onPointerMove:x||l.getDisablePointerSelection()?void 0:g,onClick:x?void 0:m},e.children)}),bg=$.forwardRef((e,r)=>{let{heading:s,children:i,forceMount:n,...a}=e,o=ek(),l=$.useRef(null),c=$.useRef(null),d=ek(),u=$.useContext(bu),h=bj(e=>!!n||!1===u.filter()||!e.search||e.filtered.groups.has(o));bS(()=>u.group(o),[]),bk(o,l,[e.value,e.heading,c]);let f=$.useMemo(()=>({id:o,forceMount:n}),[n]);return $.createElement(bs.div,{ref:(0,U.composeRefs)(l,r),...a,"cmdk-group":"",role:"presentation",hidden:!h||void 0},s&&$.createElement("div",{ref:c,"cmdk-group-heading":"","aria-hidden":!0,id:d},s),bE(e,e=>$.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":s?d:void 0},$.createElement(bf.Provider,{value:f},e))))}),bx=$.forwardRef((e,r)=>{let{alwaysRender:s,...i}=e,n=$.useRef(null),a=bj(e=>!e.search);return s||a?$.createElement(bs.div,{ref:(0,U.composeRefs)(n,r),...i,"cmdk-separator":"",role:"separator"}):null}),bv=$.forwardRef((e,r)=>{let{onValueChange:s,...i}=e,n=null!=e.value,a=$.useContext(bh),o=bj(e=>e.search),l=bj(e=>e.selectedItemId),c=$.useContext(bu);return $.useEffect(()=>{null!=e.value&&a.setState("search",e.value)},[e.value]),$.createElement(bs.input,{ref:r,...i,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":l,id:c.inputId,type:"text",value:n?e.value:o,onChange:e=>{n||a.setState("search",e.target.value),null==s||s(e.target.value)}})}),b_=$.forwardRef((e,r)=>{let{children:s,label:i="Suggestions",...n}=e,a=$.useRef(null),o=$.useRef(null),l=bj(e=>e.selectedItemId),c=$.useContext(bu);return $.useEffect(()=>{if(o.current&&a.current){let e=o.current,r=a.current,s,i=new ResizeObserver(()=>{s=requestAnimationFrame(()=>{let s=e.offsetHeight;r.style.setProperty("--cmdk-list-height",s.toFixed(1)+"px")})});return i.observe(e),()=>{cancelAnimationFrame(s),i.unobserve(e)}}},[]),$.createElement(bs.div,{ref:(0,U.composeRefs)(a,r),...n,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":i,id:c.listId},bE(e,e=>$.createElement("div",{ref:(0,U.composeRefs)(o,c.listInnerRef),"cmdk-list-sizer":""},e)))}),by=$.forwardRef((e,r)=>{let{open:s,onOpenChange:i,overlayClassName:n,contentClassName:a,container:o,...l}=e;return $.createElement(tF,{open:s,onOpenChange:i},$.createElement(tO,{container:o},$.createElement(t$,{"cmdk-overlay":"",className:n}),$.createElement(tK,{"aria-label":e.label,"cmdk-dialog":"",className:a},$.createElement(bp,{ref:r,...l}))))}),bb=Object.assign(bp,{List:b_,Item:bm,Input:bv,Group:bg,Separator:bx,Dialog:by,Empty:$.forwardRef((e,r)=>bj(e=>0===e.filtered.count)?$.createElement(bs.div,{ref:r,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:$.forwardRef((e,r)=>{let{progress:s,children:i,label:n="Loading...",...a}=e;return $.createElement(bs.div,{ref:r,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":s,"aria-valuemin":0,"aria-valuemax":100,"aria-label":n},bE(e,e=>$.createElement("div",{"aria-hidden":!0},e)))})});function bw(e){let r=$.useRef(e);return bS(()=>{r.current=e}),r}var bS="undefined"==typeof window?$.useEffect:$.useLayoutEffect;function bC(e){let r=$.useRef();return void 0===r.current&&(r.current=e()),r}function bj(e){let r=$.useContext(bh),s=()=>e(r.snapshot());return $.useSyncExternalStore(r.subscribe,s,s)}function bk(e,r,s,i=[]){let n=$.useRef(),a=$.useContext(bu);return bS(()=>{var o;let l=(()=>{var e;for(let r of s){if("string"==typeof r)return r.trim();if("object"==typeof r&&"current"in r)return r.current?null==(e=r.current.textContent)?void 0:e.trim():n.current}})(),c=i.map(e=>e.trim());a.value(e,l,c),null==(o=r.current)||o.setAttribute(bc,l),n.current=l}),n}var bN=()=>{let[e,r]=$.useState(),s=bC(()=>new Map);return bS(()=>{s.current.forEach(e=>e()),s.current=new Map},[e]),(e,i)=>{s.current.set(e,i),r({})}};function bE({asChild:e,children:r},s){let i;return e&&$.isValidElement(r)?$.cloneElement("function"==typeof(i=r.type)?i(r.props):"render"in i?i.render(r.props):r,{ref:r.ref},s(r.props.children)):s(r)}var bD={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function bR({className:e,...r}){return(0,z.jsx)(bb,{"data-slot":"command",className:(0,ey.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...r})}function bA({title:e="Command Palette",description:r="Search for a command to run...",children:s,className:i,showCloseButton:n=!0,shouldFilter:a,...o}){return(0,z.jsxs)(t7,{...o,children:[(0,z.jsxs)(rs,{className:"sr-only",children:[(0,z.jsx)(rn,{children:e}),(0,z.jsx)(ra,{children:r})]}),(0,z.jsx)(rr,{className:(0,ey.cn)("overflow-hidden p-0",i),showCloseButton:n,children:(0,z.jsx)(bR,{shouldFilter:a,className:"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:s})})]})}function bM({className:e,...r}){return(0,z.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,z.jsx)(dt,{className:"size-4 shrink-0 opacity-50"}),(0,z.jsx)(bb.Input,{"data-slot":"command-input",className:(0,ey.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...r})]})}function bF({className:e,...r}){return(0,z.jsx)(bb.List,{"data-slot":"command-list",className:(0,ey.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...r})}function bT({...e}){return(0,z.jsx)(bb.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function bP({className:e,...r}){return(0,z.jsx)(bb.Group,{"data-slot":"command-group",className:(0,ey.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...r})}function bB({className:e,...r}){return(0,z.jsx)(bb.Item,{"data-slot":"command-item",className:(0,ey.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r})}let bL=(0,ew.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]),bI=(0,ew.default)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),bO=(0,ew.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),bz=new Set(["ts","tsx","js","jsx","py","rb","go","rs","java","c","cpp","h","css","scss","html","vue","svelte","php","swift","kt","sh","bash","yaml","yml","toml","json","xml","sql","graphql","proto"]),b$=new Set(["md","txt","log","csv","env","gitignore","dockerignore","editorconfig"]);function bW(e){return Array.from(e.dataTransfer.types).includes("Files")}function bH(e){let r=e.dataTransfer.items;if(r&&r.length>0&&"function"==typeof r[0].webkitGetAsEntry){let e=[];for(let s of Array.from(r)){if("file"!==s.kind)continue;let r=s.webkitGetAsEntry();if(r?.isDirectory)continue;let i=s.getAsFile();i&&e.push(i)}return e}return Array.from(e.dataTransfer.files)}function bU({path:e}){let[r,s]=(0,$.useState)(!1),i=(0,$.useCallback)(r=>{r.stopPropagation(),navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),1500)},[e]);return(0,z.jsx)("button",{onClick:i,className:"p-0.5 rounded hover:bg-muted-foreground/20 transition-colors",title:`Copy path: ${e}`,children:r?(0,z.jsx)(rf.Check,{className:"h-3 w-3 text-green-500"}):(0,z.jsx)(ul.Copy,{className:"h-3 w-3 text-muted-foreground"})})}function bK({entryPath:e,type:r,deleting:s,onRequestDelete:i}){return s?(0,z.jsx)(rk,{className:"h-3 w-3 animate-spin text-muted-foreground"}):(0,z.jsx)("button",{onClick:s=>{s.stopPropagation(),i(e,r)},className:"p-0.5 rounded hover:bg-destructive/20 transition-colors",title:`Delete ${e}`,"aria-label":`Delete ${e}`,children:(0,z.jsx)(rc,{className:"h-3 w-3 text-muted-foreground hover:text-destructive"})})}function bq({entry:e,path:r,depth:s,expandedDirs:i,directoryContents:n,loadingDirs:a,selectedFile:o,uploadingDirs:l,dragOverPath:c,deletingPaths:d,onToggleDirectory:u,onSelectFile:h,onUploadFiles:f,onSetDragOverPath:p,onRequestDelete:m}){var g,x,v;let _,y,b,w,S,C=i.has(r),j=a.has(r),k=n.get(r),N=e.name.startsWith(".");if("directory"===e.type){let g=C?r_:oi,x=c===r,v=l.has(r),_=d.has(r);return(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:(0,ey.cn)("group flex items-center w-full px-2 py-2 rounded-sm transition-colors cursor-pointer",x?"bg-primary/15 outline-2 -outline-offset-2 outline-dashed outline-primary/60":"hover:bg-accent"),style:{paddingLeft:`${16*s+8}px`},onClick:()=>u(r),onDragOver:e=>{bW(e)&&(e.preventDefault(),e.stopPropagation(),p(r))},onDrop:e=>{if(!bW(e))return;e.preventDefault(),e.stopPropagation(),p(null);let s=bH(e);s.length&&f(r,s)},children:[(0,z.jsxs)("div",{className:"flex items-center gap-1 min-w-0 flex-1",children:[v||j?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground"}):(0,z.jsx)(C?sw:af,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,z.jsx)(g,{className:(0,ey.cn)("h-4 w-4 shrink-0 text-blue-500",N&&"opacity-60")}),(0,z.jsx)("span",{className:(0,ey.cn)("truncate",N&&"text-muted-foreground"),children:e.name})]}),(0,z.jsxs)("div",{className:(0,ey.cn)("shrink-0 ml-1 items-center gap-1",_?"flex":"hidden group-hover:flex"),children:[(0,z.jsx)(bU,{path:r}),(0,z.jsx)(bK,{entryPath:r,type:"directory",deleting:_,onRequestDelete:m})]})]}),C&&k&&(0,z.jsx)("div",{children:k.map(e=>{let g=r?`${r}/${e.name}`:e.name;return(0,z.jsx)(bq,{entry:e,path:g,depth:s+1,expandedDirs:i,directoryContents:n,loadingDirs:a,selectedFile:o,uploadingDirs:l,dragOverPath:c,deletingPaths:d,onToggleDirectory:u,onSelectFile:h,onUploadFiles:f,onSetDragOverPath:p,onRequestDelete:m},g)})})]})}let E=(g=e.name,_=g.split(".").pop()?.toLowerCase()??"",bz.has(_)?bI:b$.has(_)?bO:bL),D=o===r,R=r.includes("/")?r.slice(0,r.lastIndexOf("/")):"",A=d.has(r);return(0,z.jsxs)("div",{className:(0,ey.cn)("group flex items-center w-full px-2 py-2 rounded-sm transition-colors cursor-pointer",D?"bg-accent text-accent-foreground":"hover:bg-accent/50"),style:{paddingLeft:`${16*s+8+18}px`},onClick:()=>h(r),onDragOver:e=>{bW(e)&&(e.preventDefault(),e.stopPropagation(),p(R))},onDrop:e=>{if(!bW(e))return;e.preventDefault(),e.stopPropagation(),p(null);let r=bH(e);r.length&&f(R,r)},children:[(0,z.jsxs)("div",{className:"flex items-center gap-1 min-w-0 flex-1",children:[(0,z.jsx)(E,{className:(0,ey.cn)("h-4 w-4 shrink-0 text-muted-foreground",N&&"opacity-60")}),(0,z.jsx)("span",{className:(0,ey.cn)("truncate",N&&"text-muted-foreground"),children:e.name})]}),(0,z.jsxs)("div",{className:"shrink-0 flex items-center gap-2 ml-1",children:[(0,z.jsx)("span",{className:"text-[11px] text-muted-foreground/70 group-hover:hidden whitespace-nowrap w-[52px] text-right tabular-nums",children:e.mtime&&(x=e.mtime,y=Date.now(),S=Math.floor((w=Math.floor((b=Math.floor(Math.floor((y-new Date(x).getTime())/1e3)/60))/60))/24),b<1?"just now":b<60?`${b}m ago`:w<24?`${w}h ago`:S<30?`${S}d ago`:new Date(x).toLocaleDateString(void 0,{month:"short",day:"numeric"}))}),(0,z.jsx)("span",{className:"text-[11px] text-muted-foreground/70 group-hover:hidden whitespace-nowrap w-[52px] text-right tabular-nums",children:null!=e.size&&((v=e.size)<1024?`${v} B`:v<1048576?`${(v/1024).toFixed(1)} KB`:`${(v/1048576).toFixed(1)} MB`)}),(0,z.jsxs)("div",{className:(0,ey.cn)("items-center gap-1",A?"flex":"hidden group-hover:flex"),children:[(0,z.jsx)(bU,{path:r}),(0,z.jsx)(bK,{entryPath:r,type:"file",deleting:A,onRequestDelete:m})]})]})]})}function bV({entries:e,expandedDirs:r,directoryContents:s,loadingDirs:i,selectedFile:n,uploadingDirs:a,rootLoading:o,deletingPaths:l,onToggleDirectory:c,onSelectFile:d,onUploadFiles:u,onDeleteEntry:h}){let[f,p]=(0,$.useState)(null),[m,g]=(0,$.useState)(null),x=""===f,v=a.has(""),_=(0,$.useCallback)((e,r)=>{g({path:e,type:r})},[]),y=m?m.path.includes("/")?m.path.slice(m.path.lastIndexOf("/")+1):m.path:"";return(0,z.jsxs)("div",{className:(0,ey.cn)("h-full transition-colors",x&&"bg-accent/30 outline-2 -outline-offset-2 outline-dashed outline-primary/50"),style:{fontSize:"var(--files-tree-font-size, 14px)"},onDragOver:e=>{bW(e)&&(e.preventDefault(),p(""))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},onDrop:e=>{if(!bW(e))return;e.preventDefault(),p(null);let r=bH(e);r.length&&u("",r)},children:[(0,z.jsx)(or,{className:"h-full",children:(0,z.jsxs)("div",{className:"py-1",children:[v&&(0,z.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1 text-xs text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-3.5 w-3.5 animate-spin"}),"Uploading…"]}),o&&0===e.length?(0,z.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:"Loading files..."}):0===e.length?(0,z.jsx)("div",{className:"flex items-center justify-center py-8 text-muted-foreground text-sm",children:x?"Drop files to upload":"No files found. Drop files here to upload."}):e.map(e=>{let o=e.name;return(0,z.jsx)(bq,{entry:e,path:o,depth:0,expandedDirs:r,directoryContents:s,loadingDirs:i,selectedFile:n,uploadingDirs:a,dragOverPath:f,deletingPaths:l,onToggleDirectory:c,onSelectFile:d,onUploadFiles:u,onSetDragOverPath:p,onRequestDelete:_},o)})]})}),(0,z.jsx)(lU,{open:null!==m,onOpenChange:e=>{e||g(null)},children:(0,z.jsxs)(lV,{children:[(0,z.jsxs)(lY,{children:[(0,z.jsxs)(lX,{children:["Delete ",m?.type==="directory"?"folder":"file","?"]}),(0,z.jsx)(lJ,{children:m?.type==="directory"?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"font-medium text-foreground",children:y})," and all its contents will be permanently deleted. This can't be undone."]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"font-medium text-foreground",children:y})," will be permanently deleted. This can't be undone."]})})]}),(0,z.jsxs)(lG,{children:[(0,z.jsx)(lQ,{children:"Cancel"}),(0,z.jsx)(lZ,{className:(0,ey.cn)((0,W.buttonVariants)({variant:"destructive"}),"border-transparent"),onClick:()=>{m&&h(m.path,m.type)},children:"Delete"})]})]})})]})}let bY=(0,ew.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),bG=(0,ew.default)("file-exclamation-point",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),bX=(0,ew.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),bJ=(0,ew.default)("list-collapse",[["path",{d:"M10 5h11",key:"1hkqpe"}],["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 19h11",key:"14g2nv"}],["path",{d:"m3 10 3-3-3-3",key:"i7pm08"}],["path",{d:"m3 20 3-3-3-3",key:"20gx1n"}]]),bZ=(0,ew.default)("list-tree",[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]]),bQ=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,b0=Object.hasOwnProperty;var b1=e.i(216920);let b2={},b5=new class{constructor(){this.occurrences,this.reset()}slug(e,r){var s,i;let n=(s=e,i=!0===r,"string"!=typeof s?"":(i||(s=s.toLowerCase()),s.replace(bQ,"").replace(/ /g,"-"))),a=n;for(;b0.call(this.occurrences,n);)this.occurrences[a]++,n=a+"-"+this.occurrences[a];return this.occurrences[n]=0,n}reset(){this.occurrences=Object.create(null)}};function b3(e){let r=(e||b2).prefix||"";return function(e){b5.reset(),(0,b1.visit)(e,"element",function(e){let s,i;((i=2===(s="element"===e.type?e.tagName.toLowerCase():"").length&&104===s.charCodeAt(0)?s.charCodeAt(1):0)>48&&i<55?i-48:void 0)&&!e.properties.id&&(e.properties.id=r+b5.slug("children"in e?function e(r){let s=-1,i=[];for(;++s<r.children.length;){var n;i[s]="text"===(n=r.children[s]).type?n.value:"children"in n?e(n):""}return i.join("")}(e):"value"in e?e.value:""))})}}var b4=oM,H=H,b6=e.i(829692),b6=b6,b8=e.i(615742);let b7=(0,$.createContext)({code:""}),b9={name:"line-data",line(e,r){e.properties["data-line"]=String(r)}},we={name:"line-numbers",line(e,r){e.children.unshift({type:"element",tagName:"span",properties:{className:["inline-block","min-w-10","mr-2","text-right","select-none","text-muted-foreground"]},children:[{type:"text",value:String(r)}]})}};async function wt(e,r,s=!1,i){let n=[b9];return i&&i.size>0&&n.push({name:"fold-gutter",line(e,r){e.children.unshift({type:"element",tagName:"span",properties:i.has(r)?{className:["code-fold-toggle"],"data-fold-start":String(r)}:{className:["code-fold-spacer"]},children:[]})}}),s&&n.push(we),await Promise.all([(0,b8.codeToHtml)(e,{lang:r,theme:"one-light",transformers:n}),(0,b8.codeToHtml)(e,{lang:r,theme:"one-dark-pro",transformers:n})])}let wr=(0,$.forwardRef)(function({code:e,language:r,showLineNumbers:s=!1,scrollToLine:i,scrollKey:n,foldable:a=!1,className:o,children:l,...c},d){let[u,h]=(0,$.useState)(""),[f,p]=(0,$.useState)(""),m=(0,$.useRef)(!1),g=(0,$.useRef)(null),x=(0,$.useMemo)(()=>a?function(e,r={}){return function(...e){let r=new Map;for(let s of e.flat())!(s.endLine<=s.startLine)&&(r.has(s.startLine)||r.set(s.startLine,s));let s=[...r.values()].sort((e,r)=>e.startLine-r.startLine||r.endLine-e.endLine),i=[],n=[];for(let e of s){for(;n.length&&n[n.length-1].endLine<e.startLine;)n.pop();let r=n[n.length-1];r&&e.endLine>r.endLine||(i.push(e),n.push(e))}return i}((r.tokenIndex,[]),function(e){let r=e.split("\n"),s=[],i=[],n=0,a=e=>{n>e.line&&s.push({startLine:e.line+1,endLine:n+1})};for(let e=0;e<r.length;e++){let s=function(e){let r=e.match(/^[ \t]*/),s=r?r[0].length:0;return s===e.length?null:s}(r[e]);if(null!==s){for(;i.length&&i[i.length-1].indent>=s;)a(i.pop());i.push({indent:s,line:e}),n=e}}for(;i.length;)a(i.pop());return s}(e))}(e):[],[a,e]),v=(0,$.useMemo)(()=>new Set(x.map(e=>e.startLine)),[x]),[_,y]=(0,$.useState)(new Set),[b,w]=(0,$.useState)(e),[S,C]=(0,$.useState)({line:i,key:n});if((0,$.useImperativeHandle)(d,()=>({foldAll:()=>y(new Set(x.map(e=>e.startLine))),expandAll:()=>y(new Set)}),[x]),(0,$.useEffect)(()=>(wt(e,r,s,v).then(([e,r])=>{m.current||(h(e),p(r),m.current=!0)}),()=>{m.current=!1}),[e,r,s,v]),(0,$.useEffect)(()=>{let e=g.current;if(!e)return;let r=new Map(x.map(e=>[e.startLine,e])),s=new Set;for(let e of _){let i=r.get(e);if(i)for(let e=i.startLine+1;e<=i.endLine;e++)s.add(e)}for(let r of e.querySelectorAll("[data-line]")){let e=Number(r.getAttribute("data-line"));r.style.display=s.has(e)?"none":"",r.classList.toggle("code-line-collapsed",_.has(e))}},[_,x,u,f]),(0,$.useEffect)(()=>{if(!a)return;let e=g.current;if(!e)return;let r=e=>{let r=e.target?.closest?.("[data-fold-start]");if(!r)return;e.stopPropagation(),e.preventDefault();let s=Number(r.getAttribute("data-fold-start"));y(e=>{let r=new Set(e);return r.has(s)?r.delete(s):r.add(s),r})};return e.addEventListener("click",r),()=>e.removeEventListener("click",r)},[a]),(0,$.useEffect)(()=>{if(null==i)return;let e=g.current;if(!e||!u&&!f)return;let r=Array.from(e.querySelectorAll(`[data-line="${i}"]`));if(0===r.length)return;let s=r.find(e=>null!==e.offsetParent)??r[0],n=requestAnimationFrame(()=>{s.scrollIntoView({block:"center",behavior:"auto"}),r.forEach(e=>e.classList.add("code-line-highlight"))}),a=window.setTimeout(()=>r.forEach(e=>e.classList.remove("code-line-highlight")),1600);return()=>{cancelAnimationFrame(n),window.clearTimeout(a),r.forEach(e=>e.classList.remove("code-line-highlight"))}},[i,n,u,f]),e!==b&&(w(e),y(new Set)),(S.line!==i||S.key!==n)&&(C({line:i,key:n}),null!=i&&_.size>0)){let e=!1,r=new Set(_);for(let s of x)r.has(s.startLine)&&i>s.startLine&&i<=s.endLine&&(r.delete(s.startLine),e=!0);e&&y(r)}return(0,z.jsx)(b7.Provider,{value:{code:e},children:(0,z.jsx)("div",{ref:g,className:(0,ey.cn)("group relative w-full overflow-hidden rounded-md border bg-background text-foreground",o),...c,children:(0,z.jsxs)("div",{className:"relative",children:[(0,z.jsx)("div",{className:"overflow-auto dark:hidden [&>pre]:m-0 [&>pre]:bg-background! [&>pre]:p-4 [&>pre]:text-foreground! [&>pre]:text-sm [&_code]:grid [&_code]:font-mono [&_code]:text-sm",dangerouslySetInnerHTML:{__html:u}}),(0,z.jsx)("div",{className:"hidden overflow-auto dark:block [&>pre]:m-0 [&>pre]:bg-background! [&>pre]:p-4 [&>pre]:text-foreground! [&>pre]:text-sm [&_code]:grid [&_code]:font-mono [&_code]:text-sm",dangerouslySetInnerHTML:{__html:f}}),l&&(0,z.jsx)("div",{className:"absolute top-2 right-2 flex items-center gap-2",children:l})]})})})}),ws=({onCopy:e,onError:r,timeout:s=2e3,children:i,className:n,...a})=>{let[o,l]=(0,$.useState)(!1),{code:c}=(0,$.useContext)(b7),d=async()=>{if(!navigator?.clipboard?.writeText)return void r?.(Error("Clipboard API not available"));try{await navigator.clipboard.writeText(c),l(!0),e?.(),setTimeout(()=>l(!1),s)}catch(e){r?.(e)}},u=o?H.default:b6.default;return(0,z.jsx)(W.Button,{className:(0,ey.cn)("shrink-0",n),onClick:d,size:"icon",variant:"ghost",...a,children:i??(0,z.jsx)(u,{size:14})})};var wi="horizontal",wn=["horizontal","vertical"],wa=$.forwardRef((e,r)=>{var s;let{decorative:i,orientation:n=wi,...a}=e,o=(s=n,wn.includes(s))?n:wi;return(0,z.jsx)(er.div,{"data-orientation":o,...i?{role:"none"}:{"aria-orientation":"vertical"===o?o:void 0,role:"separator"},...a,ref:r})});wa.displayName="Separator",e.s(["Root",()=>wa,"Separator",()=>wa],691102),e.i(691102),(0,s_.cva)("flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"}},defaultVariants:{orientation:"horizontal"}}),(0,ew.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var oF=oM;let wo=({className:e,from:r,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("group flex w-full max-w-[95%] flex-col gap-2","user"===r?"is-user ml-auto justify-end":"is-assistant",e),...s}),wl=({children:e,className:r,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("is-user:dark flex w-fit max-w-full min-w-0 flex-col gap-2 overflow-hidden text-sm","group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground","group-[.is-assistant]:text-foreground",r),...s,children:e}),wc=(0,$.memo)(({className:e,...r})=>(0,z.jsx)(oF.i,{className:(0,ey.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",e),...r}),(e,r)=>e.children===r.children);function wd({className:e,...r}){return(0,z.jsx)("div",{"data-slot":"skeleton",className:(0,ey.cn)("bg-accent animate-pulse rounded-md",e),...r})}function wu({projectId:e,symbol:r,branch:s,target:i,currentFile:n,anchor:a,onJump:o,onClose:l}){let[c,d]=(0,$.useState)(!0),[u,h]=(0,$.useState)([]),[f,p]=(0,$.useState)(!1),m=(0,$.useRef)(null);(0,$.useEffect)(()=>{let n=!0;return d(!0),rv.api.searchSymbol(e,r,s,i).then(e=>{n&&(h(e.hits),p(e.truncated))}).catch(()=>{n&&h([])}).finally(()=>{n&&d(!1)}),()=>{n=!1}},[e,r,s,i]),(0,$.useEffect)(()=>{let e=e=>{e.detail>=2||m.current&&!m.current.contains(e.target)&&l()},s=e=>{if("Escape"===e.key)return void l();if((e.metaKey||e.ctrlKey)&&("c"===e.key||"C"===e.key)){let s=window.getSelection();if(s&&s.rangeCount>0&&!s.isCollapsed)return;e.preventDefault(),navigator.clipboard?.writeText(r)}};return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s)}},[l,r]);let g=(e,r)=>Number(r.file===n)-Number(e.file===n),x=u.filter(e=>"definition"===e.kind).sort(g),v=u.filter(e=>"reference"===e.kind).sort(g),_=Math.max(8,Math.min(a.x,window.innerWidth-440-8)),y=window.innerHeight-8-(a.y+18),b=a.y-18-8,w=y>=340||y>=b,S=Math.max(120,Math.min(340,w?y:b)),C=w?{top:a.y+18}:{bottom:window.innerHeight-(a.y-18)},j=({hit:e})=>(0,z.jsxs)("button",{type:"button",onClick:()=>{o(e.file,e.line),l()},className:"flex w-full flex-col items-start gap-0.5 rounded px-2 py-1.5 text-left hover:bg-accent",children:[(0,z.jsxs)("span",{className:"flex w-full items-baseline justify-between gap-2",children:[(0,z.jsxs)("span",{className:"truncate font-mono text-xs",children:[e.file.split("/").pop(),(0,z.jsxs)("span",{className:"text-muted-foreground",children:[":",e.line]})]}),e.file===n&&(0,z.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:"this file"})]}),(0,z.jsx)("code",{className:"w-full truncate text-xs text-muted-foreground",children:e.text.trim()})]}),k=({title:e,children:r})=>(0,z.jsxs)("div",{className:"mb-1",children:[(0,z.jsx)("div",{className:"px-2 py-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground",children:e}),r]});return(0,ee.createPortal)((0,z.jsxs)("div",{ref:m,style:{left:_,...C,width:440,maxHeight:S},className:"fixed z-50 flex flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-lg select-none",children:[(0,z.jsx)("div",{className:"border-b px-3 py-1.5 text-xs font-medium",children:(0,z.jsx)("span",{className:"font-mono",children:r})}),(0,z.jsx)("div",{className:"flex-1 overflow-auto p-1",children:c?(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"})," Searching…"]}):0===u.length?(0,z.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"No results."}):(0,z.jsxs)(z.Fragment,{children:[x.length>0&&(0,z.jsx)(k,{title:`Definitions (${x.length})`,children:x.map((e,r)=>(0,z.jsx)(j,{hit:e},`d-${r}`))}),v.length>0&&(0,z.jsx)(k,{title:`References (${v.length})`,children:v.map((e,r)=>(0,z.jsx)(j,{hit:e},`r-${r}`))}),f&&(0,z.jsx)("div",{className:"px-2 py-1.5 text-[11px] text-muted-foreground",children:"Showing first matches — results truncated."})]})})]}),document.body)}wc.displayName="MessageResponse";let wh=(0,ew.default)("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]);function wf({projectId:e,filePath:r,branch:s,target:i,onDownload:n}){let[a,o]=(0,$.useState)(null),[l,c]=(0,$.useState)(!1);return((0,$.useEffect)(()=>{let n=null,a=!1;return rv.api.getFileBlob(e,r,s,i).then(e=>{a||o(n=URL.createObjectURL(e))}).catch(()=>{a||c(!0)}),()=>{a=!0,n&&URL.revokeObjectURL(n)}},[e,r,s,i]),l)?(0,z.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-muted-foreground",children:[(0,z.jsx)(wh,{className:"h-10 w-10"}),(0,z.jsx)("p",{className:"text-sm",children:"Couldn't load image"}),(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:n,children:[(0,z.jsx)(bY,{className:"h-4 w-4 mr-2"}),"Download"]})]}):a?(0,z.jsx)("div",{className:"flex items-center justify-center h-full p-4 bg-muted/30",children:(0,z.jsx)("img",{src:a,alt:r.split("/").pop()??"image",className:"max-w-full max-h-full object-contain",onError:()=>c(!0)})}):(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,z.jsx)(rk,{className:"h-6 w-6 animate-spin"})})}async function wp(e,r){let s=await (0,b8.codeToTokensBase)(e,{lang:r,theme:"one-light",includeExplanation:"scopeName"}),i=new Map;return s.forEach((e,r)=>{let s=0,n=[];for(let r of e){let e=(r.explanation??[]).flatMap(e=>e.scopes.map(e=>e.scopeName)),i=s+r.content.length;n.push({start:s,end:i,kind:e.some(e=>e.startsWith("comment"))?"comment":e.some(e=>e.startsWith("string")||e.startsWith("constant.character"))?"string":e.some(e=>e.startsWith("keyword")||e.startsWith("storage")||e.startsWith("constant.language")||e.startsWith("variable.language"))?"keyword":"code"}),s=i}i.set(r+1,n)}),i}let wm=new Set(["png","jpg","jpeg","gif","webp","bmp","ico","avif","svg"]);function wg(e){let r=e.split("/").pop()?.split(".").pop()?.toLowerCase()??"";return wm.has(r)}let wx=/^[A-Za-z_$][A-Za-z0-9_$]*$/,wv="symbol-nav";function w_(e,r,s){let i=document.createRange();return i.selectNodeContents(e),i.setEnd(r,s),i.toString().length}function wy(e,r){let s,i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0;for(;s=i.nextNode();){let e=(s.textContent??"").length;if(r<=n+e)return{node:s,offset:r-n};n+=e}return null}function wb(e){let r=Array.from(document.querySelectorAll(`[data-line="${CSS.escape(e.line)}"]`)),s=r.find(e=>null!==e.offsetParent)??r[0];if(!s)return null;let i=wy(s,e.start),n=wy(s,e.end);if(!i||!n)return null;let a=document.createRange();return a.setStart(i.node,i.offset),a.setEnd(n.node,n.offset),a}let ww=/[A-Za-z0-9_$]/;function wS(e,r,s){let i=document,n=null,a=0;if(i.caretRangeFromPoint){let s=i.caretRangeFromPoint(e,r);s&&(n=s.startContainer,a=s.startOffset)}else if(i.caretPositionFromPoint){let s=i.caretPositionFromPoint(e,r);s&&(n=s.offsetNode,a=s.offset)}if(!n||n.nodeType!==Node.TEXT_NODE)return null;let o=n.textContent??"",l=a,c=a;for(;l>0&&ww.test(o[l-1]);)l--;for(;c<o.length&&ww.test(o[c]);)c++;if(l>=c)return null;let d=o.slice(l,c);if(!wx.test(d))return null;let u=document.createRange();u.setStart(n,l),u.setEnd(n,c);let h=function(e){let r=e.startContainer.nodeType===Node.ELEMENT_NODE?e.startContainer:e.startContainer.parentElement,s=r?.closest("[data-line]");if(!s||!s.contains(e.endContainer))return null;let i=s.getAttribute("data-line");if(null===i)return null;let n=w_(s,e.startContainer,e.startOffset),a=w_(s,e.endContainer,e.endOffset);return n>=a?null:{line:i,start:n,end:a}}(u);if(!h)return null;if(s){let e=h.start-h.line.length,r=function(e,r,s){let i=e.get(r);if(!i)return null;for(let e of i)if(s>=e.start&&s<e.end)return e.kind;return null}(s,Number(h.line),e);if(r&&"code"!==r)return null}return{word:d,anchor:h}}function wC(){return"undefined"!=typeof CSS&&"highlights"in CSS&&"undefined"!=typeof Highlight}let wj=!1;function wk(){wC()&&CSS.highlights.delete(wv)}let wN={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",cs:"csharp",css:"css",scss:"scss",html:"html",vue:"vue",svelte:"svelte",php:"php",swift:"swift",kt:"kotlin",sh:"bash",bash:"bash",zsh:"bash",yaml:"yaml",yml:"yaml",toml:"toml",json:"json",xml:"xml",sql:"sql",graphql:"graphql",md:"markdown",mdx:"mdx",dockerfile:"dockerfile",makefile:"makefile",lua:"lua",r:"r",scala:"scala",zig:"zig"};function wE(e){let r=e.split("/").pop()?.toLowerCase()??"";return"dockerfile"===r?"dockerfile":"makefile"===r?"makefile":wN[r.split(".").pop()?.toLowerCase()??""]??"text"}function wD(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function wR({filePath:e,fileContent:r,loading:s,downloadUrl:i,projectId:n,branch:a,target:o,scrollToLine:l,scrollKey:c,onJump:d,restoreScrollTop:u,restoreScrollKey:h,onScroll:f}){let p,[m,g]=(0,$.useState)("rendered"),[x,v]=(0,$.useState)(e),[_,y]=(0,$.useState)(null),b=(0,$.useRef)(null),w=(0,$.useRef)(null),S=(0,$.useRef)(!1);(0,$.useEffect)(()=>{S.current=null!==_},[_]);let C=(0,$.useCallback)(e=>{if(e.detail>=2){let r=window.getSelection();if(S.current){r?.removeAllRanges(),y(e=>e?{...e,selectWord:!0}:e);return}let s=wS(e.clientX,e.clientY),i=s?wb(s.anchor):null;i&&(r?.removeAllRanges(),r?.addRange(i));return}let r=window.getSelection();if(r&&!r.isCollapsed)return;let s=wS(e.clientX,e.clientY,b.current);s&&(r?.removeAllRanges(),y({symbol:s.word,x:e.clientX,y:e.clientY,anchor:s.anchor,selectWord:!1}))},[]),j=(0,$.useCallback)(e=>{e.detail>=2&&e.preventDefault()},[]);(0,$.useEffect)(()=>{if(!_?.anchor)return void wk();let e=wb(_.anchor);if(!e)return void wk();if(_.selectWord){wk();let r=window.getSelection();r?.removeAllRanges(),r?.addRange(e);return}return wC()?(!function(){if(wj||"undefined"==typeof document)return;wj=!0;let e=document.createElement("style");e.textContent=`::highlight(${wv}){background-color:rgba(255, 196, 0, 0.32);}`,document.head.appendChild(e)}(),CSS.highlights.set(wv,new Highlight(e)),wk):void wk()},[_]),(0,$.useEffect)(()=>{b.current=null;let s=r?.content;if(!e||null==s||r?.binary||r?.tooLarge)return;let i=!1;return wp(s,wE(e)).then(e=>{i||(b.current=e)}).catch(()=>{}),()=>{i=!0}},[e,r]);let k=(0,$.useRef)(null),N=(0,$.useRef)(null),E=(0,$.useCallback)(e=>{let r=k.current;if(!r)return;let s=r.querySelector(`[id="${CSS.escape(e)}"]`);if(!s)return;N.current?.();let i=()=>s.scrollIntoView({block:"start",behavior:"auto"});i();let n=new ResizeObserver(i);n.observe(r);let a=()=>{n.disconnect(),window.clearTimeout(o),window.removeEventListener("wheel",a),window.removeEventListener("touchmove",a),window.removeEventListener("keydown",a),N.current=null},o=window.setTimeout(a,1e3);window.addEventListener("wheel",a,{passive:!0}),window.addEventListener("touchmove",a,{passive:!0}),window.addEventListener("keydown",a),N.current=a},[]);(0,$.useEffect)(()=>()=>N.current?.(),[]);let D=(0,$.useRef)(null),R=(0,$.useRef)(!1),A=(0,$.useRef)(f);A.current=f;let M=(0,$.useRef)(null),F=(0,$.useRef)(null),T=(0,$.useCallback)(e=>{if(R.current)return;let r=e.currentTarget.scrollTop;M.current&&clearTimeout(M.current),M.current=setTimeout(()=>A.current?.(r),200)},[]);(0,$.useEffect)(()=>{void 0!==h&&(F.current=u??0)},[h,u]),(0,$.useEffect)(()=>{let e=D.current;e&&(e.scrollTop=0)},[e]),(0,$.useEffect)(()=>{let e=F.current;if(null==e)return;let r=D.current;if(!r||(F.current=null,!e))return;R.current=!0;let s=()=>{r.scrollTop=e};s();let i=new ResizeObserver(s);i.observe(r.firstElementChild??r);let n=()=>{R.current=!1,i.disconnect(),window.clearTimeout(a),r.removeEventListener("wheel",n),r.removeEventListener("touchmove",n),r.removeEventListener("keydown",n)},a=window.setTimeout(n,1500);return r.addEventListener("wheel",n,{passive:!0}),r.addEventListener("touchmove",n,{passive:!0}),r.addEventListener("keydown",n),n},[r]);let P=(0,$.useMemo)(()=>[...Object.values(b4.e),b3],[]),B=(0,$.useMemo)(()=>({a:({href:e,children:r,className:s,node:i,...n})=>{let a="string"==typeof e&&e.startsWith("#");return(0,z.jsx)("a",{href:e,className:(0,ey.cn)("wrap-anywhere font-medium text-primary underline",s),"data-streamdown":"link",...a?{onClick:r=>{r.preventDefault(),E(decodeURIComponent(e.slice(1)))}}:{target:"_blank",rel:"noreferrer"},...n,children:r})}}),[E]);if(e!==x&&(v(e),g("rendered"),y(null)),!e)return(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Select a file to preview."});if(s)return(0,z.jsxs)("div",{className:"flex flex-col h-full",children:[(0,z.jsx)("div",{className:"flex items-center justify-between px-4 py-2 border-b flex-shrink-0",children:(0,z.jsx)(wd,{className:"h-4 w-48"})}),(0,z.jsxs)("div",{className:"flex-1 p-4",children:[(0,z.jsx)(wd,{className:"h-4 w-full mb-2"}),(0,z.jsx)(wd,{className:"h-4 w-3/4 mb-2"}),(0,z.jsx)(wd,{className:"h-4 w-5/6 mb-2"}),(0,z.jsx)(wd,{className:"h-4 w-2/3"})]})]});if(!r)return(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Failed to load file."});let L=()=>{e&&rv.api.downloadFile(n,e,a,o).catch(e=>{console.error("Failed to download file",e)})},I=("markdown"===(p=wE(e))||"mdx"===p)&&!r.tooLarge&&!r.binary&&!!r.content,O=I&&"rendered"===m,H=!r.tooLarge&&!r.binary&&!O&&null!==r.content;return(0,z.jsxs)("div",{className:"flex flex-col h-full",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b flex-shrink-0 gap-2",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-mono truncate",children:e}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground shrink-0",children:wD(r.size)})]}),(0,z.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[I&&(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>g(e=>"rendered"===e?"source":"rendered"),title:O?"View source":"View rendered",children:O?(0,z.jsx)(bX,{className:"h-3.5 w-3.5"}):(0,z.jsx)(_O,{className:"h-3.5 w-3.5"})}),H&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>w.current?.foldAll(),title:"Fold all",children:(0,z.jsx)(bJ,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>w.current?.expandAll(),title:"Expand all",children:(0,z.jsx)(bZ,{className:"h-3.5 w-3.5"})})]}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>{navigator.clipboard.writeText(e)},title:"Copy path",children:(0,z.jsx)(ul.Copy,{className:"h-3.5 w-3.5"})}),i&&(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:L,title:"Download",children:(0,z.jsx)(bY,{className:"h-3.5 w-3.5"})})]})]}),(0,z.jsx)("div",{className:"flex-1 overflow-auto",ref:D,onScroll:T,children:r.tooLarge?(0,z.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-muted-foreground",children:[(0,z.jsx)(bG,{className:"h-10 w-10"}),(0,z.jsxs)("p",{className:"text-sm",children:["File too large to preview (",wD(r.size),")"]}),i&&(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:L,children:[(0,z.jsx)(bY,{className:"h-4 w-4 mr-2"}),"Download"]})]}):r.binary&&wg(e)&&r.size<=0xa00000?(0,z.jsx)(wf,{projectId:n,filePath:e,branch:a,target:o,onDownload:L},e):r.binary?(0,z.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-muted-foreground",children:[(0,z.jsx)(bG,{className:"h-10 w-10"}),(0,z.jsx)("p",{className:"text-sm",children:wg(e)?`Image too large to preview (${wD(r.size)})`:`Binary file (${wD(r.size)})`}),i&&(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:L,children:[(0,z.jsx)(bY,{className:"h-4 w-4 mr-2"}),"Download"]})]}):O?(0,z.jsx)("div",{className:"p-4",style:{fontSize:"var(--files-content-font-size, 14px)"},ref:k,children:(0,z.jsx)(wc,{components:B,rehypePlugins:P,children:r.content??""})}):null!==r.content?(0,z.jsx)("div",{className:"h-full [&_pre]:text-[length:var(--files-content-font-size,14px)]! [&_code]:text-[length:var(--files-content-font-size,14px)]!",onMouseDown:j,onClick:C,children:(0,z.jsx)(wr,{ref:w,code:r.content,language:wE(e),showLineNumbers:!0,foldable:!0,scrollToLine:l,scrollKey:c,className:"border-0 rounded-none",children:(0,z.jsx)(ws,{})})}):(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Empty file."})}),_&&(0,z.jsx)(wu,{projectId:n,symbol:_.symbol,branch:a,target:o,currentFile:e,anchor:{x:_.x,y:_.y},onJump:d,onClose:()=>y(null)})]})}class wA{capacity;map;constructor(e){if(this.capacity=e,this.map=new Map,e<1)throw Error("LRUCache capacity must be at least 1")}get(e){if(!this.map.has(e))return;let r=this.map.get(e);return this.map.delete(e),this.map.set(e,r),r}has(e){return this.map.has(e)}set(e,r){for(this.map.has(e)&&this.map.delete(e),this.map.set(e,r);this.map.size>this.capacity;){let e=this.map.keys().next().value;if(void 0===e)break;this.map.delete(e)}}delete(e){return this.map.delete(e)}deleteWhere(e){for(let r of[...this.map.keys()])e(r)&&this.map.delete(r)}clear(){this.map.clear()}get size(){return this.map.size}}let wM="vibedeckx:files:views";function wF(){return{v:1,views:{}}}function wT(){try{let e=localStorage.getItem(wM);if(!e)return wF();let r=JSON.parse(e);if(!r||1!==r.v||!r.views||"object"!=typeof r.views)return wF();return r}catch{return wF()}}function wP(e){try{localStorage.setItem(wM,JSON.stringify(e))}catch{}}function wB(e){return e.slice(e.lastIndexOf("\0")+1)}let wL=new Set(["/","-","_","."," "]);function wI({projectId:e,project:r,selectedBranch:s,navRequest:i}){let n=r&&!r.path?"remote":void 0,[a,o]=(0,$.useState)(!1),{settings:l}=(0,dh.useConversationSettings)(),c=(0,$.useRef)(null),[d,u]=(0,$.useState)(!1),h=(0,$.useCallback)(()=>{let e=c.current;e&&(e.isCollapsed()?e.expand():e.collapse())},[]),{rootEntries:f,directoryContents:p,expandedDirs:m,selectedFile:g,fileContent:x,fileLoading:v,rootLoading:_,loadingDirs:y,uploadingDirs:b,deletingPaths:w,jumpTarget:S,canGoBack:C,canGoForward:j,fetchRoot:k,refresh:N,reportScroll:E,restoreScroll:D,toggleDirectory:R,navigate:A,jumpTo:M,goBack:F,goForward:T,uploadFiles:P,deleteEntry:B}=function({projectId:e,branch:r,target:s,showHidden:i=!1}){let[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)(new Map),[c,d]=(0,$.useState)(new Set),[u,h]=(0,$.useState)(null),[f,p]=(0,$.useState)(null),[m,g]=(0,$.useState)(null),x=(0,$.useRef)(0),[v,_]=(0,$.useState)({entries:[],index:-1}),y=(0,$.useRef)(v);y.current=v;let[b,w]=(0,$.useState)(!1),[S,C]=(0,$.useState)(!1),[j,k]=(0,$.useState)(new Set),[N,E]=(0,$.useState)(new Set),[D,R]=(0,$.useState)(new Set),A=(0,$.useRef)(0),M=(0,$.useRef)(0),F=(0,$.useRef)(new wA(50)),T=e?[e,r??"",s??""].join("|"):null,P=(0,$.useRef)(T);P.current=T;let B=(0,$.useRef)(u);B.current=u;let L=(0,$.useRef)(0),I=(0,$.useRef)(null),O=(0,$.useRef)(0),[z,W]=(0,$.useState)(null),H=(0,$.useRef)(null),U=(0,$.useCallback)(i=>[e,r??"",s??"",i].join("\0"),[e,r,s]),K=(0,$.useCallback)(()=>{let e,r,s=P.current;if(!s||I.current!==s)return;let i={selectedFile:B.current,history:y.current,scrollTop:L.current};(e=wT()).views[s]={...i,updatedAt:Date.now()},(r=Object.keys(e.views)).length>30&&r.sort((r,s)=>e.views[r].updatedAt-e.views[s].updatedAt).slice(0,r.length-30).forEach(r=>delete e.views[r]),wP(e)},[]),q=(0,$.useCallback)(()=>{H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{H.current=null,K()},300)},[K]),V=(0,$.useCallback)(e=>{L.current=e,q()},[q]);(0,$.useEffect)(()=>{q()},[u,v,q]);let Y=(0,$.useCallback)(async n=>{if(e&&(d(e=>{let r=new Set(e);return r.has(n)?r.delete(n):r.add(n),r}),!o.has(n))){k(e=>new Set(e).add(n));try{let a=await rv.api.browseProjectDirectory(e,n,r,s,i);l(e=>{let r=new Map(e);return r.set(n,a.items),r})}catch(e){console.error("Failed to browse directory:",e),xg.toast.error(`Failed to open ${n}`,{description:e instanceof Error?e.message:String(e)})}finally{k(e=>{let r=new Set(e);return r.delete(n),r})}}},[e,r,s,i,o]),G=(0,$.useCallback)(async i=>{if(!e)return"failed";let n=U(i),a=F.current.get(n);if(a)return p(a),w(!1),"loaded";let o=++M.current;w(!0),p(null);try{let a=await rv.api.getFileContent(e,i,r,s);if(o!==M.current)return"stale";return F.current.set(n,a),p(a),"loaded"}catch(e){if(o!==M.current)return"stale";return console.error("Failed to get file content:",e),p(null),"failed"}finally{o===M.current&&w(!1)}},[e,r,s,U]),X=(0,$.useCallback)(async r=>{e&&(h(r),await G(r))},[e,G]),J=(0,$.useCallback)(async()=>{if(!e)return!1;C(!0);let n=++A.current;try{let o=await rv.api.browseProjectDirectory(e,void 0,r,s,i);if(n!==A.current)return!1;return a(o.items),l(new Map),d(new Set),!0}catch(e){if(console.error("Failed to browse root directory:",e),n!==A.current)return!1;return a([]),xg.toast.error("Failed to browse files",{description:e instanceof Error?e.message:String(e)}),!1}finally{n===A.current&&C(!1)}},[e,r,s,i]),Z=(0,$.useCallback)(async()=>{let r;if(!e||!await J())return;let s=P.current,i=s?(r=wT().views[s])&&"object"==typeof r&&(null===r.selectedFile||"string"==typeof r.selectedFile)&&r.history&&"object"==typeof r.history&&Array.isArray(r.history.entries)&&"number"==typeof r.history.index?{selectedFile:r.selectedFile,history:r.history,scrollTop:"number"==typeof r.scrollTop&&Number.isFinite(r.scrollTop)?r.scrollTop:0}:null:null;if(s&&i&&i.selectedFile){if(_(i.history.entries.length?i.history:{entries:[{path:i.selectedFile,line:null}],index:0}),L.current=i.scrollTop,W({top:i.scrollTop,nonce:++O.current}),h(i.selectedFile),I.current=s,"failed"===await G(i.selectedFile)){let e;h(null),_({entries:[],index:-1}),L.current=0,(e=wT()).views[s]&&(delete e.views[s],wP(e))}}else h(null),p(null),_({entries:[],index:-1}),L.current=0,I.current=s},[e,J,G]),Q=(0,$.useCallback)(async()=>{if(!e||(F.current.clear(),!await J()))return;let r=B.current;r&&await G(r)},[e,J,G]),ee=(0,$.useCallback)(async(e,r=null)=>{_(({entries:s,index:i})=>{let n=s[i];if(n&&n.path===e){let n=s.slice();return n[i]={path:e,line:r},{entries:n,index:i}}let a=s.slice(0,i+1);return{entries:[...a,{path:e,line:r}],index:a.length}}),await X(e),null!=r&&g({line:r,nonce:++x.current})},[X]),et=(0,$.useCallback)((e,r)=>ee(e,r),[ee]),er=(0,$.useCallback)(()=>{let{entries:e,index:r}=y.current;if(r<=0)return;let s=e[r-1];_(e=>({...e,index:e.index-1})),X(s.path),null!=s.line&&g({line:s.line,nonce:++x.current})},[X]),es=(0,$.useCallback)(()=>{let{entries:e,index:r}=y.current;if(r>=e.length-1)return;let s=e[r+1];_(e=>({...e,index:e.index+1})),X(s.path),null!=s.line&&g({line:s.line,nonce:++x.current})},[X]),ei=(0,$.useCallback)(async n=>{if(e)if(""===n)a((await rv.api.browseProjectDirectory(e,void 0,r,s,i)).items);else{let a=await rv.api.browseProjectDirectory(e,n,r,s,i);l(e=>{let r=new Map(e);return r.set(n,a.items),r})}},[e,r,s,i]),en=(0,$.useCallback)(async(i,n)=>{if(e&&0!==n.length){E(e=>new Set(e).add(i));try{let{uploaded:a}=await rv.api.uploadFiles(e,n,i,r,s),o=new Set(a.map(e=>i?`${i}/${e}`:e));F.current.deleteWhere(e=>o.has(wB(e))),""!==i&&d(e=>new Set(e).add(i)),await ei(i),xg.toast.success(`Uploaded ${a.length} file${1===a.length?"":"s"}`)}catch(e){console.error("Failed to upload files:",e),xg.toast.error("Upload failed",{description:e instanceof Error?e.message:String(e)})}finally{E(e=>{let r=new Set(e);return r.delete(i),r})}}},[e,r,s,ei]),ea=(0,$.useCallback)(async i=>{if(e&&i){R(e=>new Set(e).add(i));try{await rv.api.deleteFile(e,i,r,s),F.current.deleteWhere(e=>{let r=wB(e);return r===i||r.startsWith(`${i}/`)}),h(e=>e===i||e&&e.startsWith(`${i}/`)?(p(null),null):e);let n=i.includes("/")?i.slice(0,i.lastIndexOf("/")):"";await ei(n),xg.toast.success("Deleted")}catch(e){console.error("Failed to delete:",e),xg.toast.error("Delete failed",{description:e instanceof Error?e.message:String(e)})}finally{R(e=>{let r=new Set(e);return r.delete(i),r})}}},[e,r,s,ei]);return{rootEntries:n,directoryContents:o,expandedDirs:c,selectedFile:u,fileContent:f,fileLoading:b,rootLoading:S,loadingDirs:j,uploadingDirs:N,deletingPaths:D,jumpTarget:m,canGoBack:v.index>0,canGoForward:v.index<v.entries.length-1,fetchRoot:Z,refresh:Q,reportScroll:V,restoreScroll:z,toggleDirectory:Y,selectFile:X,navigate:ee,jumpTo:et,goBack:er,goForward:es,uploadFiles:en,refreshDirectory:ei,deleteEntry:ea}}({projectId:e,branch:s,target:n,showHidden:a}),L=function({projectId:e,branch:r,target:s}){let[i,n]=(0,$.useState)([]),[a,o]=(0,$.useState)(!1),[l,c]=(0,$.useState)(!1),[d,u]=(0,$.useState)(!1),[h,f]=(0,$.useState)(""),p=(0,$.useRef)(0);(0,$.useEffect)(()=>{n([]),o(!1),u(!1),c(!1),f(""),p.current++},[e,r,s]);let m=(0,$.useCallback)(async()=>{if(!e)return;c(!0);let i=++p.current;try{let a=await rv.api.listProjectFiles(e,r,s);if(i!==p.current)return;n(a.files),o(a.truncated),u(!0)}catch(e){if(i!==p.current)return;n([]),u(!1),xg.toast.error("Failed to load file list",{description:e instanceof Error?e.message:String(e)})}finally{i===p.current&&c(!1)}},[e,r,s]),g=(0,$.useCallback)(()=>{d||l||m()},[d,l,m]),x=(0,$.useCallback)(()=>{u(!1),p.current++,h&&m()},[h,m]),v=(0,$.useDeferredValue)(h);return{query:h,setQuery:f,results:(0,$.useMemo)(()=>(function(e,r,s){if(!r.trim())return[];let i=[];for(let s of e){let e=function(e,r){let s=e.toLowerCase().replace(/\s+/g,"");if(!s)return null;let i=r.toLowerCase(),n=r.lastIndexOf("/")+1,a=0,o=0,l=-2;for(let e=0;e<s.length;e++){let c=s[e],d=-1;for(;o<i.length;o++)if(i[o]===c){d=o;break}if(-1===d)return null;let u=1;d===l+1&&(u+=5),d>=n&&(u+=3);let h=d>0?r[d-1]:"/";(0===d||d===n||wL.has(h))&&(u+=4),a+=u,l=d,o=d+1}return a+.1*Math.max(0,40-r.length)}(r,s);null!==e&&i.push({path:s,score:e})}return i.sort((e,r)=>r.score-e.score||e.path.length-r.path.length),i.slice(0,50)})(i,v,0),[i,v]),truncated:a,loading:l,loaded:d,ensureLoaded:g,refresh:x}}({projectId:e,branch:s,target:n});(0,$.useEffect)(()=>{k()},[k]),(0,$.useEffect)(()=>{i&&(null!=i.line?M(i.path,i.line):A(i.path))},[i?.nonce]);let I=(0,$.useCallback)(()=>{N(),L.refresh()},[N,L]),O=(0,$.useCallback)(e=>{A(e),L.setQuery("")},[A,L]);if(!e)return(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(_v,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to browse files."})]})});let H=g&&e?rv.api.getFileDownloadUrl(e,g,s,n):null;return(0,z.jsxs)("div",{className:"flex flex-col h-full",style:{"--files-tree-font-size":`${l.filesTreeFontSize}px`,"--files-content-font-size":`${l.filesContentFontSize}px`},children:[(0,z.jsx)(lb,{title:"Files",actions:(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:h,title:d?"Show file tree":"Hide file tree","aria-pressed":!d,children:d?(0,z.jsx)(_W,{className:"h-3.5 w-3.5"}):(0,z.jsx)(_$,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:`h-7 w-7 hover:text-foreground ${a?"text-foreground":"text-muted-foreground"}`,onClick:()=>o(e=>!e),title:a?"Hide hidden files":"Show hidden files","aria-pressed":a,children:a?(0,z.jsx)(_O,{className:"h-3.5 w-3.5"}):(0,z.jsx)(_z,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:F,disabled:!C,title:"Back",children:(0,z.jsx)(_H.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:T,disabled:!j,title:"Forward",children:(0,z.jsx)(_U,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:I,title:"Refresh",children:(0,z.jsx)(_v,{className:`h-3.5 w-3.5 ${_?"animate-spin":""}`})})]})}),(0,z.jsxs)(yQ,{direction:"horizontal",autoSaveId:"files-panels",className:"flex-1",children:[(0,z.jsx)(_2,{ref:c,collapsible:!0,collapsedSize:0,defaultSize:33,minSize:20,onCollapse:()=>u(!0),onExpand:()=>u(!1),children:(0,z.jsxs)(bR,{shouldFilter:!1,className:"flex h-full flex-col bg-transparent",children:[(0,z.jsx)("div",{className:"border-b p-2",children:(0,z.jsxs)(y1,{children:[(0,z.jsx)(y5,{children:(0,z.jsx)(dt,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(y6,{type:"search",name:"files-search",autoComplete:"off","data-1p-ignore":!0,"data-lpignore":"true","data-form-type":"other",readOnly:!0,onFocus:e=>{e.currentTarget.removeAttribute("readonly"),L.ensureLoaded()},placeholder:"Search files...",value:L.query,onChange:e=>L.setQuery(e.target.value)}),L.query&&(0,z.jsx)(y5,{align:"inline-end",children:(0,z.jsx)(y4,{size:"icon-xs","aria-label":"Clear search",onClick:()=>L.setQuery(""),children:(0,z.jsx)(t8,{className:"h-3.5 w-3.5"})})})]})}),L.query?(0,z.jsx)(bF,{className:"max-h-none flex-1",children:L.loading&&0===L.results.length?(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}),"Loading files…"]}):0===L.results.length?(0,z.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"No matching files."}):(0,z.jsxs)(z.Fragment,{children:[L.results.map(e=>{let r=e.path.lastIndexOf("/"),s=r>=0?e.path.slice(0,r+1):"",i=r>=0?e.path.slice(r+1):e.path;return(0,z.jsxs)(bB,{value:e.path,onSelect:()=>O(e.path),className:"flex-col items-start gap-0 text-[length:var(--files-tree-font-size,14px)]!",children:[(0,z.jsx)("span",{className:"font-medium",children:i}),s&&(0,z.jsx)("span",{className:"w-full truncate text-xs text-muted-foreground",children:s})]},e.path)}),L.truncated&&(0,z.jsx)("div",{className:"px-2 py-2 text-xs text-muted-foreground",children:"Showing first 50,000 files — refine your search to narrow results."})]})}):(0,z.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,z.jsx)(bV,{entries:f,expandedDirs:m,directoryContents:p,loadingDirs:y,selectedFile:g,uploadingDirs:b,rootLoading:_,deletingPaths:w,onToggleDirectory:R,onSelectFile:A,onUploadFiles:P,onDeleteEntry:B})})]})}),(0,z.jsx)(y0,{withHandle:!0}),(0,z.jsx)(_2,{defaultSize:67,minSize:25,children:(0,z.jsx)("div",{className:"h-full overflow-hidden",children:(0,z.jsx)(wR,{filePath:g,fileContent:x,loading:v,downloadUrl:H,projectId:e,branch:s,target:n,scrollToLine:S?.line??null,scrollKey:S?.nonce,onJump:M,restoreScrollTop:D?.top??null,restoreScrollKey:D?.nonce,onScroll:E})})})]})]})}let wO=(0,$.createContext)(null),wz={openFile:()=>{},index:null};function w$(){return(0,$.useContext)(wO)??wz}let wW=wO.Provider,wH=0;function wU(e){let r=e.lastIndexOf("/");return r>=0?e.slice(r+1):e}let wK=[500,1e3,2e3,4e3,8e3];async function wq(e,r={}){let s=r.delaysMs??wK,i=r.sleep??(e=>new Promise(r=>setTimeout(r,e))),n=r.cancelled??(()=>!1);for(let r=0;;r++){if(n())return null;let a=null;try{a=await e()}catch{a=null}if(n())return null;if(a&&a.files.length>0||r>=s.length)return a;await i(s[r])}}function wV({projectId:e,selectedBranch:r,onMergeRequest:s,project:i,onExecutorModeChange:n,agentSlot:a,activateAgentTabNonce:o,diffCompareNonce:l,mergeTarget:c,active:d=!0}){let[u,h]=function(e,r){let s=`vibedeckx:activeTab:${e??"none"}:${r??"main"}`,[i,n]=(0,$.useState)(()=>localStorage.getItem(s)??"agent");return(0,$.useEffect)(()=>{n(localStorage.getItem(s)??"agent")},[s]),[i,(0,$.useCallback)(e=>{n(e),localStorage.setItem(s,e)},[s])]}(e,r),f=(0,$.useRef)(o);(0,$.useEffect)(()=>{void 0===o||f.current!==o&&(f.current=o,h("agent"))},[o,h]);let p=(0,$.useRef)(l);(0,$.useEffect)(()=>{void 0===l||p.current!==l&&(p.current=l,h("diff"))},[l,h]);let m=function({projectId:e,branch:r,target:s,enabled:i=!0}){let[n,a]=(0,$.useState)(null),o=(0,$.useRef)(0);return(0,$.useEffect)(()=>{if(a(null),!i||!e)return;let n=++o.current;wq(()=>rv.api.listProjectFiles(e,r,s),{cancelled:()=>n!==o.current}).then(e=>{n===o.current&&e&&a(function(e){let r=`idx-${++wH}`,s=new Set(e),i=new Map;for(let r of e){let e=wU(r),s=i.get(e);s?s.push(r):i.set(e,[r])}return{version:r,resolve(e){if(!e)return[];let r=e.replace(/^\/+/,"");if(!r)return[];if(r.includes("/")){if(s.has(r))return[r];let e=wU(r);return(i.get(e)??[]).filter(e=>e===r||e.endsWith("/"+r)||r.endsWith("/"+e))}return i.get(r)??[]}}}(e.files))})},[e,r,s,i]),n}({projectId:e,branch:r,target:i&&!i.path?"remote":void 0,enabled:d}),g=(0,$.useRef)(0),[x,v]=(0,$.useState)(null),_=(0,$.useCallback)((e,r=null)=>{h("files"),v({path:e,line:r,nonce:++g.current})},[h]),y=(0,$.useMemo)(()=>({openFile:_,index:m}),[_,m]);return(0,z.jsx)(wW,{value:y,children:(0,z.jsxs)("div",{className:"h-full flex flex-col",children:[(0,z.jsx)("div",{className:"flex items-center px-3 gap-4 border-b border-border",children:[{id:"agent",icon:aE,label:"Agent"},{id:"executors",icon:aN,label:"Executors"},{id:"diff",icon:rw,label:"Diff"},{id:"terminal",icon:dl,label:"Terminal"},{id:"preview",icon:ry,label:"Browser"},{id:"files",icon:r_,label:"Files"}].map(({id:e,icon:r,label:s})=>(0,z.jsxs)($.Fragment,{children:[(0,z.jsxs)("button",{onClick:()=>h(e),className:(0,ey.cn)("flex items-center gap-0.5 py-2.5 text-xs font-medium border-b-2 transition-colors",u===e?"text-foreground border-primary":"text-muted-foreground border-transparent hover:text-foreground/70"),children:[(0,z.jsx)(r,{className:"h-3.5 w-3.5"}),s]}),"agent"===e&&(0,z.jsx)("span",{className:"h-4 w-px bg-border/60 mx-1.5","aria-hidden":!0})]},e))}),(0,z.jsxs)("div",{className:"relative flex-1 overflow-hidden",children:[(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","agent"!==u&&"invisible pointer-events-none"),children:a}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","executors"!==u&&"hidden"),children:(0,z.jsx)(_x,{projectId:e,selectedBranch:r,project:i,onExecutorModeChange:n})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","diff"!==u&&"hidden"),children:(0,z.jsx)(_E,{projectId:e,selectedBranch:r,onMergeRequest:s,project:i,mergeTarget:c,compareRequestNonce:l})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","terminal"!==u&&"hidden"),children:(0,z.jsx)(_R,{projectId:e,selectedBranch:r,project:i})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","preview"!==u&&"hidden"),children:(0,z.jsx)(_I,{projectId:e,selectedBranch:r,project:i})}),(0,z.jsx)("div",{className:(0,ey.cn)("absolute inset-0 overflow-hidden","files"!==u&&"hidden"),children:(0,z.jsx)(wI,{projectId:e,project:i,selectedBranch:r,navRequest:x})})]})]})})}var wY=Symbol.for("immer-nothing"),wG=Symbol.for("immer-draftable"),wX=Symbol.for("immer-state");function wJ(e){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var wZ=Object.getPrototypeOf;function wQ(e){return!!e&&!!e[wX]}function w0(e){return!!e&&(w5(e)||Array.isArray(e)||!!e[wG]||!!e.constructor?.[wG]||w7(e)||w9(e))}var w1=Object.prototype.constructor.toString(),w2=new WeakMap;function w5(e){if(!e||"object"!=typeof e)return!1;let r=Object.getPrototypeOf(e);if(null===r||r===Object.prototype)return!0;let s=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;if(s===Object)return!0;if("function"!=typeof s)return!1;let i=w2.get(s);return void 0===i&&(i=Function.toString.call(s),w2.set(s,i)),i===w1}function w3(e,r,s=!0){0===w4(e)?(s?Reflect.ownKeys(e):Object.keys(e)).forEach(s=>{r(s,e[s],e)}):e.forEach((s,i)=>r(i,s,e))}function w4(e){let r=e[wX];return r?r.type_:Array.isArray(e)?1:w7(e)?2:3*!!w9(e)}function w6(e,r){return 2===w4(e)?e.has(r):Object.prototype.hasOwnProperty.call(e,r)}function w8(e,r,s){let i=w4(e);2===i?e.set(r,s):3===i?e.add(s):e[r]=s}function w7(e){return e instanceof Map}function w9(e){return e instanceof Set}function Se(e){return e.copy_||e.base_}function St(e,r){if(w7(e))return new Map(e);if(w9(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let s=w5(e);if(!0!==r&&("class_only"!==r||s)){let r=wZ(e);return null!==r&&s?{...e}:Object.assign(Object.create(r),e)}{let r=Object.getOwnPropertyDescriptors(e);delete r[wX];let s=Reflect.ownKeys(r);for(let i=0;i<s.length;i++){let n=s[i],a=r[n];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(r[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]})}return Object.create(wZ(e),r)}}function Sr(e,r=!1){return Si(e)||wQ(e)||!w0(e)||(w4(e)>1&&Object.defineProperties(e,{set:Ss,add:Ss,clear:Ss,delete:Ss}),Object.freeze(e),r&&Object.values(e).forEach(e=>Sr(e,!0))),e}var Ss={value:function(){wJ(2)}};function Si(e){return null===e||"object"!=typeof e||Object.isFrozen(e)}var Sn={};function Sa(e){let r=Sn[e];return r||wJ(0,e),r}function So(e,r){r&&(Sa("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function Sl(e){Sc(e),e.drafts_.forEach(Su),e.drafts_=null}function Sc(e){e===I&&(I=e.parent_)}function Sd(e){return I={drafts_:[],parent_:I,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Su(e){let r=e[wX];0===r.type_||1===r.type_?r.revoke_():r.revoked_=!0}function Sh(e,r){r.unfinalizedDrafts_=r.drafts_.length;let s=r.drafts_[0];return void 0!==e&&e!==s?(s[wX].modified_&&(Sl(r),wJ(4)),w0(e)&&(e=Sf(r,e),r.parent_||Sm(r,e)),r.patches_&&Sa("Patches").generateReplacementPatches_(s[wX].base_,e,r.patches_,r.inversePatches_)):e=Sf(r,s,[]),Sl(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==wY?e:void 0}function Sf(e,r,s){if(Si(r))return r;let i=e.immer_.shouldUseStrictIteration(),n=r[wX];if(!n)return w3(r,(i,a)=>Sp(e,n,r,i,a,s),i),r;if(n.scope_!==e)return r;if(!n.modified_)return Sm(e,n.base_,!0),n.base_;if(!n.finalized_){n.finalized_=!0,n.scope_.unfinalizedDrafts_--;let r=n.copy_,a=r,o=!1;3===n.type_&&(a=new Set(r),r.clear(),o=!0),w3(a,(i,a)=>Sp(e,n,r,i,a,s,o),i),Sm(e,r,!1),s&&e.patches_&&Sa("Patches").generatePatches_(n,s,e.patches_,e.inversePatches_)}return n.copy_}function Sp(e,r,s,i,n,a,o){if(null==n||"object"!=typeof n&&!o)return;let l=Si(n);if(!l||o){if(wQ(n)){let o=Sf(e,n,a&&r&&3!==r.type_&&!w6(r.assigned_,i)?a.concat(i):void 0);if(w8(s,i,o),!wQ(o))return;e.canAutoFreeze_=!1}else o&&s.add(n);if(w0(n)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||r&&r.base_&&r.base_[i]===n&&l)return;Sf(e,n),(!r||!r.scope_.parent_)&&"symbol"!=typeof i&&(w7(s)?s.has(i):Object.prototype.propertyIsEnumerable.call(s,i))&&Sm(e,n)}}}function Sm(e,r,s=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Sr(r,s)}var Sg={get(e,r){if(r===wX)return e;let s=Se(e);if(!w6(s,r)){var i;let n;return i=e,(n=S_(s,r))?"value"in n?n.value:n.get?.call(i.draft_):void 0}let n=s[r];return e.finalized_||!w0(n)?n:n===Sv(e.base_,r)?(Sb(e),e.copy_[r]=Sw(n,e)):n},has:(e,r)=>r in Se(e),ownKeys:e=>Reflect.ownKeys(Se(e)),set(e,r,s){let i=S_(Se(e),r);if(i?.set)return i.set.call(e.draft_,s),!0;if(!e.modified_){let i=Sv(Se(e),r),n=i?.[wX];if(n&&n.base_===s)return e.copy_[r]=s,e.assigned_[r]=!1,!0;if((s===i?0!==s||1/s==1/i:s!=s&&i!=i)&&(void 0!==s||w6(e.base_,r)))return!0;Sb(e),Sy(e)}return!!(e.copy_[r]===s&&(void 0!==s||r in e.copy_)||Number.isNaN(s)&&Number.isNaN(e.copy_[r]))||(e.copy_[r]=s,e.assigned_[r]=!0,!0)},deleteProperty:(e,r)=>(void 0!==Sv(e.base_,r)||r in e.base_?(e.assigned_[r]=!1,Sb(e),Sy(e)):delete e.assigned_[r],e.copy_&&delete e.copy_[r],!0),getOwnPropertyDescriptor(e,r){let s=Se(e),i=Reflect.getOwnPropertyDescriptor(s,r);return i?{writable:!0,configurable:1!==e.type_||"length"!==r,enumerable:i.enumerable,value:s[r]}:i},defineProperty(){wJ(11)},getPrototypeOf:e=>wZ(e.base_),setPrototypeOf(){wJ(12)}},Sx={};function Sv(e,r){let s=e[wX];return(s?Se(s):e)[r]}function S_(e,r){if(!(r in e))return;let s=wZ(e);for(;s;){let e=Object.getOwnPropertyDescriptor(s,r);if(e)return e;s=wZ(s)}}function Sy(e){!e.modified_&&(e.modified_=!0,e.parent_&&Sy(e.parent_))}function Sb(e){e.copy_||(e.copy_=St(e.base_,e.scope_.immer_.useStrictShallowCopy_))}function Sw(e,r){let s=w7(e)?Sa("MapSet").proxyMap_(e,r):w9(e)?Sa("MapSet").proxySet_(e,r):function(e,r){let s=Array.isArray(e),i={type_:+!!s,scope_:r?r.scope_:I,modified_:!1,finalized_:!1,assigned_:{},parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},n=i,a=Sg;s&&(n=[i],a=Sx);let{revoke:o,proxy:l}=Proxy.revocable(n,a);return i.draft_=l,i.revoke_=o,l}(e,r);return(r?r.scope_:I).drafts_.push(s),s}w3(Sg,(e,r)=>{Sx[e]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}}),Sx.deleteProperty=function(e,r){return Sx.set.call(this,e,r,void 0)},Sx.set=function(e,r,s){return Sg.set.call(this,e[0],r,s,e[0])};var SS=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,r,s)=>{let i;if("function"==typeof e&&"function"!=typeof r){let s=r;r=e;let i=this;return function(e=s,...n){return i.produce(e,e=>r.call(this,e,...n))}}if("function"!=typeof r&&wJ(6),void 0!==s&&"function"!=typeof s&&wJ(7),w0(e)){let n=Sd(this),a=Sw(e,void 0),o=!0;try{i=r(a),o=!1}finally{o?Sl(n):Sc(n)}return So(n,s),Sh(i,n)}if(e&&"object"==typeof e)wJ(1,e);else{if(void 0===(i=r(e))&&(i=e),i===wY&&(i=void 0),this.autoFreeze_&&Sr(i,!0),s){let r=[],n=[];Sa("Patches").generateReplacementPatches_(e,i,r,n),s(r,n)}return i}},this.produceWithPatches=(e,r)=>{let s,i;return"function"==typeof e?(r,...s)=>this.produceWithPatches(r,r=>e(r,...s)):[this.produce(e,r,(e,r)=>{s=e,i=r}),s,i]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),"boolean"==typeof e?.useStrictIteration&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){var r;w0(e)||wJ(8),wQ(e)&&(wQ(r=e)||wJ(10,r),e=function e(r){let s;if(!w0(r)||Si(r))return r;let i=r[wX],n=!0;if(i){if(!i.modified_)return i.base_;i.finalized_=!0,s=St(r,i.scope_.immer_.useStrictShallowCopy_),n=i.scope_.immer_.shouldUseStrictIteration()}else s=St(r,!0);return w3(s,(r,i)=>{w8(s,r,e(i))},n),i&&(i.finalized_=!1),s}(r));let s=Sd(this),i=Sw(e,void 0);return i[wX].isManual_=!0,Sc(s),i}finishDraft(e,r){let s=e&&e[wX];s&&s.isManual_||wJ(9);let{scope_:i}=s;return So(i,r),Sh(void 0,i)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,r){let s;for(s=r.length-1;s>=0;s--){let i=r[s];if(0===i.path.length&&"replace"===i.op){e=i.value;break}}s>-1&&(r=r.slice(s+1));let i=Sa("Patches").applyPatches_;return wQ(e)?i(e,r):this.produce(e,e=>i(e,r))}}().produce;let SC="vibedeckx:placeholder-workspaces";function Sj(e){try{window.localStorage.setItem(SC,JSON.stringify([...e]))}catch{}}let Sk=function(){try{let e=window.localStorage.getItem(SC);if(!e)return new Map;let r=JSON.parse(e);if(!Array.isArray(r))return new Map;let s=new Map;for(let e of r)Array.isArray(e)&&"string"==typeof e[0]&&"number"==typeof e[1]?s.set(e[0],e[1]):"string"==typeof e&&s.set(e,Date.now());return s}catch{return new Map}}(),SN=new Set,SE=new Map;function SD(){for(let e of SN)e()}function SR(e){return SN.add(e),()=>{SN.delete(e)}}function SA(){return Sk}function SM(){return SE}function SF(e,r,s){return`${e}:${r??""}:${s??""}`}function ST(e){if(!Sk.has(e))return!1;let r=new Map(Sk);return r.delete(e),Sj(Sk=r),SD(),!0}function SP(){return"localhost"===window.location.hostname&&"3000"===window.location.port?"http://localhost:5173":""}async function SB(e,r,s,i){let n=await (0,rv.authFetch)(`${SP()}/api/projects/${e}/agent-sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:r,permissionMode:s,agentType:i})});if(!n.ok)throw Error("Failed to load session");return n.json()}async function SL(e,r){let s=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})});if(!s.ok){let r="";try{let e=await s.json();if(e.errorCode){let s=[`${e.errorCode}`];e.attempts&&s.push(`${e.attempts} attempts`),e.totalDurationMs&&s.push(`${(e.totalDurationMs/1e3).toFixed(1)}s`),r=` (${s.join(", ")})`}else e.error&&(r=` — ${e.error}`)}catch{}throw console.error(`[AgentSession] /message failed: status=${s.status}, sessionId=${e}, detail=${r}`),Error(`Failed to send message [${s.status}]${r}`)}}async function SI(e,r){let s=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/paste`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})});if(!s.ok){let r="";try{let e=await s.json();if(e.errorCode){let s=[`${e.errorCode}`];e.attempts&&s.push(`${e.attempts} attempts`),e.totalDurationMs&&s.push(`${(e.totalDurationMs/1e3).toFixed(1)}s`),r=` (${s.join(", ")})`}else e.error&&(r=` — ${e.error}`)}catch{}throw console.error(`[AgentSession] /paste failed: status=${s.status}, sessionId=${e}, detail=${r}`),Error(`Failed to upload paste [${s.status}]${r}`)}return s.json()}async function SO(e,r){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/restart`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentType:r})})).ok)throw Error("Failed to restart session")}async function Sz(e,r){let s=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/agent-type`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentType:r})});if(!s.ok){let e="";try{let r=await s.json();r.error&&(e=r.error)}catch{}throw Error(e||`Failed to switch agent [${s.status}]`)}}async function S$(e){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/stop`,{method:"POST"})).ok)throw Error("Failed to stop session")}async function SW(e,r){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/switch-mode`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:r})})).ok)throw Error("Failed to switch mode")}async function SH(e,r){if(!(await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}/accept-plan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({planContent:r})})).ok)throw Error("Failed to accept plan")}let SU=new Map;function SK(e,r,s){return`${e}:${r??""}:${s??"latest"}`}async function Sq(e){let r=await (0,rv.authFetch)(`${SP()}/api/agent-sessions/${e}`);if(!r.ok)throw Error(`Session ${e} not found`);return r.json()}let SV=(0,ew.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),SY=(0,ew.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),SG=(0,ew.default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]),SX=(0,ew.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),SJ=(0,ew.default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),SZ=(0,ew.default)("file-check",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]),SQ=(0,ew.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]),S0=(0,ew.default)("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]),S1=(0,ew.default)("file-pen-line",[["path",{d:"m18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351",key:"1k2beg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]]),S2=(0,ew.default)("file-plus-corner",[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]]),S5=(0,ew.default)("earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),S3=(0,ew.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var oF=oM,b4=oM;let S4=RegExp("(?<![\\w./-])([\\w-]+(?:[./][\\w-]+)+)(?::(\\d+)(?::\\d+)?|#L(\\d+)(?:-L?\\d+)?)?","g"),S6=/\[([^\]\n]*)\]\(\s*([^)\s]+?)\s*\)/g;function S8(e){return e.includes("/")||/\.[A-Za-z0-9]+$/.test(e)}function S7(e){let r=e.trim();if(!r)return null;let s=/^(.*?)(?::(\d+)(?::\d+)?|#L(\d+)(?:-L?\d+)?)?$/.exec(r);if(!s||!s[1])return null;let i=s[1];return/^[a-z][a-z0-9+.-]*:/i.test(i)||i.startsWith("//")||i.startsWith("#")?null:{rawPath:i,line:s[2]?Number(s[2]):s[3]?Number(s[3]):null}}function S9(e){let r=r=>e.index?e.index.resolve(r):[];function s(e,r,s){return{type:"element",tagName:"a",properties:{className:["file-ref"],href:"#file-ref",dataFilePaths:JSON.stringify(e),...null!=r?{dataFileLine:String(r)}:{}},children:s}}return e=>{!function e(i,n=!1){if(!i.children)return;let a=n||"pre"===i.tagName,o=[];for(let n of i.children)"text"===n.type?a?o.push(n):o.push(...function(e){let i=function(e){let r,s=[],i=[];for(S6.lastIndex=0;null!==(r=S6.exec(e));){let e=S7(r[2]);if(!e||!S8(e.rawPath))continue;let n=r.index,a=r.index+r[0].length;s.push({start:n,end:a,rawPath:e.rawPath,line:e.line,display:r[1]||void 0}),i.push([n,a])}for(S4.lastIndex=0;null!==(r=S4.exec(e));){let e=r.index;if(i.some(([r,s])=>e>=r&&e<s))continue;let n=r[1];if(!S8(n))continue;let a=r[2]?Number(r[2]):r[3]?Number(r[3]):null;s.push({start:e,end:e+r[0].length,rawPath:n,line:a})}return s.sort((e,r)=>e.start-r.start),s}(e);if(0===i.length)return[{type:"text",value:e}];let n=[],a=0,o=!1;for(let l of i){let i=r(l.rawPath);if(0===i.length)continue;l.start>a&&n.push({type:"text",value:e.slice(a,l.start)});let c=l.display??e.slice(l.start,l.end);n.push(s(i,l.line,[{type:"text",value:c}])),a=l.end,o=!0}return o?(a<e.length&&n.push({type:"text",value:e.slice(a)}),n):[{type:"text",value:e}]}(n.value??"")):"element"===n.type&&"pre"===n.tagName?(e(n,!0),o.push(n)):"element"!==n.type||"a"!==n.tagName||a?(e(n,a),o.push(n)):o.push(...function(e){let i=S7(String(e.properties?.href??""));if(!i)return[e];let n=r(i.rawPath);return 0===n.length?e.children??[]:[s(n,i.line,e.children??[])]}(n));i.children=o}(e)}}let Ce="text-primary underline decoration-dotted underline-offset-2 cursor-pointer hover:decoration-solid";function Ct({node:e,children:r,href:s,...i}){let{openFile:n}=w$(),a=e?.properties?.dataFilePaths;if(!a)return"string"==typeof s&&s.startsWith("#")?(0,z.jsx)("a",{href:s,...i,children:r}):(0,z.jsx)("a",{href:s,target:"_blank",rel:"noreferrer noopener",...i,children:r});let o=[];try{o=JSON.parse(a)}catch{o=[]}let l=e?.properties?.dataFileLine,c=null!=l?Number(l):null;return o.length<=1?(0,z.jsx)("a",{href:"#",className:Ce,onClick:e=>{e.preventDefault(),o[0]&&n(o[0],c)},children:r}):(0,z.jsx)(Cr,{paths:o,line:c,children:r})}function Cr({paths:e,line:r,children:s}){let{openFile:i}=w$();return(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("a",{href:"#",className:Ce,onClick:e=>e.preventDefault(),children:s})}),(0,z.jsxs)(ag,{align:"start",className:"max-w-md",children:[(0,z.jsxs)(ab,{children:[e.length," matching files"]}),e.map(e=>(0,z.jsx)(ax,{className:"font-mono text-xs",onSelect:()=>i(e,r),children:e},e))]})]})}let Cs=(0,$.memo)(function({children:e}){let{index:r}=w$(),{harden:s,...i}=b4.e,n=[...Object.values(i),[S9,{index:r}],...s?[s]:[]];return(0,z.jsx)(oF.i,{className:"size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",rehypePlugins:n,components:{a:Ct},children:e},r?.version??"no-file-ref-index")});function Ci({input:e,messageIndex:r}){let{sendMessage:s,messages:i}=kp(),n=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&Array.isArray(r.questions)&&r.questions.length>0&&r.questions.every(e=>"string"==typeof e.question&&"string"==typeof e.header&&Array.isArray(e.options)))return r}catch{}return null}(e),a=i[r+1],o=a?.type==="user",l=o?a.content:"",c="string"==typeof l?l:l.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if(!n){let r="string"==typeof e?e:JSON.stringify(e,null,2);return(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>500?r.substring(0,500)+"...":r})}return o?(0,z.jsx)(Cn,{questions:n.questions,answeredText:c}):(0,z.jsx)(Ca,{questions:n.questions,sendMessage:s})}function Cn({questions:e,answeredText:r}){return(0,z.jsx)("div",{className:"space-y-3 mt-2",children:e.map((e,s)=>(0,z.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-3",children:[(0,z.jsx)("div",{className:"flex items-center gap-2 mb-1.5",children:(0,z.jsx)(sb,{variant:"secondary",className:"text-[10px]",children:e.header})}),(0,z.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:e.question}),(0,z.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,z.jsx)(rC,{className:"h-4 w-4"}),(0,z.jsx)("span",{className:"font-medium",children:r})]})]},s))})}function Ca({questions:e,sendMessage:r}){let[s,i]=(0,$.useState)(new Map),[n,a]=(0,$.useState)(new Map),[o,l]=(0,$.useState)(new Set),[c,d]=(0,$.useState)(!1);async function u(){let i=[];for(let r=0;r<e.length;r++)if(o.has(r)){let e=n.get(r)?.trim();e&&i.push(e)}else{let e=s.get(r);e&&e.size>0&&i.push(Array.from(e).join(", "))}if(i.length>0){d(!0);try{await r(i.join("\n"))}finally{d(!1)}}}let h=e.some((e,r)=>{if(o.has(r))return!!n.get(r)?.trim();let i=s.get(r);return i&&i.size>0});return(0,z.jsxs)("div",{className:"space-y-4 mt-2",children:[e.map((e,r)=>{let c=s.get(r)||new Set,d=n.get(r)||"",u=o.has(r);return(0,z.jsxs)("div",{className:"rounded-lg border bg-card p-3",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,z.jsx)(SJ,{className:"h-3.5 w-3.5 text-violet-500"}),(0,z.jsx)(sb,{variant:"secondary",className:"text-[10px]",children:e.header})]}),(0,z.jsx)("p",{className:"text-sm font-medium mb-3",children:e.question}),(0,z.jsxs)("div",{className:"grid gap-2",children:[e.options.map(s=>{let n=c.has(s.label)&&!u;return(0,z.jsx)(W.Button,{variant:n?"default":"outline",className:(0,ey.cn)("h-auto py-2 px-3 justify-start text-left whitespace-normal",n&&"ring-2 ring-primary/50"),onClick:()=>{var n,a;return n=s.label,a=e.multiSelect,void(i(e=>{let s=new Map(e),i=new Set(s.get(r)||[]);return a?i.has(n)?i.delete(n):i.add(n):i.has(n)?i.clear():(i.clear(),i.add(n)),s.set(r,i),s}),l(e=>{let s=new Set(e);return s.delete(r),s}))},children:(0,z.jsxs)("div",{children:[(0,z.jsx)("span",{className:"font-medium text-sm",children:s.label}),s.description&&(0,z.jsx)("span",{className:"block text-xs text-muted-foreground mt-0.5",children:s.description})]})},s.label)}),(0,z.jsx)("div",{className:"flex items-center gap-2 mt-1",children:(0,z.jsx)(ro,{placeholder:"Other...",value:d,onChange:e=>{var s;return s=e.target.value,void(a(e=>new Map(e).set(r,s)),s&&(i(e=>{let s=new Map(e);return s.set(r,new Set),s}),l(e=>new Set(e).add(r))))},className:"text-sm"})})]})]},r)}),(0,z.jsxs)(W.Button,{onClick:u,disabled:!h||c,size:"sm",className:"active:scale-95 transition-transform",children:[c&&(0,z.jsx)(rk,{className:"h-3.5 w-3.5 animate-spin"}),c?"Submitting...":"Submit"]})]})}function Co(e){try{return JSON.parse(e)}catch{return null}}function Cl({input:e,messageIndex:r}){let{messages:s,acceptPlan:i,permissionMode:n,agentType:a}=kp(),[o,l]=(0,$.useState)(!0),[c,d]=(0,$.useState)(!1),u=function(e,r,s){let i="string"==typeof e?Co(e):e;if(i&&"object"==typeof i&&"plan"in i){let e=i.plan;if(e)return e}if("claude-code"===s)for(let e=r.length-1;e>=0;e--){let s=r[e];if("tool_use"===s.type&&"Write"===s.tool){let e="string"==typeof s.input?Co(s.input):s.input;if(e&&"object"==typeof e&&e.file_path?.includes(".claude/plans/")&&e.content)return e.content}}return"Plan written to file"}(e,s,a),h=(0,$.useCallback)(async()=>{d(!0);try{await i(u)}catch{d(!1)}},[i,u]),f="edit"===n,p=!1,m="";for(let e=r+1;e<s.length;e++){let r=s[e];if(r?.type==="user"){p=!0;let e=r.content??"";m="string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n");break}}return(f&&!p&&(p=!0),f||p)?(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[f?(0,z.jsxs)(sb,{variant:"default",className:"bg-green-600 hover:bg-green-700 text-white",children:[(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}),"Plan Accepted"]}):(0,z.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,z.jsx)(x_,{className:"h-3.5 w-3.5"}),(0,z.jsxs)("span",{children:["Feedback sent: ",m.length>100?m.substring(0,100)+"...":m]})]}),(0,z.jsxs)("details",{open:!f,children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"View Plan"}),(0,z.jsx)("div",{className:"mt-2 rounded-lg border p-3 bg-muted/30",children:(0,z.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none break-words [&_pre]:overflow-x-auto [&_pre]:max-w-full [&_code]:break-all [&_p]:break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(wc,{children:u})})})]})]}):(0,z.jsxs)("div",{className:"space-y-3 mt-2",children:[(0,z.jsxs)("div",{className:"rounded-lg border p-3 bg-card",children:[(0,z.jsxs)("button",{onClick:()=>l(!o),className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground mb-2 block",children:[o?"Collapse":"Expand"," Plan"]}),o&&(0,z.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none break-words [&_pre]:overflow-x-auto [&_pre]:max-w-full [&_code]:break-all [&_p]:break-words max-h-96 overflow-y-auto",style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(wc,{children:u})})]}),(0,z.jsxs)(W.Button,{onClick:h,disabled:c,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:[c?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):(0,z.jsx)(rh,{className:"h-3.5 w-3.5 mr-1.5"}),c?"Accepting Plan...":"Accept Plan & Start Editing"]})]})}function Cc({requestId:e,command:r,cwd:s,messageIndex:i}){let{messages:n,sessionId:a}=kp(),[o,l]=(0,$.useState)(!1),[c,d]=(0,$.useState)(null),u=!1;for(let e=i+1;e<n.length;e++)if(n[e]?.type==="user"){u=!0;break}c&&(u=!0);let h=(0,$.useCallback)(async r=>{if(a){l(!0),d(r);try{await (0,rv.sendApprovalResponse)(a,e,r)}catch{d(null),l(!1)}}},[a,e]);return u?(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[(0,z.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-3",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,z.jsx)(aN,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"Command"})]}),(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r||"(empty)"}),s&&(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:["cwd: ",s]})]}),(0,z.jsxs)(sb,{variant:"default",className:"decline"===c?"bg-red-600 hover:bg-red-700 text-white":"bg-green-600 hover:bg-green-700 text-white",children:[(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}),"decline"===c?"Denied":"Allowed"]})]}):(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[(0,z.jsxs)("div",{className:"rounded-lg border bg-card p-3",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,z.jsx)(aN,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"Command"})]}),(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r||"(empty)"}),s&&(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:["cwd: ",s]})]}),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsxs)(W.Button,{onClick:()=>h("accept"),disabled:o,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:[o&&"accept"===c?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rC,{className:"h-3.5 w-3.5 mr-1"}),"Allow"]}),(0,z.jsxs)(W.Button,{onClick:()=>h("decline"),disabled:o,variant:"destructive",size:"sm",children:[o&&"decline"===c?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rj,{className:"h-3.5 w-3.5 mr-1"}),"Deny"]})]})]})}function Cd({requestId:e,changes:r,messageIndex:s}){let{messages:i,sessionId:n}=kp(),[a,o]=(0,$.useState)(!1),[l,c]=(0,$.useState)(null),d=!1;for(let e=s+1;e<i.length;e++)if(i[e]?.type==="user"){d=!0;break}l&&(d=!0);let u=(0,$.useCallback)(async r=>{if(n){o(!0),c(r);try{await (0,rv.sendApprovalResponse)(n,e,r)}catch{c(null),o(!1)}}},[n,e]),h=r??[],f=()=>(0,z.jsx)("div",{className:"rounded-lg border bg-muted/30 p-3 space-y-2",children:0===h.length?(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"No file changes"}):h.map((e,r)=>(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(bO,{className:"h-3 w-3 text-muted-foreground flex-shrink-0"}),(0,z.jsx)("code",{className:"text-xs break-all",children:e.path}),(0,z.jsx)(sb,{variant:"secondary",className:`text-[10px] ${function(e){switch(e){case"added":case"add":return"bg-green-500/10 text-green-600";case"deleted":case"delete":return"bg-red-500/10 text-red-600";default:return"bg-blue-500/10 text-blue-600"}}(e.kind)}`,children:function(e){switch(e){case"added":case"add":return"added";case"deleted":case"delete":return"deleted";default:return"modified"}}(e.kind)})]}),e.diff&&(0,z.jsxs)("details",{className:"mt-1",children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"View diff"}),(0,z.jsx)("pre",{className:"mt-1 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.diff.split("\n").map((e,r)=>{let s="";return e.startsWith("+")?s="bg-green-500/10 text-green-700 dark:text-green-400":e.startsWith("-")&&(s="bg-red-500/10 text-red-700 dark:text-red-400"),(0,z.jsx)("div",{className:s,children:e},r)})})]})]},r))});return d?(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[f(),(0,z.jsxs)(sb,{variant:"default",className:"decline"===l?"bg-red-600 hover:bg-red-700 text-white":"bg-green-600 hover:bg-green-700 text-white",children:[(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}),"decline"===l?"Denied":"Allowed"]})]}):(0,z.jsxs)("div",{className:"space-y-2 mt-2",children:[f(),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsxs)(W.Button,{onClick:()=>u("accept"),disabled:a,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:[a&&"accept"===l?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rC,{className:"h-3.5 w-3.5 mr-1"}),"Allow"]}),(0,z.jsxs)(W.Button,{onClick:()=>u("decline"),disabled:a,variant:"destructive",size:"sm",children:[a&&"decline"===l?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rj,{className:"h-3.5 w-3.5 mr-1"}),"Deny"]})]})]})}let Cu=(0,ew.default)("circle-plus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),Ch=(0,ew.default)("badge",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}]]);function Cf({status:e,className:r}){switch(e){case"completed":return(0,z.jsx)(rC,{className:(0,ey.cn)("h-4 w-4 text-green-500",r)});case"in_progress":return(0,z.jsx)(rk,{className:(0,ey.cn)("h-4 w-4 text-cyan-500 animate-spin",r)});case"pending":default:return(0,z.jsx)(rS,{className:(0,ey.cn)("h-4 w-4 text-muted-foreground",r)});case"deleted":return(0,z.jsx)(rj,{className:(0,ey.cn)("h-4 w-4 text-red-400",r)})}}function Cp(e,r){try{let s="string"==typeof e?JSON.parse(e):e;if(s&&"object"==typeof s&&r(s))return s}catch{}return null}function Cm({input:e}){let r="string"==typeof e?e:JSON.stringify(e,null,2);return(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>500?r.substring(0,500)+"...":r})}function Cg({input:e}){let r=Cp(e,e=>Array.isArray(e.todos)&&e.todos.length>0);return r?(0,z.jsx)("div",{className:"mt-2 space-y-1",children:r.todos.map((e,r)=>(0,z.jsxs)("div",{className:"flex items-start gap-2 py-0.5",children:[(0,z.jsx)(Cf,{status:e.status,className:"mt-0.5 flex-shrink-0"}),(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:(0,ey.cn)("text-sm break-words","completed"===e.status&&"line-through text-muted-foreground"),children:e.subject??e.content??"Untitled task"}),"in_progress"===e.status&&e.activeForm&&(0,z.jsx)("span",{className:"block text-xs italic text-cyan-500",children:e.activeForm})]})]},e.id??r))}):(0,z.jsx)(Cm,{input:e})}function Cx({input:e}){let r=Cp(e,e=>"string"==typeof e.subject);return r?(0,z.jsxs)("div",{className:"mt-2 flex items-start gap-2",children:[(0,z.jsx)(Cu,{className:"h-4 w-4 text-cyan-500 mt-0.5 flex-shrink-0"}),(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-words",children:r.subject}),r.description&&(0,z.jsx)("span",{className:"block text-xs text-muted-foreground mt-0.5 break-words",children:r.description.length>200?r.description.substring(0,200)+"...":r.description})]})]}):(0,z.jsx)(Cm,{input:e})}function Cv({input:e}){let r=Cp(e,e=>"string"==typeof e.taskId);return r?(0,z.jsxs)("div",{className:"mt-2 flex items-start gap-2 flex-wrap",children:[r.status?(0,z.jsx)(Cf,{status:r.status,className:"mt-0.5 flex-shrink-0"}):(0,z.jsx)(_U,{className:"h-4 w-4 text-cyan-500 mt-0.5 flex-shrink-0"}),(0,z.jsxs)("span",{className:"text-sm break-words",children:["Task #",r.taskId,r.status&&(0,z.jsxs)(z.Fragment,{children:[" ",(0,z.jsx)(_U,{className:"inline h-3 w-3 text-muted-foreground mx-0.5"})," ",r.status]}),r.subject&&(0,z.jsxs)("span",{className:"text-muted-foreground",children:[" — ",r.subject]})]}),r.addBlockedBy&&r.addBlockedBy.length>0&&(0,z.jsx)("div",{className:"flex gap-1 mt-1 w-full pl-6",children:r.addBlockedBy.map(e=>(0,z.jsxs)(sb,{variant:"outline",className:"text-[10px]",children:[(0,z.jsx)(Ch,{className:"h-2.5 w-2.5 mr-0.5"}),"blocked by #",e]},e))}),r.addBlocks&&r.addBlocks.length>0&&(0,z.jsx)("div",{className:"flex gap-1 mt-1 w-full pl-6",children:r.addBlocks.map(e=>(0,z.jsxs)(sb,{variant:"outline",className:"text-[10px]",children:[(0,z.jsx)(Ch,{className:"h-2.5 w-2.5 mr-0.5"}),"blocks #",e]},e))})]}):(0,z.jsx)(Cm,{input:e})}function C_(){return(0,z.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin text-cyan-500"}),(0,z.jsx)("span",{children:"Listing tasks..."})]})}function Cy({input:e}){let r=Cp(e,e=>"string"==typeof e.taskId);return r?(0,z.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin text-cyan-500"}),(0,z.jsxs)("span",{children:["Fetching task #",r.taskId,"..."]})]}):(0,z.jsx)(Cm,{input:e})}function Cb({output:e}){let r=function(e){try{let r=JSON.parse(e);if(Array.isArray(r))return r.filter(e=>e.id&&e.subject).map(e=>({id:String(e.id),subject:String(e.subject),status:e.status||"pending",owner:e.owner?String(e.owner):void 0,blockedBy:Array.isArray(e.blockedBy)?e.blockedBy.map(String):void 0}));let s=r.tasks??r.items??r.data;if(Array.isArray(s))return s.filter(e=>e.id&&e.subject).map(e=>({id:String(e.id),subject:String(e.subject),status:e.status||"pending",owner:e.owner?String(e.owner):void 0,blockedBy:Array.isArray(e.blockedBy)?e.blockedBy.map(String):void 0}))}catch{let r=e.trim().split("\n").filter(Boolean),s=[];for(let e of r){let r=e.match(/^#?(\d+)[\s.:\-]+\[?(completed|in_progress|pending|deleted)\]?\s+(.+)/i);r&&s.push({id:r[1],status:r[2].toLowerCase(),subject:r[3].trim()})}if(s.length>0)return s}return null}(e);return r?(0,z.jsx)("div",{className:"mt-1 space-y-1",children:r.map(e=>(0,z.jsxs)("div",{className:"flex items-start gap-2 py-0.5",children:[(0,z.jsx)(Cf,{status:e.status,className:"mt-0.5 flex-shrink-0"}),(0,z.jsxs)("div",{className:"min-w-0 flex items-center gap-1.5 flex-wrap",children:[(0,z.jsxs)("span",{className:"text-xs text-muted-foreground",children:["#",e.id]}),(0,z.jsx)("span",{className:(0,ey.cn)("text-sm break-words","completed"===e.status&&"line-through text-muted-foreground"),children:e.subject}),e.blockedBy&&e.blockedBy.length>0&&(0,z.jsx)(sb,{variant:"outline",className:"text-[10px]",children:"blocked"})]})]},e.id))}):null}function Cw({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.file_path)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{file_path:s,offset:i,limit:n}=r,a=s.split("/"),o=a.pop()||s,l=a.join("/"),c=null!=i||null!=n,d="";if(c){let e=i??1;d=null!=n?`Lines ${e}\u2013${e+n-1}`:`From line ${e}`}return(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-all",children:o}),l&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate",title:s,children:l})]}),c&&(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:d})]})}function CS({output:e}){let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["File contents (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CC({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.file_path)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{file_path:s,content:i}=r,n=s.split("/"),a=n.pop()||s,o=n.join("/"),l=i.split("\n").length;return(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-all",children:a}),o&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate",title:s,children:o})]}),(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Content (",l," ",1===l?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:i.length>1e3?i.substring(0,1e3)+"...":i})]})]})}function Cj({output:e}){return e&&""!==e.trim()?(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Result"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]}):(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"File written"})}function Ck({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.command)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{command:s,description:i,timeout:n}=r;return(0,z.jsxs)("div",{className:"space-y-1",children:[i&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:i}),(0,z.jsxs)("div",{className:"flex items-start gap-2",children:[(0,z.jsxs)("pre",{className:"flex-1 min-w-0 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-muted-foreground select-none",children:"$ "}),s]}),null!=n&&(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0 mt-1",children:function(e){if(e>=6e4){let r=e/6e4;return`${r%1==0?r:r.toFixed(1)}m`}return`${e/1e3}s`}(n)})]})]})}function CN({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Output (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CE({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.pattern)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let s=[];return r.path&&s.push({label:r.path}),r.glob&&s.push({label:r.glob}),r.type&&s.push({label:`.${r.type}`}),r.output_mode&&"files_with_matches"!==r.output_mode&&s.push({label:r.output_mode}),null!=r.context&&s.push({label:`context: ${r.context}`}),null!=r["-C"]&&s.push({label:`context: ${r["-C"]}`}),null!=r["-B"]&&s.push({label:`before: ${r["-B"]}`}),null!=r["-A"]&&s.push({label:`after: ${r["-A"]}`}),r["-i"]&&s.push({label:"case-insensitive"}),r.multiline&&s.push({label:"multiline"}),null!=r.head_limit&&s.push({label:`limit: ${r.head_limit}`}),null!=r.offset&&s.push({label:`offset: ${r.offset}`}),(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("div",{className:"flex items-start gap-2",children:(0,z.jsxs)("pre",{className:"flex-1 min-w-0 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-muted-foreground select-none",children:"/ "}),r.pattern]})}),s.length>0&&(0,z.jsx)("div",{className:"flex items-center gap-1.5 flex-wrap",children:s.map((e,r)=>(0,z.jsx)(sb,{variant:"outline",className:"text-xs",children:e.label},r))})]})}function CD({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No matches"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Results (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CR({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.pattern)return r;return null}catch{return null}}(e);return r?(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("div",{className:"flex items-start gap-2",children:(0,z.jsx)("pre",{className:"flex-1 min-w-0 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.pattern})}),r.path&&(0,z.jsx)("div",{className:"flex items-center gap-1.5 flex-wrap",children:(0,z.jsx)(sb,{variant:"outline",className:"text-xs",children:r.path})})]}):(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)})}function CA({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No matches"});let r=e.trim().split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:[r," ",1===r?"file":"files"," found"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}let CM={Explore:"Explore",Bash:"Bash",Plan:"Plan","general-purpose":"General","code-simplifier":"Simplify","superpowers:code-reviewer":"Review","memory-leak-detector":"Memory","directory-structure-validator":"Structure","tech-docs-finder":"Docs","claude-code-guide":"Guide","statusline-setup":"Status"};function CF({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.description&&"string"==typeof r.subagent_type)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{description:s,subagent_type:i,prompt:n,model:a,max_turns:o,resume:l,run_in_background:c}=r,d=[];return d.push({label:CM[i]||i}),a&&d.push({label:a}),null!=o&&d.push({label:`${o} turns`}),c&&d.push({label:"background"}),l&&d.push({label:"resume"}),(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsx)("span",{className:"text-sm",children:s}),d.map((e,r)=>(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:e.label},r))]}),n&&(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Prompt (",n.length>1e3?`${Math.round(n.length/1e3)}k chars`:`${n.length} chars`,")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:n.length>1e3?n.substring(0,1e3)+"...":n})]})]})}function CT({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Agent result (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CP(e,r){return e.length>r?e.substring(0,r)+"...":e}function CB({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.file_path&&"string"==typeof r.old_string&&"string"==typeof r.new_string)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{file_path:s,old_string:i,new_string:n,replace_all:a}=r,o=s.split("/"),l=o.pop()||s,c=o.join("/"),d=i.split("\n").length,u=n.split("\n").length;return(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("span",{className:"text-sm font-medium break-all",children:l}),c&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate",title:s,children:c})]}),(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:d===u?`${d} ${1===d?"line":"lines"}`:`${d}\u2192${u} lines`}),a&&(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:"replace all"})]}),(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Diff"}),(0,z.jsxs)("div",{className:"mt-1 text-xs rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full",children:[(0,z.jsxs)("pre",{className:"bg-red-500/10 p-1.5 rounded-t whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-red-500 select-none",children:"- "}),CP(i,500)]}),(0,z.jsxs)("pre",{className:"bg-green-500/10 p-1.5 rounded-b whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:[(0,z.jsx)("span",{className:"text-green-500 select-none",children:"+ "}),CP(n,500)]})]})]})]})}function CL({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});if(e.length<=200)return(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:e});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Result (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CI({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.url&&"string"==typeof r.prompt)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{display:s,href:i}=function(e){try{let r=new URL(e),s="/"===r.pathname?"":r.pathname,i=r.hostname+s;return{display:i.length>80?i.substring(0,77)+"...":i,href:e}}catch{return{display:e.length>80?e.substring(0,77)+"...":e,href:e}}}(r.url),n=r.prompt.length>150?r.prompt.substring(0,147)+"...":r.prompt;return(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"block text-xs font-mono text-blue-500 hover:underline truncate",children:s}),(0,z.jsxs)("p",{className:"text-xs text-muted-foreground",children:['"',n,'"']})]})}function CO({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No content fetched"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Response (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function Cz({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.query)return r;return null}catch{return null}}(e);return r?(0,z.jsxs)("div",{className:"space-y-1.5",children:[(0,z.jsx)("p",{className:"text-xs font-mono bg-muted/50 px-2 py-1 rounded break-words",children:r.query}),r.allowed_domains&&r.allowed_domains.length>0&&(0,z.jsxs)("div",{className:"flex items-center gap-1 flex-wrap",children:[(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"only:"}),r.allowed_domains.map(e=>(0,z.jsx)(sb,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:e},e))]}),r.blocked_domains&&r.blocked_domains.length>0&&(0,z.jsxs)("div",{className:"flex items-center gap-1 flex-wrap",children:[(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:"exclude:"}),r.blocked_domains.map(e=>(0,z.jsx)(sb,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:e},e))]})]}):(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)})}function C$({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No search results"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Results (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CW({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.skill)return r;return null}catch{return null}}(e);return r?(0,z.jsxs)("div",{className:"space-y-1",children:[(0,z.jsx)("p",{className:"text-xs font-mono text-pink-500",children:r.skill}),r.args&&(0,z.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:["args: ",r.args]})]}):(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)})}function CH({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Loaded (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function CU({input:e}){let r=function(e){try{let r="string"==typeof e?JSON.parse(e):e;if(r&&"object"==typeof r&&"string"==typeof r.task_id)return r;return null}catch{return null}}(e);if(!r)return(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:"string"==typeof e?e:JSON.stringify(e,null,2)});let{task_id:s,block:i,timeout:n}=r,a=[];return a.push({label:!1===i?"non-blocking":"blocking"}),null!=n&&a.push({label:`${Math.round(n/1e3)}s`}),(0,z.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,z.jsx)("code",{className:"text-sm bg-muted/50 px-1.5 py-0.5 rounded",children:s}),a.map((e,r)=>(0,z.jsx)(sb,{variant:"outline",className:"text-xs shrink-0",children:e.label},r))]})}function CK({output:e}){if(!e||""===e.trim())return(0,z.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"No output"});let r=e.split("\n").length;return(0,z.jsxs)("details",{children:[(0,z.jsxs)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:["Task output (",r," ",1===r?"line":"lines",")"]}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.length>1e3?e.substring(0,1e3)+"...":e})]})}function Cq({input:e}){let r="string"==typeof e?function(e){try{return JSON.parse(e)}catch{return null}}(e):e,s=r?.changes??[];return 0===s.length?(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"No file changes"}):(0,z.jsx)("div",{className:"space-y-2 mt-1",children:s.map((e,r)=>(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(bO,{className:"h-3 w-3 text-muted-foreground flex-shrink-0"}),(0,z.jsx)("code",{className:"text-xs break-all",children:e.path}),(0,z.jsx)(sb,{variant:"secondary",className:`text-[10px] ${function(e){switch(e){case"added":case"add":return"bg-green-500/10 text-green-600";case"deleted":case"delete":return"bg-red-500/10 text-red-600";default:return"bg-blue-500/10 text-blue-600"}}(e.kind)}`,children:function(e){switch(e){case"added":case"add":return"added";case"deleted":case"delete":return"deleted";default:return"modified"}}(e.kind)})]}),e.diff&&(0,z.jsxs)("details",{className:"mt-1",children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"View diff"}),(0,z.jsx)("pre",{className:"mt-1 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:e.diff.split("\n").map((e,r)=>{let s="";return e.startsWith("+")?s="bg-green-500/10 text-green-700 dark:text-green-400":e.startsWith("-")&&(s="bg-red-500/10 text-red-700 dark:text-red-400"),(0,z.jsx)("div",{className:s,children:e},r)})})]})]},r))})}function CV({output:e}){let r=e.toLowerCase(),s="text-muted-foreground";return r.includes("completed")||r.includes("success")?s="text-green-600 dark:text-green-400":r.includes("failed")||r.includes("error")?s="text-red-600 dark:text-red-400":(r.includes("declined")||r.includes("denied"))&&(s="text-amber-600 dark:text-amber-400"),(0,z.jsx)("p",{className:`text-xs ${s}`,children:e})}function CY({path:e,size:r}){let s;return(0,z.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/60 px-1.5 py-0.5 text-xs font-mono align-baseline",title:e,children:[(0,z.jsx)(bO,{className:"w-3 h-3 text-muted-foreground shrink-0"}),(0,z.jsx)("span",{className:"truncate max-w-[18ch]",children:(s=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\")))>=0?e.slice(s+1):e}),(0,z.jsx)("span",{className:"text-muted-foreground",children:function(e){if(e<1024)return`${e} B`;let r=e/1024;return r<10?`${r.toFixed(1)} KB`:r<1024?`${Math.round(r)} KB`:`${(r/1024).toFixed(1)} MB`}(r)})]})}let CG=/<vpaste path="([^"]+)" size="(\d+)" \/>/g;function CX({message:e,messageIndex:r}){let s=function(e,r){switch(e.type){case"user":return(0,z.jsx)(CZ,{content:e.content});case"assistant":return(0,z.jsx)(CQ,{content:e.content,agentType:e.agentType});case"tool_use":return(0,z.jsx)(C0,{tool:e.tool,input:e.input,messageIndex:r});case"tool_result":return(0,z.jsx)(C1,{tool:e.tool,output:e.output});case"thinking":return(0,z.jsx)(C2,{content:e.content});case"error":return(0,z.jsx)(C5,{message:e.message});case"system":return(0,z.jsx)(C3,{content:e.content});case"approval_request":return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-amber-500/10 flex items-center justify-center",children:(0,z.jsx)(S3,{className:"w-4 h-4 text-amber-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-amber-500 mb-1",children:"command"===e.requestType?"Command Approval":"File Change Approval"}),"command"===e.requestType?(0,z.jsx)(Cc,{requestId:e.requestId,command:e.command,cwd:e.cwd,messageIndex:r}):(0,z.jsx)(Cd,{requestId:e.requestId,changes:e.changes,messageIndex:r})]})]});default:return null}}(e,r);return s?(0,z.jsxs)("div",{className:"group relative",children:[s,(0,z.jsx)("span",{className:"pointer-events-none absolute right-0 top-3 text-xs tabular-nums text-muted-foreground opacity-0 transition-opacity duration-150 group-hover:opacity-100",children:function(e){let r=new Date(e),s=new Date,i=r.getFullYear()===s.getFullYear()&&r.getMonth()===s.getMonth()&&r.getDate()===s.getDate(),n=r.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1});if(i)return n;let a=r.toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"});return`${a} ${n}`}(e.timestamp)})]}):null}function CJ(e){let r=function(e){let r,s=[],i=0,n=RegExp(CG.source,"g");for(;null!==(r=n.exec(e));)r.index>i&&s.push({kind:"text",text:e.slice(i,r.index)}),s.push({kind:"chip",path:r[1],size:Number(r[2])}),i=r.index+r[0].length;return i<e.length&&s.push({kind:"text",text:e.slice(i)}),s}(e);return 1===r.length&&"text"===r[0].kind?(0,z.jsx)("span",{className:"whitespace-pre-wrap break-words",children:e??""}):(0,z.jsx)("div",{className:"text-foreground max-w-none break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:r.map((e,r)=>"text"===e.kind?(0,z.jsx)("span",{className:"whitespace-pre-wrap break-words",children:e.text},r):(0,z.jsx)(CY,{path:e.path,size:e.size},r))})}function CZ({content:e}){return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-primary/10 flex items-center justify-center",children:(0,z.jsx)(SV,{className:"w-3.5 h-3.5 text-primary"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-foreground mb-1",children:"You"}),(0,z.jsx)("div",{className:"text-foreground max-w-none break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:"string"==typeof e?CJ(e):e.map((e,r)=>"text"===e.type?(0,z.jsx)($.Fragment,{children:CJ(e.text)},r):(0,z.jsx)("img",{src:`data:${e.mediaType};base64,${e.data}`,alt:"Attached image",className:"max-w-sm rounded-lg mt-2"},r))})]})]})}function CQ({content:e,agentType:r}){let s=function(){try{return kp().agentType}catch{return"claude-code"}}(),i="codex"===(r??s),[n,a]=(0,$.useState)(!1);return(0,z.jsxs)("div",{className:"group flex gap-3 py-3",children:[(0,z.jsx)("div",{className:`flex-shrink-0 w-7 h-7 rounded-lg ${i?"bg-green-500/10":"bg-violet-500/10"} flex items-center justify-center`,children:(0,z.jsx)(aE,{className:`w-3.5 h-3.5 ${i?"text-green-500":"text-violet-500"}`})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,z.jsx)("p",{className:`text-sm font-medium ${i?"text-green-500":"text-violet-500"}`,children:i?"Codex":"Claude"}),(0,z.jsx)("button",{type:"button",onClick:()=>a(e=>!e),title:n?"View rendered":"View source","aria-label":n?"View rendered":"View source","aria-pressed":n,className:"opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity text-muted-foreground hover:text-foreground",children:n?(0,z.jsx)(_O,{className:"w-3.5 h-3.5"}):(0,z.jsx)(bX,{className:"w-3.5 h-3.5"})})]}),n?(0,z.jsx)("pre",{className:"text-xs font-mono whitespace-pre-wrap break-words bg-muted/50 rounded-md p-3 overflow-x-auto text-foreground select-text",children:e??""}):(0,z.jsx)("div",{className:"text-foreground prose prose-sm dark:prose-invert max-w-none break-words [&_pre]:overflow-x-auto [&_pre]:max-w-full [&_code]:break-all [&_p]:break-words",style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(Cs,{children:e??""})})]})]})}function C0({tool:e,input:r,messageIndex:s}){if("AskUserQuestion"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-violet-500/10 flex items-center justify-center",children:(0,z.jsx)(SJ,{className:"w-4 h-4 text-violet-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-violet-500 mb-1",children:"Question"}),(0,z.jsx)(Ci,{input:r,messageIndex:s})]})]});if("ExitPlanMode"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-green-500/10 flex items-center justify-center",children:(0,z.jsx)(SZ,{className:"w-4 h-4 text-green-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-green-500 mb-1",children:"Plan Ready"}),(0,z.jsx)(Cl,{input:r,messageIndex:s})]})]});let i={TodoWrite:{label:"Tasks",ui:(0,z.jsx)(Cg,{input:r})},TaskCreate:{label:"Create Task",ui:(0,z.jsx)(Cx,{input:r})},TaskUpdate:{label:"Update Task",ui:(0,z.jsx)(Cv,{input:r})},TaskList:{label:"Task List",ui:(0,z.jsx)(C_,{})},TaskGet:{label:"Get Task",ui:(0,z.jsx)(Cy,{input:r})}}[e];if(i)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-cyan-500/10 flex items-center justify-center",children:(0,z.jsx)(oP,{className:"w-4 h-4 text-cyan-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-cyan-500 mb-1",children:i.label}),i.ui]})]});if("Read"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(bO,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"Read File"}),(0,z.jsx)(Cw,{input:r})]})]});if("Edit"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(S1,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"Edit File"}),(0,z.jsx)(CB,{input:r})]})]});if("Write"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(S2,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"Write File"}),(0,z.jsx)(CC,{input:r})]})]});if("Bash"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-emerald-500/10 flex items-center justify-center",children:(0,z.jsx)(aN,{className:"w-4 h-4 text-emerald-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-emerald-500 mb-1",children:"Run Command"}),(0,z.jsx)(Ck,{input:r})]})]});if("Grep"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-orange-500/10 flex items-center justify-center",children:(0,z.jsx)(dt,{className:"w-4 h-4 text-orange-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-orange-500 mb-1",children:"Search"}),(0,z.jsx)(CE,{input:r})]})]});if("Glob"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-teal-500/10 flex items-center justify-center",children:(0,z.jsx)(SQ,{className:"w-4 h-4 text-teal-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-teal-500 mb-1",children:"Glob"}),(0,z.jsx)(CR,{input:r})]})]});if("Task"===e||"Agent"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-purple-500/10 flex items-center justify-center",children:(0,z.jsx)(S0,{className:"w-4 h-4 text-purple-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-purple-500 mb-1",children:"Agent"}),(0,z.jsx)(CF,{input:r})]})]});if("TaskOutput"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-purple-500/10 flex items-center justify-center",children:(0,z.jsx)(S0,{className:"w-4 h-4 text-purple-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-purple-500 mb-1",children:"Task Output"}),(0,z.jsx)(CU,{input:r})]})]});if("WebFetch"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-blue-500/10 flex items-center justify-center",children:(0,z.jsx)(ry,{className:"w-4 h-4 text-blue-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-blue-500 mb-1",children:"Fetch Web Page"}),(0,z.jsx)(CI,{input:r})]})]});if("WebSearch"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-indigo-500/10 flex items-center justify-center",children:(0,z.jsx)(S5,{className:"w-4 h-4 text-indigo-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-indigo-500 mb-1",children:"Web Search"}),(0,z.jsx)(Cz,{input:r})]})]});if("Skill"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-pink-500/10 flex items-center justify-center",children:(0,z.jsx)(da,{className:"w-4 h-4 text-pink-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-pink-500 mb-1",children:"Skill"}),(0,z.jsx)(CW,{input:r})]})]});if("FileChange"===e)return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-sky-500/10 flex items-center justify-center",children:(0,z.jsx)(S1,{className:"w-4 h-4 text-sky-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-sky-500 mb-1",children:"File Changes"}),(0,z.jsx)(Cq,{input:r})]})]});let n="string"==typeof r?r:JSON.stringify(r,null,2);return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-amber-500/10 flex items-center justify-center",children:(0,z.jsx)(SY,{className:"w-4 h-4 text-amber-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("p",{className:"text-sm font-medium text-amber-500 mb-1 break-words",children:["Tool: ",e]}),(0,z.jsxs)("details",{open:!0,children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Input"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:n.length>500?n.substring(0,500)+"...":n})]})]})]})}function C1({tool:e,output:r}){if(["TodoWrite","TaskCreate","TaskUpdate","TaskList","TaskGet"].includes(e)){let s="TaskList"===e?(0,z.jsx)(Cb,{output:r}):null;return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mb-1",children:["Result (",e,")"]}),s||(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Output"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>1e3?r.substring(0,1e3)+"...":r})]})]})})}if("Read"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CS,{output:r})})});if("Edit"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CL,{output:r})})});if("Write"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(Cj,{output:r})})});if("Bash"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CN,{output:r})})});if("Grep"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CD,{output:r})})});if("Glob"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CA,{output:r})})});if("Task"===e||"Agent"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CT,{output:r})})});if("TaskOutput"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CK,{output:r})})});if("WebFetch"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CO,{output:r})})});if("WebSearch"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(C$,{output:r})})});if("Skill"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CH,{output:r})})});if("FileChange"===e)return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)(CV,{output:r})})});let s=r.length>200;return(0,z.jsx)("div",{className:"flex gap-3 py-3 pl-11",children:(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsxs)("p",{className:"text-xs text-muted-foreground mb-1",children:["Result",e?` (${e})`:""]}),(0,z.jsxs)("details",{className:(0,ey.cn)(!s&&"open"),children:[(0,z.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Output"}),(0,z.jsx)("pre",{className:"mt-1 bg-muted/50 p-2 rounded overflow-x-auto max-h-48 overflow-y-auto max-w-full whitespace-pre-wrap break-all",style:{fontSize:"var(--conv-font-size, 12px)"},children:r.length>1e3?r.substring(0,1e3)+"...":r})]})]})})}function C2({content:e}){let r=e??"",s=r.trim().length>0,i=s?r.length>500?r.substring(0,500)+"...":r:"Reasoning unavailable — this model does not expose its thinking content.";return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-blue-500/10 flex items-center justify-center",children:(0,z.jsx)(SG,{className:"w-3.5 h-3.5 text-blue-500"})}),(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsxs)("details",{children:[(0,z.jsx)("summary",{className:"text-xs font-medium text-blue-500 cursor-pointer hover:underline",children:"Thinking..."}),(0,z.jsx)("div",{className:`mt-2 whitespace-pre-wrap break-words bg-blue-500/5 p-2 rounded-md overflow-hidden ${s?"text-muted-foreground":"text-muted-foreground/70 italic"}`,style:{fontSize:"var(--conv-font-size, 12px)"},children:i})]})})]})}function C5({message:e}){return(0,z.jsxs)("div",{className:"flex gap-3 py-3",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-red-500/10 flex items-center justify-center",children:(0,z.jsx)(SX,{className:"w-3.5 h-3.5 text-red-500"})}),(0,z.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-red-500 mb-1",children:"Error"}),(0,z.jsx)("p",{className:"text-red-500/80 break-words whitespace-pre-wrap",style:{fontSize:"var(--conv-font-size, 14px)"},children:e})]})]})}function C3({content:e}){return(0,z.jsxs)("div",{className:"flex gap-3 py-2",children:[(0,z.jsx)("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-gray-500/10 flex items-center justify-center",children:(0,z.jsx)(xm,{className:"w-3.5 h-3.5 text-gray-500"})}),(0,z.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:(0,z.jsx)("p",{className:"text-muted-foreground break-words",style:{fontSize:"var(--conv-font-size, 12px)"},children:e??""})})]})}let C4=(0,ew.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),C6={damping:.7,stiffness:.05,mass:1.25},C8=1e3/60,C7=!1;function C9(e,r){let s=(0,$.useCallback)(r=>(s.current=r,e(r)),r);return s}globalThis.document?.addEventListener("mousedown",()=>{C7=!0}),globalThis.document?.addEventListener("mouseup",()=>{C7=!1}),globalThis.document?.addEventListener("click",()=>{C7=!1});let je=new Map;function jt(...e){let r={...C6},s=!1;for(let i of e){if("instant"===i){s=!0;continue}"object"==typeof i&&(s=!1,r.damping=i.damping??r.damping,r.stiffness=i.stiffness??r.stiffness,r.mass=i.mass??r.mass)}let i=JSON.stringify(r);return je.has(i)||je.set(i,Object.freeze(r)),s?"instant":je.get(i)}let jr=(0,$.createContext)(null),js="undefined"!=typeof window?$.useLayoutEffect:$.useEffect;function ji({instance:e,children:r,resize:s,initial:i,mass:n,damping:a,stiffness:o,targetScrollTop:l,contextRef:c,...d}){let u=(0,$.useRef)(null),h=((e={})=>{let[r,s]=(0,$.useState)(!1),[i,n]=(0,$.useState)(!1!==e.initial),[a,o]=(0,$.useState)(!1),l=(0,$.useRef)(null);l.current=e;let c=(0,$.useCallback)(()=>{if(!C7)return!1;let e=window.getSelection();if(!e||!e.rangeCount)return!1;let r=e.getRangeAt(0);return r.commonAncestorContainer.contains(x.current)||x.current?.contains(r.commonAncestorContainer)},[]),d=(0,$.useCallback)(e=>{h.isAtBottom=e,n(e)},[]),u=(0,$.useCallback)(e=>{h.escapedFromLock=e,s(e)},[]),h=(0,$.useMemo)(()=>{let s;return{escapedFromLock:r,isAtBottom:i,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return x.current?.scrollTop??0},set scrollTop(scrollTop){x.current&&(x.current.scrollTop=scrollTop,h.ignoreScrollToTop=x.current.scrollTop)},get targetScrollTop(){if(!x.current||!v.current)return 0;return x.current.scrollHeight-1-x.current.clientHeight},get calculatedTargetScrollTop(){if(!x.current||!v.current)return 0;let{targetScrollTop:r}=this;if(!e.targetScrollTop)return r;if(s?.targetScrollTop===r)return s.calculatedScrollTop;let i=Math.max(Math.min(e.targetScrollTop(r,{scrollElement:x.current,contentElement:v.current}),r),0);return s={targetScrollTop:r,calculatedScrollTop:i},requestAnimationFrame(()=>{s=void 0}),i},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=70}}},[]),f=(0,$.useCallback)((e={})=>{let r;"string"==typeof e&&(e={animation:e}),e.preserveScrollPosition||d(!0);let s=Date.now()+(Number(e.wait)||0),i=jt(l.current,e.animation),{ignoreEscapes:n=!1}=e,a=h.calculatedTargetScrollTop;e.duration instanceof Promise?e.duration.finally(()=>{r=Date.now()}):r=s+(e.duration??0);let o=async()=>{let e=new Promise(requestAnimationFrame).then(()=>{if(!h.isAtBottom)return h.animation=void 0,!1;let{scrollTop:d}=h,u=performance.now(),p=(u-(h.lastTick??u))/C8;if(h.animation||(h.animation={behavior:i,promise:e,ignoreEscapes:n}),h.animation.behavior===i&&(h.lastTick=u),c()||s>Date.now())return o();if(d<Math.min(a,h.calculatedTargetScrollTop)){if(h.animation?.behavior===i){if("instant"===i)return h.scrollTop=h.calculatedTargetScrollTop,o();h.velocity=(i.damping*h.velocity+i.stiffness*h.scrollDifference)/i.mass,h.accumulated+=h.velocity*p,h.scrollTop+=h.accumulated,h.scrollTop!==d&&(h.accumulated=0)}return o()}return r>Date.now()?(a=h.calculatedTargetScrollTop,o()):(h.animation=void 0,h.scrollTop<h.calculatedTargetScrollTop)?f({animation:jt(l.current,l.current.resize),ignoreEscapes:n,duration:Math.max(0,r-Date.now())||void 0}):h.isAtBottom});return e.then(e=>(requestAnimationFrame(()=>{h.animation||(h.lastTick=void 0,h.velocity=0)}),e))};return(!0!==e.wait&&(h.animation=void 0),h.animation?.behavior===i)?h.animation.promise:o()},[d,c,h]),p=(0,$.useCallback)(()=>{u(!0),d(!1)},[u,d]),m=(0,$.useCallback)(({target:e})=>{if(e!==x.current)return;let{scrollTop:r,ignoreScrollToTop:s}=h,{lastScrollTop:i=r}=h;h.lastScrollTop=r,h.ignoreScrollToTop=void 0,s&&s>r&&(i=s),o(h.isNearBottom),setTimeout(()=>{if(h.resizeDifference||r===s)return;if(c()){u(!0),d(!1);return}let e=r>i,n=r<i;if(h.animation?.ignoreEscapes){h.scrollTop=i;return}n&&(u(!0),d(!1)),e&&u(!1),!h.escapedFromLock&&h.isNearBottom&&d(!0)},1)},[u,d,c,h]),g=(0,$.useCallback)(({target:e,deltaY:r})=>{let s=e;for(;!["scroll","auto"].includes(getComputedStyle(s).overflow);){if(!s.parentElement)return;s=s.parentElement}s===x.current&&r<0&&x.current.scrollHeight>x.current.clientHeight&&!h.animation?.ignoreEscapes&&(u(!0),d(!1))},[u,d,h]),x=C9(e=>{x.current?.removeEventListener("scroll",m),x.current?.removeEventListener("wheel",g),e?.addEventListener("scroll",m,{passive:!0}),e?.addEventListener("wheel",g,{passive:!0})},[]),v=C9(e=>{let r;h.resizeObserver?.disconnect(),e&&(h.resizeObserver=new ResizeObserver(([e])=>{let{height:s}=e.contentRect,i=s-(r??s);if(h.resizeDifference=i,h.scrollTop>h.targetScrollTop&&(h.scrollTop=h.targetScrollTop),o(h.isNearBottom),i>=0){let e=jt(l.current,r?l.current.resize:l.current.initial);f({animation:e,wait:!0,preserveScrollPosition:!0,duration:"instant"===e?void 0:350})}else h.isNearBottom&&(u(!1),d(!0));r=s,requestAnimationFrame(()=>{setTimeout(()=>{h.resizeDifference===i&&(h.resizeDifference=0)},1)})}),h.resizeObserver?.observe(e))},[]);return{contentRef:v,scrollRef:x,scrollToBottom:f,stopScroll:p,isAtBottom:i||a,isNearBottom:a,escapedFromLock:r,state:h}})({mass:n,damping:a,stiffness:o,resize:s,initial:i,targetScrollTop:$.useCallback((e,r)=>{let s=y?.targetScrollTop??l;return s?.(e,r)??e},[l])}),{scrollRef:f,contentRef:p,scrollToBottom:m,stopScroll:g,isAtBottom:x,escapedFromLock:v,state:_}=e??h,y=(0,$.useMemo)(()=>({scrollToBottom:m,stopScroll:g,scrollRef:f,isAtBottom:x,escapedFromLock:v,contentRef:p,state:_,get targetScrollTop(){return u.current},set targetScrollTop(targetScrollTop){u.current=targetScrollTop}}),[m,x,p,f,g,v,_]);return(0,$.useImperativeHandle)(c,()=>y,[y]),js(()=>{f.current&&"visible"===getComputedStyle(f.current).overflow&&(f.current.style.overflow="auto")},[]),$.createElement(jr.Provider,{value:y},$.createElement("div",{...d},"function"==typeof r?r(y):r))}function jn(){let e=(0,$.useContext)(jr);if(!e)throw Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}(ji||(ji={})).Content=function({children:e,scrollClassName:r,...s}){let i=jn();return $.createElement("div",{ref:i.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:r},$.createElement("div",{...s,ref:i.contentRef},"function"==typeof e?e(i):e))};let ja=({className:e,...r})=>(0,z.jsx)(ji,{className:(0,ey.cn)("relative flex-1 overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...r}),jo=({className:e,...r})=>(0,z.jsx)(ji.Content,{className:(0,ey.cn)("flex flex-col gap-8 p-4",e),...r}),jl=({className:e,...r})=>{let{isAtBottom:s,scrollToBottom:i}=jn(),n=(0,$.useCallback)(()=>{i()},[i]);return!s&&(0,z.jsx)(W.Button,{className:(0,ey.cn)("absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full",e),onClick:n,size:"icon",type:"button",variant:"outline",...r,children:(0,z.jsx)(C4,{className:"size-4"})})};var jc="HoverCard",[jd,ju]=K(jc,[i$]),jh=i$(),[jf,jp]=jd(jc),jm=e=>{let{__scopeHoverCard:r,children:s,open:i,defaultOpen:n,onOpenChange:a,openDelay:o=700,closeDelay:l=300}=e,c=jh(r),d=$.useRef(0),u=$.useRef(0),h=$.useRef(!1),f=$.useRef(!1),[p,m]=G({prop:i,defaultProp:n??!1,onChange:a,caller:jc}),g=$.useCallback(()=>{clearTimeout(u.current),d.current=window.setTimeout(()=>m(!0),o)},[o,m]),x=$.useCallback(()=>{clearTimeout(d.current),h.current||f.current||(u.current=window.setTimeout(()=>m(!1),l))},[l,m]),v=$.useCallback(()=>m(!1),[m]);return $.useEffect(()=>()=>{clearTimeout(d.current),clearTimeout(u.current)},[]),(0,z.jsx)(jf,{scope:r,open:p,onOpenChange:m,onOpen:g,onClose:x,onDismiss:v,hasSelectionRef:h,isPointerDownOnContentRef:f,children:(0,z.jsx)(iU,{...c,children:s})})};jm.displayName=jc;var jg="HoverCardTrigger",jx=$.forwardRef((e,r)=>{let{__scopeHoverCard:s,...i}=e,n=jp(jg,s),a=jh(s);return(0,z.jsx)(iq,{asChild:!0,...a,children:(0,z.jsx)(er.a,{"data-state":n.open?"open":"closed",...i,ref:r,onPointerEnter:q(e.onPointerEnter,jj(n.onOpen)),onPointerLeave:q(e.onPointerLeave,jj(n.onClose)),onFocus:q(e.onFocus,n.onOpen),onBlur:q(e.onBlur,n.onClose),onTouchStart:q(e.onTouchStart,e=>e.preventDefault())})})});jx.displayName=jg;var jv="HoverCardPortal",[j_,jy]=jd(jv,{forceMount:void 0}),jb=e=>{let{__scopeHoverCard:r,forceMount:s,children:i,container:n}=e,a=jp(jv,r);return(0,z.jsx)(j_,{scope:r,forceMount:s,children:(0,z.jsx)(Z,{present:s||a.open,children:(0,z.jsx)(eW,{asChild:!0,container:n,children:i})})})};jb.displayName=jv;var jw="HoverCardContent",jS=$.forwardRef((e,r)=>{let s=jy(jw,e.__scopeHoverCard),{forceMount:i=s.forceMount,...n}=e,a=jp(jw,e.__scopeHoverCard);return(0,z.jsx)(Z,{present:i||a.open,children:(0,z.jsx)(jC,{"data-state":a.open?"open":"closed",...n,onPointerEnter:q(e.onPointerEnter,jj(a.onOpen)),onPointerLeave:q(e.onPointerLeave,jj(a.onClose)),ref:r})})});jS.displayName=jw;var jC=$.forwardRef((e,r)=>{let{__scopeHoverCard:s,onEscapeKeyDown:i,onPointerDownOutside:n,onFocusOutside:a,onInteractOutside:o,...l}=e,c=jp(jw,s),d=jh(s),u=$.useRef(null),h=(0,U.useComposedRefs)(r,u),[f,p]=$.useState(!1);return $.useEffect(()=>{if(f){let e=document.body;return O=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=O,e.style.webkitUserSelect=O}}},[f]),$.useEffect(()=>{if(u.current){let e=()=>{p(!1),c.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(c.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!1}}},[c.isPointerDownOnContentRef,c.hasSelectionRef]),$.useEffect(()=>{u.current&&(function(e){let r=[],s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;s.nextNode();)r.push(s.currentNode);return r})(u.current).forEach(e=>e.setAttribute("tabindex","-1"))}),(0,z.jsx)(eR,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:o,onEscapeKeyDown:i,onPointerDownOutside:n,onFocusOutside:q(a,e=>{e.preventDefault()}),onDismiss:c.onDismiss,children:(0,z.jsx)(iX,{...d,...l,onPointerDown:q(l.onPointerDown,e=>{e.currentTarget.contains(e.target)&&p(!0),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!0}),ref:h,style:{...l.style,userSelect:f?"text":void 0,WebkitUserSelect:f?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})});function jj(e){return r=>"touch"===r.pointerType?void 0:e()}function jk({...e}){return(0,z.jsx)(jm,{"data-slot":"hover-card",...e})}function jN({...e}){return(0,z.jsx)(jx,{"data-slot":"hover-card-trigger",...e})}function jE({className:e,align:r="center",sideOffset:s=4,...i}){return(0,z.jsx)(jb,{"data-slot":"hover-card-portal",children:(0,z.jsx)(jS,{"data-slot":"hover-card-content",align:r,sideOffset:s,className:(0,ey.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...i})})}$.forwardRef((e,r)=>{let{__scopeHoverCard:s,...i}=e,n=jh(s);return(0,z.jsx)(iQ,{...n,...i,ref:r})}).displayName="HoverCardArrow";let jD=(0,ew.default)("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]),jR=(0,ew.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);(0,ew.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);let jA=(0,ew.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),jM=(e=21)=>{let r="",s=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)r+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&s[e]];return r},jF=(0,$.createContext)(null),jT=(0,$.createContext)(null),jP=()=>(0,$.useContext)(jF),jB=(0,$.createContext)(null),jL=()=>{let e=(0,$.useContext)(jT),r=(0,$.useContext)(jB),s=e??r;if(!s)throw Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return s};function jI({data:e,className:r,...s}){let i=jL(),n=e.filename||"",a="image"==(e.mediaType?.startsWith("image/")&&e.url?"image":"file"),o=n||(a?"Image":"Attachment");return(0,z.jsxs)(jX,{children:[(0,z.jsx)(jN,{asChild:!0,children:(0,z.jsxs)("div",{className:(0,ey.cn)("group relative flex h-8 cursor-pointer select-none items-center gap-1.5 rounded-md border border-border px-1.5 font-medium text-sm transition-all hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",r),...s,children:[(0,z.jsxs)("div",{className:"relative size-5 shrink-0",children:[(0,z.jsx)("div",{className:"absolute inset-0 flex size-5 items-center justify-center overflow-hidden rounded bg-background transition-opacity group-hover:opacity-0",children:a?(0,z.jsx)("img",{alt:n||"attachment",className:"size-5 object-cover",height:20,src:e.url,width:20}):(0,z.jsx)("div",{className:"flex size-5 items-center justify-center text-muted-foreground",children:(0,z.jsx)(jA,{className:"size-3"})})}),(0,z.jsxs)(W.Button,{"aria-label":"Remove attachment",className:"absolute inset-0 size-5 cursor-pointer rounded p-0 opacity-0 transition-opacity group-hover:pointer-events-auto group-hover:opacity-100 [&>svg]:size-2.5",onClick:r=>{r.stopPropagation(),i.remove(e.id)},type:"button",variant:"ghost",children:[(0,z.jsx)(t8,{}),(0,z.jsx)("span",{className:"sr-only",children:"Remove"})]})]}),(0,z.jsx)("span",{className:"flex-1 truncate",children:o})]},e.id)}),(0,z.jsx)(jJ,{className:"w-auto p-2",children:(0,z.jsxs)("div",{className:"w-auto space-y-3",children:[a&&(0,z.jsx)("div",{className:"flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border",children:(0,z.jsx)("img",{alt:n||"attachment preview",className:"max-h-full max-w-full object-contain",height:384,src:e.url,width:448})}),(0,z.jsx)("div",{className:"flex items-center gap-2.5",children:(0,z.jsxs)("div",{className:"min-w-0 flex-1 space-y-1 px-0.5",children:[(0,z.jsx)("h4",{className:"truncate font-semibold text-sm leading-none",children:n||(a?"Image":"Attachment")}),e.mediaType&&(0,z.jsx)("p",{className:"truncate font-mono text-muted-foreground text-xs",children:e.mediaType})]})})]})})]})}function jO({children:e,className:r,...s}){let i=jL();return i.files.length?(0,z.jsx)("div",{className:(0,ey.cn)("flex flex-wrap items-center gap-2 p-3 w-full",r),...s,children:i.files.map(r=>(0,z.jsx)($.Fragment,{children:e(r)},r.id))}):null}let jz=({label:e="Add photos or files",...r})=>{let s=jL();return(0,z.jsxs)(ax,{...r,onSelect:e=>{e.preventDefault(),s.openFileDialog()},children:[(0,z.jsx)(jR,{className:"mr-2 size-4"})," ",e]})},j$=({className:e,accept:r,multiple:s,globalDrop:i,syncHiddenInput:n,maxFiles:a,maxFileSize:o,onError:l,onSubmit:c,children:d,...u})=>{let h=jP(),f=!!h,p=(0,$.useRef)(null),m=(0,$.useRef)(null),[g,x]=(0,$.useState)([]),v=f?h.attachments.files:g,_=(0,$.useRef)(v);_.current=v;let y=(0,$.useCallback)(()=>{p.current?.click()},[]),b=(0,$.useCallback)(e=>!r||""===r.trim()||r.split(",").map(e=>e.trim()).filter(Boolean).some(r=>{if(r.endsWith("/*")){let s=r.slice(0,-1);return e.type.startsWith(s)}return e.type===r}),[r]),w=(0,$.useCallback)(e=>{let r=Array.from(e),s=r.filter(e=>b(e));if(r.length&&0===s.length)return void l?.({code:"accept",message:"No files match the accepted types."});let i=s.filter(e=>!o||e.size<=o);s.length>0&&0===i.length?l?.({code:"max_file_size",message:"All files exceed the maximum size."}):x(e=>{let r="number"==typeof a?Math.max(0,a-e.length):void 0,s="number"==typeof r?i.slice(0,r):i;"number"==typeof r&&i.length>r&&l?.({code:"max_files",message:"Too many files. Some were not added."});let n=[];for(let e of s)n.push({id:jM(),type:"file",url:URL.createObjectURL(e),mediaType:e.type,filename:e.name});return e.concat(n)})},[b,a,o,l]),S=(0,$.useCallback)(e=>x(r=>{let s=r.find(r=>r.id===e);return s?.url&&URL.revokeObjectURL(s.url),r.filter(r=>r.id!==e)}),[]),C=(0,$.useCallback)(()=>x(e=>{for(let r of e)r.url&&URL.revokeObjectURL(r.url);return[]}),[]),j=f?h.attachments.add:w,k=f?h.attachments.remove:S,N=f?h.attachments.clear:C,E=f?h.attachments.openFileDialog:y;(0,$.useEffect)(()=>{f&&h.__registerFileInput(p,()=>p.current?.click())},[f,h]),(0,$.useEffect)(()=>{n&&p.current&&0===v.length&&(p.current.value="")},[v,n]),(0,$.useEffect)(()=>{let e=m.current;if(!e||i)return;let r=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault()},s=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault(),e.dataTransfer?.files&&e.dataTransfer.files.length>0&&j(e.dataTransfer.files)};return e.addEventListener("dragover",r),e.addEventListener("drop",s),()=>{e.removeEventListener("dragover",r),e.removeEventListener("drop",s)}},[j,i]),(0,$.useEffect)(()=>{if(!i)return;let e=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault()},r=e=>{e.dataTransfer?.types?.includes("Files")&&e.preventDefault(),e.dataTransfer?.files&&e.dataTransfer.files.length>0&&j(e.dataTransfer.files)};return document.addEventListener("dragover",e),document.addEventListener("drop",r),()=>{document.removeEventListener("dragover",e),document.removeEventListener("drop",r)}},[j,i]),(0,$.useEffect)(()=>()=>{if(!f)for(let e of _.current)e.url&&URL.revokeObjectURL(e.url)},[f]);let D=async e=>{try{let r=await fetch(e),s=await r.blob();return new Promise(e=>{let r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=()=>e(null),r.readAsDataURL(s)})}catch{return null}},R=(0,$.useMemo)(()=>({files:v.map(e=>({...e,id:e.id})),add:j,remove:k,clear:N,openFileDialog:E,fileInputRef:p}),[v,j,k,N,E]),A=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("input",{accept:r,"aria-label":"Upload files",className:"hidden",multiple:s,onChange:e=>{e.currentTarget.files&&j(e.currentTarget.files),e.currentTarget.value=""},ref:p,title:"Upload files",type:"file"}),(0,z.jsx)("form",{className:(0,ey.cn)("w-full",e),onSubmit:e=>{e.preventDefault();let r=e.currentTarget,s=f?h.textInput.value:new FormData(r).get("message")||"";f||r.reset(),Promise.all(v.map(async({id:e,...r})=>{if(r.url&&r.url.startsWith("blob:")){let e=await D(r.url);return{...r,url:e??r.url}}return r})).then(r=>{try{let i=c({text:s,files:r},e);i instanceof Promise?i.then(()=>{N(),f&&h.textInput.clear()}).catch(()=>{}):(N(),f&&h.textInput.clear())}catch{}}).catch(()=>{})},ref:m,...u,children:(0,z.jsx)(y1,{className:"overflow-hidden",children:d})})]});return f?A:(0,z.jsx)(jB.Provider,{value:R,children:A})},jW=({onChange:e,onKeyDown:r,onPasteText:s,className:i,placeholder:n="What would you like to know?",...a})=>{let o=jP(),l=jL(),[c,d]=(0,$.useState)(!1),u=o?{value:o.textInput.value,onChange:r=>{o.textInput.setInput(r.currentTarget.value),e?.(r)}}:{onChange:e};return(0,z.jsx)(y8,{className:(0,ey.cn)("field-sizing-content max-h-48 min-h-9",i),name:"message",onCompositionEnd:()=>d(!1),onCompositionStart:()=>d(!0),onKeyDown:e=>{if(r?.(e),!e.defaultPrevented){if("Enter"===e.key){if(c||e.nativeEvent.isComposing||e.shiftKey)return;e.preventDefault();let r=e.currentTarget.form,s=r?.querySelector('button[type="submit"]');if(s?.disabled)return;r?.requestSubmit()}if("Backspace"===e.key&&""===e.currentTarget.value&&l.files.length>0){e.preventDefault();let r=l.files.at(-1);r&&l.remove(r.id)}}},onPaste:e=>{let r=e.clipboardData?.items;if(!r)return;let i=[];for(let e of r)if("file"===e.kind){let r=e.getAsFile();r&&i.push(r)}if(i.length>0){e.preventDefault(),l.add(i);return}if(s){let r=e.clipboardData.getData("text");r.length>0&&s(e,r)}},placeholder:n,...a,...u})},jH=({className:e,...r})=>(0,z.jsx)(y5,{align:"block-end",className:(0,ey.cn)("order-first flex-wrap gap-1",e),...r}),jU=({variant:e="ghost",className:r,size:s,...i})=>{let n=s??($.Children.count(i.children)>1?"sm":"icon-sm");return(0,z.jsx)(y4,{className:(0,ey.cn)(r),size:n,type:"button",variant:e,...i})},jK=e=>(0,z.jsx)(ap,{...e}),jq=({className:e,children:r,...s})=>(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)(jU,{className:e,...s,children:r??(0,z.jsx)(eS,{className:"size-4"})})}),jV=({className:e,...r})=>(0,z.jsx)(ag,{align:"start",className:(0,ey.cn)(e),...r}),jY=({className:e,...r})=>(0,z.jsx)(ax,{className:(0,ey.cn)(e),...r}),jG=({className:e,variant:r="default",size:s="icon-sm",status:i,children:n,...a})=>{let o=(0,z.jsx)(jD,{className:"size-4"});return"submitted"===i?o=(0,z.jsx)(rk,{className:"size-4 animate-spin"}):"streaming"===i?o=(0,z.jsx)(uA,{className:"size-4"}):"error"===i&&(o=(0,z.jsx)(t8,{className:"size-4"})),(0,z.jsx)(y4,{"aria-label":"Submit",className:(0,ey.cn)(e),size:s,type:"submit",variant:r,...a,children:n??o})},jX=({openDelay:e=0,closeDelay:r=0,...s})=>(0,z.jsx)(jk,{closeDelay:r,openDelay:e,...s}),jJ=({align:e="start",...r})=>(0,z.jsx)(jE,{align:e,...r}),jZ=({size:e=16})=>(0,z.jsxs)("svg",{height:e,strokeLinejoin:"round",style:{color:"currentcolor"},viewBox:"0 0 16 16",width:e,children:[(0,z.jsx)("title",{children:"Loader"}),(0,z.jsxs)("g",{clipPath:"url(#clip0_2393_1490)",children:[(0,z.jsx)("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),(0,z.jsx)("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),(0,z.jsx)("defs",{children:(0,z.jsx)("clipPath",{id:"clip0_2393_1490",children:(0,z.jsx)("rect",{fill:"white",height:"16",width:"16"})})})]}),jQ=({className:e,size:r=16,...s})=>(0,z.jsx)("div",{className:(0,ey.cn)("inline-flex animate-spin items-center justify-center",e),...s,children:(0,z.jsx)(jZ,{size:r})}),j0=(0,ew.default)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),j1=(0,ew.default)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),j2=(0,ew.default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),j5=(0,ew.default)("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]),j3=(0,ew.default)("split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]),j4=e=>(0,ey.cn)("flex h-5 w-5 shrink-0 items-center justify-center rounded-full","codex"===e?"bg-emerald-500/10 text-emerald-600":"bg-violet-500/10 text-violet-600");function j6({agentType:e,currentAgentName:r,alternateProviders:s,onBranch:i,disabled:n,emphasis:a="normal"}){return(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:(0,ey.cn)("h-7 w-7 rounded-md transition-colors hover:bg-muted hover:text-foreground","subtle"===a?"text-muted-foreground/50 group-hover:text-muted-foreground group-focus-within:text-muted-foreground":"text-muted-foreground"),disabled:n,"aria-label":"Branch conversation",children:n?(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}):(0,z.jsx)(j3,{className:"h-4 w-4"})})}),(0,z.jsxs)(ag,{align:"start",className:"w-44 p-1.5",children:[(0,z.jsx)(ab,{className:"px-2 py-1.5",children:(0,z.jsx)("div",{className:"text-xs font-medium",children:"Branch conversation"})}),(0,z.jsxs)(ax,{className:"h-8 cursor-pointer items-center gap-2 rounded-md px-2 text-xs",onSelect:()=>i(),children:[(0,z.jsx)("div",{className:j4(e),children:(0,z.jsx)(aE,{className:"h-3 w-3"})}),(0,z.jsx)("span",{className:"min-w-0 flex-1 truncate",children:r}),(0,z.jsx)("span",{className:"shrink-0 text-[11px] text-muted-foreground",children:"current"})]}),s.length>0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(aw,{className:"my-1"}),s.map(e=>(0,z.jsxs)(ax,{className:"h-8 cursor-pointer items-center gap-2 rounded-md px-2 text-xs",onSelect:()=>i(e.type),children:[(0,z.jsx)("div",{className:j4(e.type),children:(0,z.jsx)(aE,{className:"h-3 w-3"})}),(0,z.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.displayName})]},e.type))]})]})]})}function j8({durationMs:e,outcome:r,emphasis:s,agentType:i,currentAgentName:n,alternateProviders:a,onBranch:o,disabled:l}){let c=void 0!==e?function(e){let r=Math.round(e/1e3);if(r<60)return`${r}s`;let s=Math.floor(r/60),i=r%60;if(s<60)return i?`${s}m ${i}s`:`${s}m`;let n=Math.floor(s/60),a=s%60;return a?`${n}h ${a}m`:`${n}h`}(e):"server_restart"===r?"interrupted":null;return(0,z.jsxs)("div",{className:"group flex items-center gap-2 py-0.5","data-turn-end":!0,children:[(0,z.jsx)("div",{className:"h-px flex-1 bg-border/60"}),null!==c&&(0,z.jsx)("span",{className:(0,ey.cn)("shrink-0 text-[11px] tabular-nums transition-colors","subtle"===s?"text-muted-foreground/50 group-hover:text-muted-foreground group-focus-within:text-muted-foreground":"text-muted-foreground"),children:c}),(0,z.jsx)(j6,{agentType:i,currentAgentName:n,alternateProviders:a,onBranch:o,disabled:l,emphasis:s}),(0,z.jsx)("div",{className:"h-px flex-1 bg-border/60"})]})}let j7=(0,ew.default)("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);function j9({mode:e,onModeChange:r,disabled:s}){return(0,z.jsxs)("div",{className:"inline-flex items-center rounded-md border bg-muted/50 px-0.5 text-xs",children:[(0,z.jsxs)("button",{onClick:()=>r("plan"),disabled:s,className:(0,ey.cn)("inline-flex items-center gap-1 rounded-sm px-2 py-0.5 transition-colors","plan"===e?"bg-primary text-primary-foreground font-medium shadow-sm":"text-muted-foreground hover:text-foreground",s&&"opacity-50 cursor-not-allowed"),children:[(0,z.jsx)(j7,{className:"h-3 w-3"}),"Plan"]}),(0,z.jsxs)("button",{onClick:()=>r("edit"),disabled:s,className:(0,ey.cn)("inline-flex items-center gap-1 rounded-sm px-2 py-0.5 transition-colors","edit"===e?"bg-primary text-primary-foreground font-medium shadow-sm":"text-muted-foreground hover:text-foreground",s&&"opacity-50 cursor-not-allowed"),children:[(0,z.jsx)(rg,{className:"h-3 w-3"}),"Edit"]})]})}function ke(e){if(!e)return[];try{let r=window.localStorage.getItem(e);if(!r)return[];let s=JSON.parse(r);if(!Array.isArray(s))return[];return s.filter(e=>"string"==typeof e)}catch{return[]}}function kt(e){if(!e)return"";try{return window.localStorage.getItem(e)??""}catch{return""}}function kr(e){let r=e.parentElement;for(;r;){let{overflowY:e}=getComputedStyle(r);if("auto"===e||"scroll"===e)return r;r=r.parentElement}return null}function ks({messages:e,contentRef:r}){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(!1),[o,l]=(0,$.useState)(null),c=(0,$.useRef)(null),d=(0,$.useCallback)(()=>{let s=r.current;if(!s)return;c.current||(c.current=kr(s));let n=c.current;if(!n)return;let o=n.scrollHeight>n.clientHeight;if(a(o),!o)return void i([]);let l=s.querySelectorAll("[data-user-msg-idx]"),d=n.getBoundingClientRect(),u=[];l.forEach(r=>{let s=parseInt(r.dataset.userMsgIdx,10),i=e[s];if(!i)return;let a=(r.getBoundingClientRect().top-d.top+n.scrollTop)/n.scrollHeight;u.push({index:s,position:Math.max(0,Math.min(1,a)),preview:function(e){if("user"!==e.type)return"";let r=e.content,s="string"==typeof r?r:r.filter(e=>"text"===e.type).map(e=>e.text).join(" "),i="string"!=typeof r&&r.some(e=>"image"===e.type),n=s.split("\n")[0]??"";return(n.length>80?n.slice(0,77)+"...":n)||(i?"(Image)":"")}(i)})}),i(u)},[e,r]);(0,$.useEffect)(()=>{let e=r.current;if(!e){c.current=null,i([]),a(!1);return}let s=kr(e);if(!s)return;c.current=s,d();let n=new ResizeObserver(d);return n.observe(s),n.observe(e),()=>{n.disconnect()}},[e,d,r]);let u=(0,$.useCallback)(e=>{let s=r.current;if(!s)return;let i=s.querySelector(`[data-user-msg-idx="${e}"]`);i&&i.scrollIntoView({block:"start",behavior:"smooth"})},[r]);return n&&0!==s.length?(0,z.jsx)("div",{className:"absolute right-0 top-0 bottom-0 w-6 z-20 pointer-events-none",children:s.map(e=>(0,z.jsxs)("div",{className:"absolute right-0.5 -translate-y-1/2 pointer-events-auto",style:{top:`${100*e.position}%`},children:[(0,z.jsx)("div",{className:"w-3 h-[3px] rounded-sm bg-primary/50 hover:bg-primary cursor-pointer transition-colors",onClick:()=>u(e.index),onMouseEnter:()=>l(e.index),onMouseLeave:()=>l(null)}),o===e.index&&e.preview&&(0,z.jsxs)("div",{className:"absolute right-full mr-2 top-1/2 -translate-y-1/2 max-w-64 px-2.5 py-1.5 bg-popover border border-border rounded-md shadow-md text-xs text-popover-foreground whitespace-nowrap overflow-hidden text-ellipsis pointer-events-none",children:[e.preview,(0,z.jsx)("div",{className:"absolute top-1/2 -translate-y-1/2 -right-1 w-2 h-2 bg-popover border-r border-t border-border rotate-45"})]})]},e.index))}):null}let ki=(0,ew.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);function kn({projectId:e,branch:r,currentSessionId:s,refreshKey:i,pendingTitleSessionId:n,aiTitleOverride:a,onSwitch:o,onDelete:l}){let[c,d]=(0,$.useState)([]),[u,h]=(0,$.useState)(null),[f,p]=(0,$.useState)(""),[m,g]=(0,$.useState)(!1),[x,v]=(0,$.useState)(null),[_,y]=(0,$.useState)(null),[b,w]=(0,$.useState)(0),S=(0,$.useCallback)(()=>w(e=>e+1),[]);(0,$.useEffect)(()=>{let s=!1;return(0,rv.listBranchSessions)(e,r).then(e=>{s||d(e.sessions)}).catch(e=>{s||console.error("[SessionHistoryDropdown] refresh failed:",e)}),()=>{s=!0}},[e,r,i,b]);let C=(0,$.useRef)(null);(0,$.useEffect)(()=>{if(!s)return;if(c.some(e=>e.id===s)){C.current=null;return}if(C.current===s)return;C.current=s;let i=!1;return(0,rv.listBranchSessions)(e,r).then(e=>{if(i)return;d(e.sessions);let r=e.sessions.find(e=>e.id===s),n=!!r&&(a?.sessionId===r.id||!!(r.title&&r.title.trim().length>0));r&&!n&&y(s)}).catch(e=>{i||console.error("[SessionHistoryDropdown] missing-session refresh failed:",e)}),()=>{i=!0}},[s,c,e,r,a]),(0,$.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>{y(e=>e===_?null:e)},3e4);return()=>clearTimeout(e)},[_]),(0,$.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>{y(e=>e===_?null:e)},3e4);return()=>clearTimeout(e)},[_]);let j=async(e,r)=>{let s=r.trim().length>0?r.trim():null;try{await (0,rv.renameSession)(e,s),d(r=>r.map(r=>r.id===e?{...r,title:s}:r)),h(null),xg.toast.success("Renamed")}catch(e){xg.toast.error("Rename failed"),console.error(e)}},k=async(e,r)=>{let s=null==r,i=s?Date.now():null;d(r=>r.map(r=>r.id===e?{...r,favorited_at:i}:r));try{await (0,rv.setSessionFavorited)(e,s)}catch(i){d(s=>s.map(s=>s.id===e?{...s,favorited_at:r}:s)),xg.toast.error(s?"Favorite failed":"Unfavorite failed"),console.error(i)}},N=async e=>{try{await (0,rv.deleteSession)(e);let r=c.filter(r=>r.id!==e);d(r),l?.(e,r),xg.toast.success("Deleted")}catch(e){xg.toast.error("Delete failed"),console.error(e)}},E=e=>a&&a.sessionId===e.id?a.title:e.title&&e.title.trim().length>0?e.title:e.updated_at?new Date(e.updated_at).toLocaleString():new Date(e.created_at).toLocaleString(),D=e=>{let r;return a?.sessionId!==e.id&&(!e.title||!(e.title.trim().length>0))&&(r=e.id,null!==n&&n===r||_===e.id)},R=c.find(e=>e.id===s),A=null!==s&&(!R||D(R)),M=R?E(R):null===s?"New Session":"History",F=A?"Generating title…":M;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(ap,{open:m,onOpenChange:e=>{g(e),e&&S()},children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",className:"h-7 text-xs gap-1 w-[200px] justify-start",title:F,children:[A?(0,z.jsx)("span",{className:"block h-3 flex-1 rounded-sm bg-accent animate-pulse",role:"status","aria-label":"Generating title"}):(0,z.jsx)("span",{className:"truncate flex-1 text-left",children:M}),(0,z.jsx)(sw,{className:"h-3 w-3 flex-shrink-0"})]})}),(0,z.jsxs)(ag,{align:"start",className:"w-80 max-h-96 overflow-y-auto",children:[0===c.length&&(0,z.jsx)("div",{className:"px-2 py-3 text-xs text-muted-foreground",children:"No history yet."}),c.map(e=>{let r=e.id===s,i=u===e.id;return(0,z.jsxs)(ax,{onSelect:s=>{i?s.preventDefault():r||o(e.id)},onPointerMove:null!==u?e=>e.preventDefault():void 0,className:`flex items-center gap-2 group ${r?"bg-accent text-accent-foreground":""}`,children:[(0,z.jsx)("div",{className:"flex-1 min-w-0",children:i?(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsx)(ro,{value:f,onChange:e=>p(e.target.value),onKeyDown:r=>{r.stopPropagation(),"Enter"===r.key&&j(e.id,f),"Escape"===r.key&&h(null)},autoFocus:!0,className:"h-6 text-xs"}),(0,z.jsx)("button",{type:"button","aria-label":"Save rename",onClick:r=>{r.stopPropagation(),j(e.id,f)},children:(0,z.jsx)(rf.Check,{className:"h-3 w-3"})}),(0,z.jsx)("button",{type:"button","aria-label":"Cancel rename",onClick:e=>{e.stopPropagation(),h(null)},children:(0,z.jsx)(t8,{className:"h-3 w-3"})})]}):D(e)?(0,z.jsx)("div",{className:"py-0.5",title:"Generating title…",children:(0,z.jsx)("span",{className:"block h-3 w-40 rounded-sm bg-accent animate-pulse",role:"status","aria-label":"Generating title"})}):(0,z.jsx)("div",{className:"truncate text-xs",title:`${e.updated_at?new Date(e.updated_at).toLocaleString():new Date(e.created_at).toLocaleString()} • ${e.entry_count??0} messages • status: ${e.status}`,children:E(e)})}),!i&&(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsxs)("div",{className:"opacity-0 group-hover:opacity-100 flex items-center gap-1",children:[(0,z.jsx)("button",{type:"button","aria-label":"Rename conversation",onClick:r=>{r.stopPropagation(),h(e.id),p(e.title??"")},className:"p-1 hover:bg-muted rounded",children:(0,z.jsx)(rg,{className:"h-3 w-3"})}),(0,z.jsx)("button",{type:"button","aria-label":"Delete conversation",onClick:r=>{r.stopPropagation(),g(!1),v(e)},className:"p-1 hover:bg-muted rounded text-destructive",children:(0,z.jsx)(rc,{className:"h-3 w-3"})})]}),(0,z.jsx)("button",{type:"button","aria-label":null!=e.favorited_at?"Unfavorite conversation":"Favorite conversation",title:null!=e.favorited_at?"Unfavorite":"Favorite",onClick:r=>{r.stopPropagation(),k(e.id,e.favorited_at??null)},className:`p-1 hover:bg-muted rounded ${null!=e.favorited_at?"opacity-100 text-yellow-500":"opacity-0 group-hover:opacity-100 text-muted-foreground"}`,children:(0,z.jsx)(ki,{className:`h-3 w-3 ${null!=e.favorited_at?"fill-current":""}`})})]})]},e.id)}),c.length>0&&(0,z.jsx)(aw,{}),(0,z.jsx)(ax,{onSelect:()=>S(),className:"text-xs text-muted-foreground",children:"Refresh"})]})]}),(0,z.jsx)(lU,{open:null!==x,onOpenChange:e=>{e||v(null)},children:(0,z.jsxs)(lV,{children:[(0,z.jsxs)(lY,{children:[(0,z.jsx)(lX,{children:"Delete conversation?"}),(0,z.jsx)(lJ,{children:x?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{className:"font-medium text-foreground",children:E(x)})," ","and its message history will be permanently deleted. This cannot be undone."]}):null})]}),(0,z.jsxs)(lG,{children:[(0,z.jsx)(lQ,{children:"Cancel"}),(0,z.jsx)(lZ,{className:(0,ey.cn)((0,W.buttonVariants)({variant:"destructive"}),"border-transparent"),onClick:()=>{x&&N(x.id),v(null)},children:"Delete"})]})]})})]})}let ka=(0,ew.default)("quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]);function ko(e,r){let s=e;for(;s&&s!==r;){if(s.nodeType===Node.ELEMENT_NODE){let e=s.getAttribute("data-message-idx");if(null!==e)return e}s=s.parentNode}return null}function kl({containerRef:e,onQuote:r}){let[s,i]=(0,$.useState)(null);if((0,$.useEffect)(()=>{function r(){let r=e.current;if(!r)return void i(null);let s=window.getSelection();if(!s||s.isCollapsed||0===s.rangeCount)return void i(null);let n=s.toString();if(!n.trim())return void i(null);let{anchorNode:a,focusNode:o}=s;if(!a||!o||!r.contains(a)||!r.contains(o))return void i(null);let l=ko(a,r),c=ko(o,r);if(null===l||null===c||l!==c)return void i(null);let d=s.getRangeAt(0).getBoundingClientRect();0===d.width&&0===d.height?i(null):i({text:n,rect:{top:d.top,bottom:d.bottom,left:d.left,width:d.width}})}function s(){let e=window.getSelection();e&&!e.isCollapsed&&e.toString().trim()||i(null)}return document.addEventListener("mouseup",r),document.addEventListener("keyup",r),document.addEventListener("touchend",r),document.addEventListener("selectionchange",s),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{document.removeEventListener("mouseup",r),document.removeEventListener("keyup",r),document.removeEventListener("touchend",r),document.removeEventListener("selectionchange",s),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e]),!s||"undefined"==typeof document)return null;let n=s.rect.top-8-30<8?s.rect.bottom+8:s.rect.top-8-30,a=s.rect.left+s.rect.width/2,o=Math.max(8,Math.min(window.innerWidth-8,a));return(0,ee.createPortal)((0,z.jsxs)("button",{type:"button",onMouseDown:e=>{e.preventDefault(),r(s.text),window.getSelection()?.removeAllRanges(),i(null)},style:{position:"fixed",top:n,left:o,transform:"translateX(-50%)",zIndex:50},className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-2xl hover:bg-accent",children:[(0,z.jsx)(ka,{className:"h-3 w-3"}),"Quote"]}),document.body)}let kc=(0,ew.default)("search-check",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),kd=[{type:"claude-code",displayName:"Claude Code",available:!0},{type:"codex",displayName:"Codex",available:!0}];function ku({projectId:e,branch:r,sessionId:s,currentAgentType:i,providers:n}){let[a,o]=(0,$.useState)(!1),[l,c]=(0,$.useState)(""),[d,u]=(0,$.useState)("claude-code"),[h,f]=(0,$.useState)("new"),[p,m]=(0,$.useState)(null),[g,x]=(0,$.useState)(!1),[v,_]=(0,$.useState)(null),[y,b]=(0,$.useState)(!1),[w,S]=(0,$.useState)(null),C=(0,$.useRef)(null),j=n?.length?n:kd;if((0,$.useEffect)(()=>{var e;let r;a&&u((e=i??null,r=j.filter(e=>e.available),r.find(r=>r.type!==e)?.type??r[0]?.type??"claude-code"))},[a]),(0,$.useEffect)(()=>{if(!a||!s)return;let r=!1;return f("new"),m(null),_(null),x(!0),rv.api.getReviewerCandidate(e,s).then(e=>{!r&&(m(e),e?.available&&e.sessionId?f("reuse"):e&&_("上次 reviewer 已不可用,将创建新 session"))}).catch(()=>{r||_("无法加载上次 reviewer,将创建新 session")}).finally(()=>{r||x(!1)}),()=>{r=!0}},[a,e,s]),(0,$.useEffect)(()=>{if(!a){C.current=null;return}!s||g||"new"!==h||C.current||(C.current=rv.api.generateReviewIntentBrief(e,s).catch(()=>null))},[a,g,h,e,s]),!s)return null;let k=async()=>{b(!0),S(null);try{let i="reuse"===h&&p?.sessionId?{reviewerSessionId:p.sessionId}:{reviewerAgentType:d},n="reviewerAgentType"in i&&C.current?await C.current:null;await rv.api.createWorkflowRun({projectId:e,branch:r,sourceSessionId:s,reviewFocus:l.trim()||void 0,...i,...n?{intentBrief:n}:{}}),o(!1),c("")}catch(r){S(r instanceof Error?r.message:String(r)),rv.api.getReviewerCandidate(e,s).then(e=>{m(e),e?.available&&e.sessionId||(f("new"),_("上次 reviewer 已不可用,将创建新 session"))}).catch(()=>void 0)}finally{b(!1)}};return(0,z.jsxs)(t7,{open:a,onOpenChange:o,children:[(0,z.jsx)(t9,{asChild:!0,children:(0,z.jsx)(W.Button,{variant:"ghost",size:"sm",title:"让另一个 agent review 这个 session 的最新成果",children:(0,z.jsx)(kc,{className:"h-4 w-4"})})}),(0,z.jsxs)(rr,{className:"sm:max-w-md",children:[(0,z.jsxs)(rs,{children:[(0,z.jsx)(rn,{children:"发起 Review"}),(0,z.jsx)(ra,{children:"默认继续上次 reviewer 的上下文,也可以创建新 reviewer session。反馈会先经你确认,再发回本 session。"})]}),(0,z.jsxs)("div",{className:"grid gap-2",children:[p?.available&&p.sessionId&&(0,z.jsxs)(W.Button,{type:"button",variant:"reuse"===h?"secondary":"outline",className:"h-auto justify-start whitespace-normal py-2 text-left","aria-pressed":"reuse"===h,onClick:()=>f("reuse"),children:["继续上次 Reviewer — ",p.title??"Review session"]}),(0,z.jsx)(W.Button,{type:"button",variant:"new"===h?"secondary":"outline",className:"justify-start","aria-pressed":"new"===h,onClick:()=>f("new"),children:"创建新 Reviewer Session"})]}),v&&(0,z.jsx)("p",{className:"text-sm text-amber-600 dark:text-amber-400",children:v}),"new"===h&&(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"text-sm text-muted-foreground shrink-0",children:"Reviewer agent"}),(0,z.jsxs)(cX,{value:d,onValueChange:e=>u(e),children:[(0,z.jsx)(cZ,{className:"h-8 text-sm flex-1",children:(0,z.jsx)(cJ,{})}),(0,z.jsx)(cQ,{children:j.map(e=>(0,z.jsxs)(c0,{value:e.type,disabled:!e.available,children:[e.displayName,e.type===i?"(当前 agent)":""]},e.type))})]})]}),(0,z.jsx)("input",{className:"w-full rounded-md border bg-transparent px-3 py-2 text-sm",placeholder:"Review focus(可选):本次审查重点…",value:l,onChange:e=>c(e.target.value)}),w&&(0,z.jsx)("p",{className:"text-sm text-destructive",children:w}),(0,z.jsx)(ri,{children:(0,z.jsx)(W.Button,{onClick:k,disabled:y||g,children:y?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}),"正在准备 review 上下文…"]}):"开始 Review"})})]})]})}function kh(){return 0===jL().files.length?null:(0,z.jsx)(jH,{children:(0,z.jsx)(jO,{children:e=>(0,z.jsx)(jI,{data:e})})})}let kf=(0,$.createContext)(null);function kp(){let e=(0,$.useContext)(kf);if(!e)throw Error("useAgentConversation must be used within AgentConversationContext");return e}let km=/\[📎 paste #(\d+) \([^)]+\)\]/g;function kg(e,r){return`[📎 paste #${e} (${function(e){if(e<1024)return`${e}B`;let r=e/1024;return r<10?`${r.toFixed(1)}KB`:`${Math.round(r)}KB`}(r)})]`}let kx=(0,$.forwardRef)(function({projectId:e,branch:r,sessionId:s,setSessionUrlParam:i,project:n,onAgentModeChange:a,onTaskCompleted:o,onSessionStarted:l,onSessionTitleUpdated:c,onStatusChange:d,onNewConversation:u},h){var f;let p,m,g,x,[v,_]=function(e,r){let s=e&&r?`vibedeckx:agent-draft:${e}:${r}`:null,[i,n]=(0,$.useState)(()=>kt(s)),[a,o]=(0,$.useState)(s);return a!==s&&(o(s),n(kt(s))),[i,(0,$.useCallback)(e=>{n(e);if(s)try{e?window.localStorage.setItem(s,e):window.localStorage.removeItem(s)}catch{}},[s])]}(e,r),[y,b]=(0,$.useState)([]),[w,S]=(0,$.useState)(1),[C,j]=(0,$.useState)("edit"),[k,N]=(0,$.useState)(!1),[E,D]=(0,$.useState)(!1),[R,A]=(0,$.useState)(!1),[M,F]=(0,$.useState)("claude-code"),[T,P]=(0,$.useState)([]),[B,L]=(0,$.useState)(0),[I,O]=(0,$.useState)(null),[H,U]=(0,$.useState)(null),K=(0,$.useRef)(null),q=(0,$.useCallback)(e=>{if("ArrowUp"!==e.key&&"ArrowDown"!==e.key||!e.shiftKey||e.ctrlKey||e.metaKey||e.altKey)return;let r=K.current;if(!r)return;let s=kr(r);if(!s)return;let i=s.getBoundingClientRect(),n=s.scrollTop,a="ArrowUp"===e.key,o=null,l=a?-1/0:1/0;r.querySelectorAll("[data-user-msg-idx]").forEach(e=>{let r=e.getBoundingClientRect().top-i.top+s.scrollTop;a?r<n-12&&r>l&&(l=r,o=e):r>n+12&&r<l&&(l=r,o=e)}),o&&(e.preventDefault(),o.scrollIntoView({block:"start",behavior:"smooth"}))},[K]),V=(0,$.useRef)(null),Y=function(e,r,s){let i=r&&s?`vibedeckx:agent-input-history:${r}:${s}`:null,n=(0,$.useRef)(ke(i)),a=(0,$.useRef)(-1),o=(0,$.useRef)(""),[l,c]=(0,$.useState)(i);return l!==i&&(c(i),n.current=ke(i),a.current=-1,o.current=""),{push:(0,$.useCallback)(e=>{let r=e.trim();if(!r)return;let s=n.current;if(s.length>0&&s[s.length-1]===r){a.current=-1;return}s.push(r),s.length>50&&s.shift(),a.current=-1;if(i)try{0===s.length?window.localStorage.removeItem(i):window.localStorage.setItem(i,JSON.stringify(s))}catch{}},[i]),handleKeyDown:(0,$.useCallback)(r=>{let s=r.currentTarget,i=n.current;if(0!==i.length)if("ArrowUp"===r.key){if(0!==s.selectionStart||0!==s.selectionEnd)return;if(r.preventDefault(),-1===a.current)o.current=s.value,a.current=i.length-1;else{if(!(a.current>0))return;a.current--}e(i[a.current])}else if("ArrowDown"===r.key){if(-1===a.current)return;let n=s.value.length;if(s.selectionStart!==n||s.selectionEnd!==n)return;r.preventDefault(),a.current<i.length-1?(a.current++,e(i[a.current])):(a.current=-1,e(o.current))}else -1!==a.current&&(a.current=-1)},[e])}}(_,e,r),{remotes:G}=_m(),X=[];for(let e of(n?.path&&X.push({id:"local",label:"Local",icon:aD}),G))X.push({id:e.remote_server_id,label:e.server_name,icon:sd(e)});let{session:J,messages:Z,status:Q,isConnected:ee,isInitialized:et,isLoading:er,error:es,remoteStatus:ei,sendMessage:en,uploadPaste:ea,stopSession:eo,switchAgentType:el,startNewConversation:ec,ensureSession:ed,switchMode:eu,acceptPlan:eh,residentLimitPrompt:ef}=function(e,r,s,i,n){let a=n?.sessionId??null,[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)([]),[u,h]=(0,$.useState)("stopped"),[f,p]=(0,$.useState)(!1),[m,g]=(0,$.useState)(!1),[x,v]=(0,$.useState)(!1),[_,y]=(0,$.useState)(null),[b,w]=(0,$.useState)(null),S=(0,$.useRef)(null),C=(0,$.useRef)(null),j=(0,$.useRef)(()=>{}),k=(0,$.useRef)(null),N=(0,$.useRef)(0),E=(0,$.useRef)({entries:[],status:"stopped"}),D=(0,$.useRef)(!1),R=(0,$.useRef)(!0),A=(0,$.useRef)(null),M=(0,$.useRef)(null),F=(0,$.useRef)(0),T=(0,$.useRef)(!1),P=(0,$.useRef)(0),B=(0,$.useRef)(!1),L=(0,$.useRef)(!1),I=(0,$.useRef)(n?.onTaskCompleted),O=(0,$.useRef)(n?.onSessionStarted),z=(0,$.useRef)(n?.onTitleUpdated),W=(0,$.useRef)(e),H=(0,$.useRef)(r),U=(0,$.useRef)(a);(0,$.useEffect)(()=>{I.current=n?.onTaskCompleted,O.current=n?.onSessionStarted,z.current=n?.onTitleUpdated,W.current=e,H.current=r,U.current=a});let K=(0,$.useCallback)((e,r=!1)=>{(0,rv.getFreshToken)(r?{skipCache:!0}:void 0).then(()=>j.current(e))},[]),q=(0,$.useCallback)(e=>{let r=()=>{let e=W.current;if(!e)return;let r=H.current;SU.delete(SK(e,r,U.current));let s=C.current;s&&SU.delete(SK(e,r,s))};if(S.current&&C.current!==e&&(console.log(`[AgentSession] Closing stale WS for ${C.current}, switching to ${e}`),S.current.close(1e3,"session-switch"),S.current=null,C.current=null),S.current?.readyState===WebSocket.OPEN||S.current?.readyState===WebSocket.CONNECTING)return;0===E.current.entries.filter(Boolean).length&&(E.current={entries:[],status:"running"}),D.current=!1,T.current=!0;let s=(0,rv.getWebSocketUrl)(`/api/agent-sessions/${e}/stream`);console.log("[AgentSession] Connecting to WebSocket:",s);let i=new WebSocket(s);S.current=i,C.current=e,i.onopen=()=>{console.log("[AgentSession] WebSocket connected"),p(!0),y(null),w(null),A.current=Date.now(),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{console.log("[AgentSession] Connection stable, resetting backoff counter"),N.current=0,F.current=0},5e3)},i.onmessage=e=>{try{let n=JSON.parse(e.data);if("JsonPatch"in n){var s;let e=n.JsonPatch;s=E.current,E.current=SS(s,r=>{for(let s of e){let{op:e,path:i,value:n}=s;if("/entries"===i&&"replace"===e&&n?.type==="ENTRY"&&n.content?.type==="system"&&n.content?.content==="__CLEAR_ALL__"){console.log("[JsonPatch] Received clearAll signal - clearing all entries"),r.entries=[];continue}if(i.startsWith("/entries/")){let s=parseInt(i.replace("/entries/",""),10);if(isNaN(s)){console.warn(`[JsonPatch] Invalid index in path: ${i}`);continue}if(n?.type!=="ENTRY"){console.warn("[JsonPatch] Expected ENTRY type for entries path");continue}switch(e){case"add":for(;r.entries.length<=s;)r.entries.push(null);r.entries[s]=n.content;break;case"replace":s<r.entries.length?r.entries[s]=n.content:console.warn(`[JsonPatch] Replace index out of bounds: ${s}`);break;case"remove":s<r.entries.length&&r.entries.splice(s,1)}}else"/status"===i&&n?.type==="STATUS"&&(console.log("[AgentSession] /status patch →",n.content),r.status=n.content)}}),T.current?console.log("[AgentSession] /status patch applied during replay (no setStatus), container.status =",E.current.status):(d([...E.current.entries.filter(Boolean)]),console.log("[AgentSession] setStatus(live) →",E.current.status),h(E.current.status),("stopped"===E.current.status||"error"===E.current.status)&&r());return}if("Ready"in n){console.log("[AgentSession] Received Ready signal - history complete, status=",E.current.status),T.current=!1,d([...E.current.entries.filter(Boolean)]),h(E.current.status),g(!0);return}if("finished"in n){console.log("[AgentSession] Received finished signal, invalidating cache"),D.current=!0,r(),i.close(1e3,"finished");return}if("taskCompleted"in n){let{duration_ms:e,cost_usd:r,input_tokens:s,output_tokens:i}=n.taskCompleted,a=[];if(null!=e){let r=(e/1e3).toFixed(1);a.push(`${r}s`)}if(null!=r)a.push(`$${r.toFixed(4)}`);else if(null!=s||null!=i){let e=(s??0)+(i??0),r=e>1e3?`${(e/1e3).toFixed(1)}K`:String(e);a.push(`${r} tokens`)}xg.toast.success("Task completed",{description:a.length>0?a.join(" · "):void 0}),I.current?.();return}if("remoteStatus"in n)return void w(n.remoteStatus);if("titleUpdated"in n)return void z.current?.(n.titleUpdated.title,C.current);if("error"in n){console.error("[AgentSession] Server error:",n.error),y(n.error),"Session not found"===n.error&&(console.log("[AgentSession] Session invalid, invalidating cache, will create new session"),r(),D.current=!0,l(null),h("stopped"),g(!1),R.current=!0);return}}catch(e){console.error("[AgentSession] Failed to parse message:",e)}},i.onclose=e=>{let s,i;console.log("[AgentSession] WebSocket disconnected",e.code,e.reason),p(!1),M.current&&(clearTimeout(M.current),M.current=null);let n=A.current?Date.now()-A.current:0;if(A.current=null,n>0&&n<5e3){if(F.current++,console.log(`[AgentSession] Short-lived connection (${n}ms), count: ${F.current}, backoff attempt: ${N.current}`),F.current>=3){if(console.log("[AgentSession] Multiple short-lived connections detected, session likely invalid - will recreate"),B.current){console.log("[AgentSession] Skipping auto-restart: last session creation failed"),y("Unable to connect to remote server. Please check the server configuration.");return}r(),l(null),y(null),N.current=0,F.current=0,R.current=!0;return}}else n>=5e3&&(F.current=0);if(D.current||1e3===e.code)return;if(N.current>=10){console.log("[AgentSession] Max reconnect attempts reached"),y("Unable to connect to server. Please check if the backend is running.");return}let a=(i=(s=Math.min(3e4,1e3*Math.pow(2,N.current)))*Math.random()*.25,s+i);console.log(`[AgentSession] Reconnecting in ${Math.round(a)}ms (attempt ${N.current+1})`),N.current++,k.current=setTimeout(()=>{let e=C.current;e&&!D.current&&K(e,!0)},a)},i.onerror=e=>{console.error("[AgentSession] WebSocket error:",e)}},[K]);(0,$.useEffect)(()=>{j.current=q},[q]);let V=(0,$.useCallback)(async s=>{if(!e)return null;if(L.current)return console.log("[AgentSession] startSession already in progress, skipping"),null;L.current=!0;let n=P.current;y(null),w(null),g(!1),B.current=!1;let o=SK(e,r,a),c=SU.get(o);if(c)return console.log(`[AgentSession] Cache hit for ${o}, reconnecting WebSocket directly`),l(c),h(c.status),K(c.id),O.current?.(c),L.current=!1,c;v(!0);try{console.log(`[AgentSession] Starting REST call: projectId=${e}, branch=${r}, sessionId=${a??"latest"}, agentType=${i}, generation=${n}`);let{session:c,messages:u}=a?await Sq(a):await SB(e,r,s,i);if(P.current!==n)return console.log("[AgentSession] Discarding stale session response (generation mismatch)"),null;if(!c)return console.log(`[AgentSession] No existing session for ${e}/${r??"<null>"} — placeholder`),l(null),h("stopped"),d([]),E.current={entries:[],status:"stopped"},g(!0),null;return console.log(`[AgentSession] REST response: sessionId=${c.id}, msgCount=${u?.length??0}, status=${c.status}, explicitSessionIdRequested=${a??"<null>"}`),SU.set(o,c),a&&SU.set(SK(e,r,c.id),c),l(c),h(c.status),u&&u.length>0&&(d(u),E.current={entries:[...u],status:c.status}),K(c.id),O.current?.(c),c}catch(e){if(console.error("[AgentSession] startSession error:",e),P.current!==n)return console.log("[AgentSession] Discarding error (generation mismatch)"),null;return y(e instanceof Error?e.message:"Failed to start session"),B.current=!0,null}finally{L.current=!1,P.current===n&&v(!1)}},[e,r,i,a,K]),Y=(0,$.useCallback)(async(s,i)=>{let n=i||o?.id;if(!n)return void console.warn("[AgentSession] sendMessage: no session ID available (sessionId param:",i,", session?.id:",o?.id,")");if(("string"!=typeof s||s.trim())&&(!Array.isArray(s)||0!==s.length)){console.log(`[AgentSession] sendMessage: targetSessionId=${n}, source=${i?"explicit":"state"}`);try{let e="string"==typeof s?s.trim():s;await SL(n,e)}catch(i){let s=i instanceof Error?i.message:"Failed to send message";console.error("[AgentSession] Failed to send message:",s),s.includes("[404]")&&(e&&(SU.delete(SK(e,r,a)),o?.id&&SU.delete(SK(e,r,o.id))),l(null),h("stopped"),g(!1),R.current=!0),y(s),xg.toast.error("Failed to send message",{description:s})}}},[o?.id,e,r,a]),G=(0,$.useCallback)(async(e,r)=>{let s=r||o?.id;if(!s)throw Error("No session id available for paste upload");return SI(s,e)},[o?.id]),X=(0,$.useCallback)(async()=>{if(o?.id)try{await S$(o.id)}catch(e){e instanceof Error&&e.message,console.error("[AgentSession] Failed to stop session:",e),xg.toast.error("Failed to stop session")}},[o?.id]),J=(0,$.useCallback)(async s=>{if(o?.id){e&&(SU.delete(SK(e,r,a)),SU.delete(SK(e,r,o.id))),v(!0),y(null);try{await SO(o.id,s),s&&l(e=>e?{...e,agentType:s}:null)}catch(e){y(e instanceof Error?e.message:"Failed to restart session"),console.error("[AgentSession] Failed to restart session:",e)}finally{v(!1)}}},[o?.id,e,r,a]),Z=(0,$.useCallback)(async s=>{if(!o?.id)return"No active session";y(null);try{return await Sz(o.id,s),l(i=>{if(!i)return i;let n={...i,agentType:s};return e&&(SU.set(SK(e,r,a),n),SU.set(SK(e,r,n.id),n)),n}),null}catch(r){let e=r instanceof Error?r.message:"Failed to switch agent";return console.error("[AgentSession] Failed to switch agent:",r),e}},[o?.id,e,r,a]),Q=(0,$.useCallback)(async s=>{if(o?.id){y(null);try{await SW(o.id,s),l(i=>{if(!i)return i;let n={...i,permissionMode:s};return e&&(SU.set(SK(e,r,a),n),SU.set(SK(e,r,n.id),n)),n})}catch(e){y(e instanceof Error?e.message:"Failed to switch mode"),console.error("[AgentSession] Failed to switch mode:",e)}}},[o?.id,e,r,a]),ee=(0,$.useCallback)(async s=>{if(o?.id){y(null);try{await SH(o.id,s),l(s=>{if(!s)return s;let i={...s,permissionMode:"edit"};return e&&(SU.set(SK(e,r,a),i),SU.set(SK(e,r,i.id),i)),i})}catch(e){y(e instanceof Error?e.message:"Failed to accept plan"),console.error("[AgentSession] Failed to accept plan:",e)}}},[o?.id,e,r,a]),et=(0,$.useCallback)(async()=>{var i;let n;return e?(o?.id&&SU.delete(SK(e,r,o.id)),SU.delete(SK(e,r,a)),S.current&&(S.current.close(1e3,"new-conversation"),S.current=null,C.current=null),k.current&&(clearTimeout(k.current),k.current=null),M.current&&(clearTimeout(M.current),M.current=null),D.current=!1,T.current=!1,p(!1),l(null),h("stopped"),g(!0),y(null),w(null),d([]),E.current={entries:[],status:"stopped"},i=SF(e,r,s),(n=new Map(Sk)).set(i,Date.now()),Sj(Sk=n),SD(),null):null},[e,r,s,o?.id,a]),[er,es]=(0,$.useState)(null),ei=(0,$.useRef)(null),en=(0,$.useCallback)(()=>{ei.current?.resolve(!1),ei.current=null,es(null)},[]),ea=(0,$.useRef)(null),eo=(0,$.useCallback)(n=>{if(!e)return Promise.resolve(null);if(o)return Promise.resolve(o);let c=P.current,d=ea.current;if(d&&d.generation===c)return d.promise;let u=(async()=>{v(!0),y(null);try{let o;try{o=await (0,rv.createNewAgentSession)(e,r,n,i)}catch(u){let s;if(!(u instanceof rv.ResidentLimitError))throw u;let a=new Promise(e=>{s=e}),l={maxResidentAgentProcesses:u.maxResidentAgentProcesses,runningSessions:u.runningSessions,resolve:s};ei.current=l,es(l);let d=await a;if(ei.current===l&&(ei.current=null),es(e=>e===l?null:e),P.current!==c)return null;if(!d)throw u;o=await (0,rv.createNewAgentSession)(e,r,n,i,!0)}if(P.current!==c)return console.log("[AgentSession] Discarding stale ensureSession result (generation mismatch)"),null;let d={id:o.session.id,projectId:o.session.projectId,branch:o.session.branch,status:o.session.status,permissionMode:o.session.permissionMode??"edit",agentType:o.session.agentType??"claude-code",processAlive:o.session.processAlive??!0};return SU.set(SK(e,r,a),d),SU.set(SK(e,r,d.id),d),l(d),h(d.status),g(!0),ST(SF(e,r,s)),K(d.id),O.current?.(d),d}catch(e){if(console.error("[AgentSession] ensureSession:",e),P.current!==c)return null;return y(e instanceof Error?e.message:"Failed to create session"),null}finally{ea.current?.generation===c&&(ea.current=null),P.current===c&&v(!1)}})();return ea.current={generation:c,promise:u},u},[e,r,s,i,o,a,K]);return(0,$.useEffect)(()=>()=>{S.current&&(D.current=!0,S.current.close(),C.current=null),k.current&&clearTimeout(k.current),M.current&&clearTimeout(M.current),P.current+=1,en()},[en]),(0,$.useEffect)(()=>{S.current&&(S.current.close(1e3,"branch-switch"),S.current=null,C.current=null),k.current&&(clearTimeout(k.current),k.current=null),M.current&&(clearTimeout(M.current),M.current=null),P.current+=1,en();let i=e?SF(e,r,s):null;i&&a&&ST(i);let n=!a&&null!==i&&Sk.has(i);l(null),h("stopped"),p(!1),g(n),y(null),v(!1),w(null),d([]),E.current={entries:[],status:"stopped"},D.current=!1,N.current=0,A.current=null,F.current=0,B.current=!1,L.current=!1,R.current=!n,e&&SU.delete(SK(e,r,a))},[e,r,s,a,en]),(0,$.useEffect)(()=>{var i;let n=null!==e&&(i=SF(e,r,s),Sk.has(i));!R.current||!e||o||x||B.current||n||(R.current=!1,console.log(`[AgentSession] Auto-start: projectId=${e}, branch=${r}, agentMode=${s}`),V())},[e,r,s,o,x,V]),(0,$.useEffect)(()=>{let e=()=>{if("visible"===document.visibilityState&&o?.id&&!D.current){let e=S.current;e&&e.readyState!==WebSocket.CLOSED&&e.readyState!==WebSocket.CLOSING||(console.log("[AgentSession] Tab visible, WebSocket disconnected - reconnecting"),N.current=0,F.current=0,k.current&&(clearTimeout(k.current),k.current=null),K(o.id))}};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[o?.id,K]),(0,$.useEffect)(()=>{o?.id&&!D.current&&K(o.id)},[o?.id,K]),{session:o,messages:c,status:u,isConnected:f,isInitialized:m,isLoading:x,error:_,remoteStatus:b,startSession:V,sendMessage:Y,uploadPaste:G,stopSession:X,restartSession:J,switchAgentType:Z,startNewConversation:et,ensureSession:eo,switchMode:Q,acceptPlan:ee,residentLimitPrompt:er}}(e,r,n?.agent_mode,M,{sessionId:s,onTaskCompleted:o,onSessionStarted:l,onTitleUpdated:(e,r)=>{let s=r??J?.id;s&&e&&(U({sessionId:s,title:e}),c?.(s,e)),L(e=>e+1),O(null)}});f=J?.id??null,(0,ok.useGlobalEventStream)(s=>{"session:status"!==s.type||"running"!==s.status||!e||s.projectId!==e||(s.branch??null)!==(r??null)||s.sessionId&&s.sessionId!==f&&(e=>i?.(e))(s.sessionId)}),(0,$.useEffect)(()=>{(0,rv.getAgentProviders)().then(P).catch(()=>{})},[]),(0,$.useEffect)(()=>{J?.permissionMode&&j(J.permissionMode)},[J?.permissionMode]),(0,$.useEffect)(()=>{J?.agentType&&F(J.agentType)},[J?.agentType]),(0,$.useEffect)(()=>{b([]),S(1)},[e,r]);let ep=(0,$.useRef)({sessionId:null,count:0});(0,$.useEffect)(()=>{let e=J?.id??null,r=ep.current;e&&r.sessionId===e&&0===r.count&&Z.length>0&&O(e),ep.current={sessionId:e,count:Z.length}},[J?.id,Z.length]),(0,$.useEffect)(()=>{I&&J?.id!==I&&O(null)},[J?.id,I]),(0,$.useEffect)(()=>{H&&J?.id!==H.sessionId&&U(null)},[J?.id,H]),(0,$.useEffect)(()=>{if(!H)return;let e=setTimeout(()=>{U(e=>e===H?null:e)},5e3);return()=>clearTimeout(e)},[H]),(0,$.useEffect)(()=>{if(!I)return;let e=setTimeout(()=>{O(e=>e===I?null:e)},3e4);return()=>clearTimeout(e)},[I]);let[em,eg]=(0,$.useState)(!1);(0,$.useEffect)(()=>{eg(!1)},[J?.id]),(0,$.useEffect)(()=>{ee&&eg(!0)},[ee]);let ex=async e=>{j(e),J&&await eu(e)},ev=async e=>{await eh(e),j("edit"),d?.()},[e_,eb]=(0,$.useState)(!1),ew=async(e,r)=>{if(J&&!e_){eb(!0);try{let s=await (0,rv.branchAgentSession)(J.id,e,r);L(e=>e+1),i?.(s.session.id)}catch(r){let e=r instanceof Error?r.message:"Failed to branch conversation";xg.toast.error("Branch failed",{description:e})}finally{eb(!1)}}},eS=T.find(e=>e.type===M)?.displayName??("codex"===M?"Codex":"Claude Code"),eC=T.filter(e=>e.available).filter(e=>e.type!==M),ej=(0,$.useMemo)(()=>{for(let e=Z.length-1;e>=0;e--)if(Z[e]?.type==="turn_end")return e;return -1},[Z]),ek=(0,$.useCallback)(e=>{var r,s;let i;_((r=v,s=e,i=0===r.length||r.endsWith("\n\n")?"":r.endsWith("\n")?"\n":"\n\n",r+i+(s.replace(/\r?\n/g,"\n").split("\n").map(e=>`> ${e}`).join("\n")+"\n\n"))),requestAnimationFrame(()=>{let e=V.current?.querySelector("textarea");if(!e)return;e.focus();let r=e.value.length;try{e.setSelectionRange(r,r)}catch{}})},[_,v]);(0,$.useImperativeHandle)(h,()=>({submitMessage:async e=>{if(d?.(),J)en(e);else{let r=await ed(C);r&&(O(r.id),en(e,r.id))}}}),[J,ed,en,C,d]);let eN=(0,$.useCallback)((e,r)=>{if(r.length<=2e3)return;e.preventDefault();let s=e.currentTarget,i=s.selectionStart??v.length,n=s.selectionEnd??v.length,a=new TextEncoder().encode(r).length,o=kg(w,a);_(v.slice(0,i)+o+v.slice(n)),b(e=>[...e,{id:w,content:r,size:a}]),S(w+1);let l=i+o.length;requestAnimationFrame(()=>{try{s.setSelectionRange(l,l)}catch{}})},[v,w,_]);async function eE(e,r,s,i){let n=new Set;for(let r of e.matchAll(km))n.add(Number(r[1]));let a=r.filter(e=>n.has(e.id));if(0===a.length)return e;let o=e;for(let e of a){let r=await s(e.content,i),n=kg(e.id,e.size),a=`<vpaste path="${r.path}" size="${r.size}" />`;o=o.split(n).join(a)}return o}let eD=async e=>{let r=e.text,s=e.files.length>0,i=y.length>0,n=r.trim();if(n||s){A(!0);try{let a;_(""),Y.push(n),d?.();let o=J?.id,l=null;if(!J){if(!(l=await ed(C)))return void _(r);o=l.id,O(l.id)}let c=n;if(i)try{c=(await eE(r,y,ea,o)).trim()}catch(s){let e=s instanceof Error?s.message:"Failed to upload paste";xg.toast.error("Paste upload failed",{description:e}),_(r);return}if(c.length>2e3)try{let e=await ea(c,o);c=`<vpaste path="${e.path}" size="${e.size}" />`}catch(s){let e=s instanceof Error?s.message:"Failed to upload paste";xg.toast.error("Paste upload failed",{description:e}),_(r);return}if(b([]),S(1),s){let r=[];for(let s of(c&&r.push({type:"text",text:c}),e.files))if(s.mediaType&&s.url){let e=s.url.match(/^data:[^;]+;base64,(.+)$/);e&&r.push({type:"image",mediaType:s.mediaType,data:e[1]})}a=r}else a=c;if(k){let e="string"==typeof a?a:a.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if(e.trim()){D(!0);try{let s=await (0,rv.translateText)(e);if(s.error){_(r),b(y),S(w),xg.toast.error("Translation failed",{description:"Disable translation to send the original text."});return}a="string"==typeof a?s.translatedText:a.map(e=>"text"===e.type?{...e,text:s.translatedText}:e)}catch{_(r),b(y),S(w),xg.toast.error("Translation failed",{description:"Disable translation to send the original text."});return}finally{D(!1)}}}l?(console.log(`[AgentConversation] handleSubmit: using freshly started session ${l.id}`),await en(a,l.id)):(console.log(`[AgentConversation] handleSubmit: existing session ${J.id}, status=${Q}`),await en(a))}finally{A(!1)}}},{settings:eR}=(0,dh.useConversationSettings)();return e?(0,z.jsxs)("div",{className:"h-full flex flex-col min-h-0",style:{"--conv-font-size":`${eR.agentFontSize}px`},children:[(0,z.jsxs)("div",{className:"flex-shrink-0 flex items-center justify-between px-4 h-10 border-b border-border/60 bg-muted/20",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[T.length>1?(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsxs)("button",{disabled:er||"running"===Q&&Z.length>0,className:(0,ey.cn)("inline-flex items-center gap-1 rounded-md border bg-muted/50 px-2 py-0.5 text-xs font-medium transition-colors hover:bg-muted",(er||"running"===Q&&Z.length>0)&&"opacity-50 cursor-not-allowed"),children:[T.find(e=>e.type===M)?.displayName??("codex"===M?"Codex":"Claude Code"),(0,z.jsx)(sw,{className:"h-3 w-3 text-muted-foreground"})]})}),(0,z.jsx)(ag,{align:"start",children:(0,z.jsx)(a_,{value:M,onValueChange:async e=>{if(!J)return void F(e);let r=await el(e);r?xg.toast.error("Failed to switch agent",{description:r}):F(e)},children:T.map(e=>(0,z.jsx)(ay,{value:e.type,disabled:!e.available,className:"text-xs pl-2 [&>span:first-child]:hidden data-[state=checked]:bg-accent data-[state=checked]:text-accent-foreground",children:e.displayName},e.type))})})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(aE,{className:`h-4 w-4 ${"codex"===M?"text-green-500":"text-violet-500"}`}),(0,z.jsx)("span",{className:"text-sm font-medium",children:"codex"===M?"Codex":"Claude Code"})]}),(0,z.jsx)(j9,{mode:C,onModeChange:ex}),X.length>=1&&a&&(0,z.jsx)(ak,{targets:X,activeTarget:n?.agent_mode??"local",onTargetChange:a}),J&&(p=J.id.startsWith("remote-"),m="text-muted-foreground",g=(0,z.jsx)(j1,{className:"h-3 w-3"}),x="Disconnected",ee?p&&"connected"!==ei&&null!==ei?"reconnecting"===ei?(m="text-amber-500",g=(0,z.jsx)(j0,{className:"h-3 w-3 animate-pulse"}),x="Reconnecting..."):"disconnected"===ei&&(m="text-red-500",g=(0,z.jsx)(j1,{className:"h-3 w-3"}),x="Remote disconnected"):(m="text-green-500",g=(0,z.jsx)(j0,{className:"h-3 w-3"}),x="Connected"):em||(m="text-amber-500",g=(0,z.jsx)(j0,{className:"h-3 w-3 animate-pulse"}),x="Connecting..."),(0,z.jsxs)("span",{className:`flex items-center gap-1 text-xs ${m}`,children:[g,x]}))]}),(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[e&&(0,z.jsx)(ku,{projectId:e,branch:r,sessionId:J?.id??null,currentAgentType:M,providers:T}),e&&(0,z.jsx)(kn,{projectId:e,branch:r,currentSessionId:J?.id??null,refreshKey:B,pendingTitleSessionId:I,aiTitleOverride:H,onSwitch:e=>{i?.(e)},onDelete:(e,r)=>{if(e===J?.id){let e=r[0];i?.(e?e.id:null)}}}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",onClick:async()=>{await ec(),u?.(),i?.(null)},disabled:er||!J,className:"h-7 w-7",title:"New Conversation",children:(0,z.jsx)(j2,{className:"h-3.5 w-3.5"})}),(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",onClick:()=>eo(),disabled:"running"!==Q,className:"h-7 text-xs",children:[(0,z.jsx)(uA,{className:"h-3 w-3 mr-1"}),"Stop"]})]})]}),(0,z.jsxs)("div",{className:"flex-1 min-h-0 relative",children:[(0,z.jsxs)(ja,{className:"h-full",initial:"instant",children:[(0,z.jsxs)(jo,{className:"gap-1 p-4",scrollClassName:"edge-scrollbar",children:[J||0!==Z.length?(0,z.jsx)(kf.Provider,{value:{sendMessage:en,messages:Z,acceptPlan:ev,permissionMode:J?.permissionMode??C,agentType:J?.agentType??M,sessionId:J?.id??null},children:(0,z.jsxs)("div",{className:"space-y-1 outline-none",ref:K,tabIndex:-1,onKeyDown:q,children:[Z.map((e,r)=>e?.type==="turn_end"?(0,z.jsx)(j8,{durationMs:e.durationMs,outcome:e.outcome,emphasis:r===ej?"normal":"subtle",agentType:M,currentAgentName:eS,alternateProviders:eC,onBranch:e=>ew(e,r),disabled:e_},r):(0,z.jsx)("div",{"data-message-idx":r,..."user"===e.type?{"data-user-msg-idx":r}:{},className:"scroll-mt-2",children:(0,z.jsx)(CX,{message:e,messageIndex:r})},r)),er&&(0,z.jsxs)("div",{className:"flex items-center gap-2 py-4 text-muted-foreground",children:[(0,z.jsx)(jQ,{className:"h-4 w-4"}),(0,z.jsx)("span",{className:"text-sm",children:"Connecting to agent..."})]})]})}):(0,z.jsx)("div",{className:"text-center py-16",children:er||e&&!et?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(jQ,{className:"h-6 w-6 mx-auto mb-4"}),(0,z.jsx)("h3",{className:"text-sm font-semibold mb-1 text-foreground",children:"Connecting to agent..."}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Setting up the session for this worktree"})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("div",{className:"mx-auto w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center mb-4",children:(0,z.jsx)(aE,{className:"h-6 w-6 text-primary/60"})}),(0,z.jsx)("h3",{className:"text-sm font-semibold mb-1 text-foreground",children:"Start a conversation"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Ask the agent to help you with coding tasks in this worktree"})]})}),es&&(0,z.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-red-500/10 rounded-lg text-red-500 text-sm mt-4",children:[(0,z.jsx)(SX,{className:"h-4 w-4"}),es]})]}),(0,z.jsx)(jl,{})]}),(0,z.jsx)(ks,{messages:Z,contentRef:K}),(0,z.jsx)(kl,{containerRef:K,onQuote:ek})]}),(0,z.jsx)("div",{className:"flex-shrink-0 border-t border-border/60 p-3",children:(0,z.jsxs)(j$,{onSubmit:eD,accept:"image/*",className:"w-full",children:[(0,z.jsx)(kh,{}),(0,z.jsxs)("div",{className:"relative flex w-full flex-col",children:[k&&(0,z.jsx)("div",{className:"flex items-center pl-12 pr-2 pt-1.5 pb-0.5",children:(0,z.jsxs)("button",{type:"button",onClick:()=>N(!1),className:"inline-flex shrink-0 items-center gap-1.5 rounded-full bg-blue-500/10 text-blue-600 dark:text-blue-400 px-2.5 py-0.5 text-xs font-medium hover:bg-blue-500/20 transition-colors",children:[E?(0,z.jsx)(rk,{className:"size-3 animate-spin"}):(0,z.jsx)(j5,{className:"size-3"}),"Translate",(0,z.jsx)(t8,{className:"size-3"})]})}),(0,z.jsxs)("div",{className:"flex w-full items-center",children:[(0,z.jsxs)(jK,{children:[(0,z.jsx)(jq,{className:"ml-1"}),(0,z.jsxs)(jV,{children:[(0,z.jsx)(jz,{label:"Add images"}),(0,z.jsxs)(jY,{onSelect:()=>{N(!k)},children:[(0,z.jsx)(j5,{className:"mr-2 size-4"}),k?"Disable translation":"Translate"]})]})]}),(0,z.jsx)("div",{ref:V,className:"contents",children:(0,z.jsx)(jW,{value:v,onChange:e=>_(e.target.value),onPasteText:eN,onKeyDown:Y.handleKeyDown,placeholder:J?"Ask the agent to help with your code...":"Type your first message to start...",className:"pr-12",style:{fontSize:"var(--conv-font-size, 14px)"}})}),(0,z.jsx)("div",{className:"pointer-events-none absolute bottom-0 right-1 flex items-center text-base md:text-sm",style:{fontSize:"var(--conv-font-size, 14px)",height:"calc(1lh + 1.5rem)"},children:(0,z.jsx)(jG,{className:"pointer-events-auto",disabled:!v.trim()&&!er||E||R,status:R||E?"submitted":er?"streaming":"ready"})})]})]})]})}),(0,z.jsx)(lU,{open:null!==ef,onOpenChange:e=>{e||ef?.resolve(!1)},children:(0,z.jsxs)(lV,{children:[(0,z.jsxs)(lY,{children:[(0,z.jsx)(lX,{children:"Agent process limit reached"}),(0,z.jsxs)(lJ,{children:["All ",ef?.maxResidentAgentProcesses," resident agent processes for this workspace branch are running. Starting a new conversation will stop the least recently active running session in this branch."]})]}),(0,z.jsxs)(lG,{children:[(0,z.jsx)(lQ,{children:"Cancel"}),(0,z.jsx)(lZ,{onClick:()=>ef?.resolve(!0),children:"Stop & start new"})]})]})})]}):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(aE,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to start coding"})]})})});function kv(){return"localhost"===window.location.hostname&&"3000"===window.location.port?"http://localhost:5173":""}async function k_(e,r){let s=await (0,rv.authFetch)(`${kv()}/api/projects/${e}/chat-sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:r})});if(!s.ok)throw Error("Failed to create chat session");return s.json()}async function ky(e,r){if(!(await (0,rv.authFetch)(`${kv()}/api/chat-sessions/${e}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})})).ok)throw Error("Failed to send message")}async function kb(e){if(!(await (0,rv.authFetch)(`${kv()}/api/chat-sessions/${e}/stop`,{method:"POST"})).ok)throw Error("Failed to stop generation")}let kw=new Map;function kS(e,r){return`chat:${e}:${r??""}`}function kC({sessionId:e,approvalId:r,tool:s,input:i,resolved:n}){let[a,o]=(0,$.useState)(null),l=function(e){if(null!==e&&"object"==typeof e){if("string"==typeof e.message)return e.message;if("string"==typeof e.prompt)return e.prompt}return JSON.stringify(e)}(i),c=async s=>{if(!a&&!n){o(s?"approve":"deny");try{await rv.api.chatToolApproval(e,r,s)}finally{o(null)}}};return(0,z.jsx)("div",{className:"mx-4 my-1",children:(0,z.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 p-3 space-y-2",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(aE,{className:"h-3.5 w-3.5 text-amber-500 shrink-0"}),(0,z.jsxs)("span",{className:"text-xs font-medium text-amber-600 dark:text-amber-400",children:["Approval needed · ","spawnAgentSession"===s?"Start a new coding agent":"Send to the coding agent"]})]}),(0,z.jsx)("pre",{className:"bg-muted/50 p-2 rounded overflow-x-auto max-w-full whitespace-pre-wrap break-all text-foreground/80",style:{fontSize:"var(--conv-font-size, 12px)"},children:l}),n?(0,z.jsxs)(sb,{variant:"default",className:"approved"===n?"bg-green-600 hover:bg-green-700 text-white":"bg-red-600 hover:bg-red-700 text-white",children:["approved"===n?(0,z.jsx)(rC,{className:"h-3 w-3 mr-1"}):(0,z.jsx)(rj,{className:"h-3 w-3 mr-1"}),"approved"===n?"Approved — sent.":"Denied — not sent."]}):(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsxs)(W.Button,{onClick:()=>c(!0),disabled:null!==a,className:"bg-green-600 hover:bg-green-700 text-white",size:"sm",children:["approve"===a?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rC,{className:"h-3.5 w-3.5 mr-1"}),"Approve"]}),(0,z.jsxs)(W.Button,{onClick:()=>c(!1),disabled:null!==a,variant:"destructive",size:"sm",children:["deny"===a?(0,z.jsx)(rk,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,z.jsx)(rj,{className:"h-3.5 w-3.5 mr-1"}),"Deny"]})]})]})})}let kj=new Set(["waiting_reviewer","waiting_feedback","sending_feedback"]);function kk({projectId:e,branch:r,runUpdate:s,onRunsChange:i}){let[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)({}),[c,d]=(0,$.useState)({}),[u,h]=(0,$.useState)(null),[f,p]=(0,$.useState)(null),m=(0,$.useCallback)(async()=>{if(e)try{let s=await rv.api.getActiveWorkflowRuns(e,r);a(s),i?.(s)}catch{}},[e,r,i]);(0,$.useEffect)(()=>{m()},[m]),(0,$.useEffect)(()=>{s&&m()},[s,m]),(0,$.useEffect)(()=>{if(0===n.length)return;let e=setInterval(()=>void m(),5e3);return()=>clearInterval(e)},[n.length,m]);let g=async(e,r)=>{h(r),p(null);try{await e()}catch(e){p(e instanceof Error?e.message:String(e))}finally{h(null),await m()}},x=n.filter(e=>kj.has(e.status));return 0===x.length?null:(0,z.jsx)("div",{className:"shrink-0 border-b bg-muted/30 px-4 py-2 space-y-2 max-h-[50vh] overflow-y-auto",children:x.map(e=>(0,z.jsxs)("div",{className:"text-sm space-y-2",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between",children:[(0,z.jsxs)("span",{className:"font-medium",children:["Review",e.review_focus?` — ${e.review_focus}`:"",(0,z.jsxs)("span",{className:"ml-2 text-muted-foreground",children:["waiting_reviewer"===e.status&&"reviewer 审查中…","waiting_feedback"===e.status&&"等你确认反馈","sending_feedback"===e.status&&"发送中…"]})]}),(0,z.jsxs)(W.Button,{variant:"ghost",size:"sm",disabled:u===e.id,onClick:()=>g(()=>rv.api.cancelWorkflowRun(e.id),e.id),children:[(0,z.jsx)(t8,{className:"h-3 w-3 mr-1"}),"结束"]})]}),e.error&&(0,z.jsx)("div",{className:"text-xs text-amber-600",children:e.error}),"waiting_reviewer"===e.status&&(0,z.jsxs)("div",{className:"flex items-center text-muted-foreground text-xs",children:[(0,z.jsx)(rk,{className:"h-3 w-3 mr-1 animate-spin"})," reviewer session 正在工作"]}),"waiting_feedback"===e.status&&(0,z.jsxs)(z.Fragment,{children:[c[e.id]?(0,z.jsx)(rl,{className:"text-xs font-mono min-h-28 max-h-72",value:o[e.id]??e.feedback_snapshot??"",onChange:r=>l(s=>({...s,[e.id]:r.target.value}))}):(0,z.jsx)("div",{className:"text-xs border rounded-md bg-background px-3 py-2 max-h-72 overflow-y-auto",children:(0,z.jsx)(wc,{children:o[e.id]??e.feedback_snapshot??""})}),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsx)(W.Button,{size:"sm",disabled:u===e.id,onClick:()=>g(()=>rv.api.workflowRunGate(e.id,"approve",o[e.id]??void 0),e.id),children:"发送反馈给原 session"}),(0,z.jsx)(W.Button,{variant:"outline",size:"sm",disabled:u===e.id,onClick:()=>d(r=>({...r,[e.id]:!r[e.id]})),children:c[e.id]?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(_O,{className:"h-3 w-3 mr-1"}),"预览"]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(rg,{className:"h-3 w-3 mr-1"}),"编辑"]})})]})]}),f&&(0,z.jsx)("div",{className:"text-xs text-destructive",children:f})]},e.id))})}let kN=(0,ew.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);function kE({messages:e}){let{scrollToBottom:r}=jn(),s=(0,$.useRef)(e.length);return(0,$.useEffect)(()=>{let i=s.current;if(s.current=e.length,!(e.length<=i))for(let s=i;s<e.length;s++){let i=e[s];if("user"===i.type&&i.content.startsWith("[Executor Event:"))return void r({animation:"instant"})}},[e,r]),null}let kD=(0,$.forwardRef)(function({projectId:e,branch:r},s){let{session:i,messages:n,status:a,isInitialized:o,isLoading:l,error:c,sendMessage:d,stopGeneration:u,restartSession:h,workflowRunUpdate:f}=function(e,r){let[s,i]=(0,$.useState)(null),[n,a]=(0,$.useState)([]),[o,l]=(0,$.useState)("stopped"),[c,d]=(0,$.useState)(!1),[u,h]=(0,$.useState)(!1),[f,p]=(0,$.useState)(!1),[m,g]=(0,$.useState)(null),[x,v]=(0,$.useState)(null),_=(0,$.useRef)(null),y=(0,$.useRef)(()=>{}),b=(0,$.useRef)(null),w=(0,$.useRef)(0),S=(0,$.useRef)({entries:[],status:"stopped"}),C=(0,$.useRef)(!1),j=(0,$.useRef)(!0),k=(0,$.useRef)(!1),N=(0,$.useRef)(0),E=(0,$.useRef)(null),D=(0,$.useRef)(null),R=(0,$.useRef)(0),A=(0,$.useRef)(!1),M=(0,$.useCallback)((e,r=!1)=>{_.current?.readyState!==WebSocket.OPEN&&_.current?.readyState!==WebSocket.CONNECTING&&(0,rv.getFreshToken)(r?{skipCache:!0}:void 0).then(()=>y.current(e))},[]),F=(0,$.useCallback)(n=>{if(_.current?.readyState===WebSocket.OPEN||_.current?.readyState===WebSocket.CONNECTING)return;S.current={entries:[],status:"stopped"},C.current=!1,k.current=!0;let o=new WebSocket((0,rv.getWebSocketUrl)(`/api/chat-sessions/${n}/stream`));_.current=o;let c=N.current;o.onopen=()=>{d(!0),g(null),E.current=Date.now(),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{w.current=0,R.current=0},5e3)},o.onmessage=s=>{if(c===N.current)try{let c=JSON.parse(s.data);if("JsonPatch"in c){var i,n;let e=S.current.entries.filter(Boolean).length;i=S.current,n=c.JsonPatch,S.current=SS(i,e=>{for(let r of n){let{op:s,path:i,value:n}=r;if("/entries"===i&&"replace"===s&&n?.type==="ENTRY"&&n.content?.type==="system"&&n.content?.content==="__CLEAR_ALL__"){e.entries=[];continue}if(i.startsWith("/entries/")){let r=parseInt(i.replace("/entries/",""),10);if(isNaN(r)||n?.type!=="ENTRY")continue;switch(s){case"add":for(;e.entries.length<=r;)e.entries.push(null);e.entries[r]=n.content;break;case"replace":r<e.entries.length&&(e.entries[r]=n.content);break;case"remove":r<e.entries.length&&e.entries.splice(r,1)}}else"/status"===i&&n?.type==="STATUS"&&(e.status=n.content)}});let r=S.current.entries.filter(Boolean).length;k.current?r!==e&&console.log(`[ChatSession] WS patch added message (${e} → ${r}) but isReplaying=true, state NOT updated`):(r!==e&&console.log(`[ChatSession] New message via WS patch (${e} → ${r}), calling setMessages`),a([...S.current.entries.filter(Boolean)]),l(S.current.status));return}if("Ready"in c){k.current=!1;let e=S.current.entries.filter(Boolean).length;console.log(`[ChatSession] Ready received, isReplaying → false, ${e} messages`),a([...S.current.entries.filter(Boolean)]),l(S.current.status),h(!0);return}if("finished"in c){C.current=!0,o.close(1e3,"finished");return}if("openPreviewFrame"in c)return void(0,_L.openPreviewFrame)(c.openPreviewFrame.projectId,c.openPreviewFrame.url);if("WorkflowRunUpdated"in c)return void v(c.WorkflowRunUpdated);if("browserCommand"in c){let r=c.browserCommand;e&&(0,_L.sendCommandToIframe)(e,{type:"vibedeckx-command",...r}).then(e=>{e&&o.readyState===WebSocket.OPEN&&o.send(JSON.stringify({type:"browser_result",result:{id:r.id,success:e.success??!1,error:e.error,content:e.content,found:e.found,tag:e.tag,text:e.text}}))});return}if("error"in c){g(c.error),"Session not found"===c.error&&(e&&kw.delete(kS(e,r)),C.current=!0);return}}catch(e){console.error("[ChatSession] Failed to parse message:",e)}},o.onclose=n=>{let a,o;if(c!==N.current)return;d(!1),_.current=null,D.current&&(clearTimeout(D.current),D.current=null);let l=4e3===n.code,u=E.current?Date.now()-E.current:0;if(E.current=null,!l&&u>0&&u<5e3){if(R.current++,R.current>=3)return A.current?void g("Unable to connect to remote server. Please check the server configuration."):(e&&kw.delete(kS(e,r)),i(null),g(null),w.current=0,R.current=0,void(j.current=!0))}else u>=5e3&&(R.current=0);if(C.current||1e3===n.code)return;if(w.current>=10)return void g("Unable to connect to server.");let h=(o=(a=Math.min(3e4,1e3*Math.pow(2,w.current)))*Math.random()*.25,a+o);w.current++,b.current=setTimeout(()=>{s?.id&&!C.current&&M(s.id,!0)},h)},o.onerror=()=>{}},[s?.id,M]);(0,$.useEffect)(()=>{y.current=F},[F]);let T=(0,$.useCallback)(async()=>{if(!e)return null;let s=N.current;g(null),h(!1),A.current=!1;let n=kS(e,r),o=kw.get(n);if(o)return i(o),l(o.status),M(o.id),o;p(!0);try{let{session:o,messages:c}=await k_(e,r);if(N.current!==s)return null;return kw.set(n,o),i(o),l(o.status),c&&c.length>0&&a(c),M(o.id),o}catch(e){if(N.current!==s)return null;return g(e instanceof Error?e.message:"Failed to start session"),A.current=!0,null}finally{N.current===s&&p(!1)}},[e,r,M]),P=(0,$.useCallback)(async e=>{let r=s?.id;if(r&&e.trim())try{await ky(r,e.trim())}catch(r){let e=r instanceof Error?r.message:"Failed to send message";g(e),xg.toast.error("Failed to send message",{description:e})}},[s?.id]),B=(0,$.useCallback)(async()=>{if(s?.id)try{await kb(s.id)}catch(e){console.error("[ChatSession] Failed to stop generation:",e)}},[s?.id]),L=(0,$.useCallback)(async()=>{if(s?.id)try{await rv.api.resetChatSession(s.id),a([]),l("stopped"),S.current={entries:[],status:"stopped"}}catch(e){console.error("[ChatSession] Failed to reset session:",e),xg.toast.error("Failed to start new conversation")}},[s?.id]);return(0,$.useEffect)(()=>()=>{_.current&&(C.current=!0,_.current.close()),b.current&&clearTimeout(b.current),D.current&&clearTimeout(D.current)},[]),(0,$.useEffect)(()=>{_.current&&(_.current.close(1e3,"branch-switch"),_.current=null),b.current&&(clearTimeout(b.current),b.current=null),D.current&&(clearTimeout(D.current),D.current=null),N.current+=1,i(null),l("stopped"),d(!1),h(!1),g(null),p(!1),S.current={entries:[],status:"stopped"},C.current=!1,w.current=0,E.current=null,R.current=0,A.current=!1,j.current=!0},[e,r]),(0,$.useEffect)(()=>{!j.current||!e||s||f||A.current||(j.current=!1,T())},[e,s,f,T]),(0,$.useEffect)(()=>{!s?.id||c||C.current||M(s.id)},[s?.id,c,M]),(0,$.useEffect)(()=>{let e=()=>{if("visible"!==document.visibilityState||!s?.id||C.current)return;let e=_.current,r=S.current.entries.filter(Boolean).length;console.log(`[ChatSession] Tab visible: ws.readyState=${e?.readyState??"null"}, isReplaying=${k.current}, messages=${r}`),e&&e.readyState===WebSocket.OPEN&&e.close(4e3,"visibility-recovery")};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[s?.id]),{session:s,messages:n,status:o,isConnected:c,isInitialized:u,isLoading:f,error:m,workflowRunUpdate:x,sendMessage:P,stopGeneration:B,restartSession:L}}(e,r),{settings:p}=(0,dh.useConversationSettings)(),[m,g]=(0,$.useState)([]);(0,$.useImperativeHandle)(s,()=>({sendMessage:async e=>{let r=e.trim();r&&await d(r)}}),[d]);let[x,v]=(0,$.useState)(""),[_,y]=(0,$.useState)(!1);(0,$.useEffect)(()=>{i?.eventListeningEnabled!=null&&y(i.eventListeningEnabled)},[i?.eventListeningEnabled]);let b="running"===a,w=(0,$.useCallback)(async e=>{let r=e.text.trim();r&&(v(""),await d(r))},[d]);return e?(0,z.jsxs)("div",{className:"h-full flex flex-col min-h-0",style:{"--conv-font-size":`${p.chatFontSize}px`},children:[(0,z.jsxs)("div",{className:"flex-shrink-0 flex items-center justify-between px-4 h-10 border-b border-border/60 bg-muted/20",children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)(x_,{className:"h-3.5 w-3.5 text-primary"}),(0,z.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Main Chat"}),b&&(0,z.jsx)(rk,{className:"h-3 w-3 animate-spin text-primary/60"})]}),i&&(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",onClick:async()=>{let e=!_;try{await rv.api.setChatEventListening(i.id,e),y(e)}catch{xg.toast.error("Failed to toggle event listening")}},className:`h-7 w-7 ${_?"text-amber-500":""}`,title:_?"Listening to executor events (click to disable)":"Listen to executor events (click to enable)",children:(0,z.jsx)(kN,{className:"h-3.5 w-3.5"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",onClick:()=>h(),disabled:b,className:"h-7 w-7",title:"New Conversation",children:(0,z.jsx)(j2,{className:"h-3.5 w-3.5"})})]})]}),(0,z.jsx)(kk,{projectId:e,branch:r,runUpdate:f,onRunsChange:g}),(0,z.jsxs)(ja,{className:"flex-1 min-h-0",initial:"instant",children:[(0,z.jsx)(kE,{messages:n}),(0,z.jsxs)(jo,{className:"gap-4 p-4",children:[l&&0===n.length&&(0,z.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,z.jsx)(rk,{className:"h-6 w-6 animate-spin text-muted-foreground"})}),!l&&o&&0===n.length&&(0,z.jsxs)("div",{className:"text-center py-16",children:[(0,z.jsx)("div",{className:"mx-auto w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center mb-4",children:(0,z.jsx)(x_,{className:"h-6 w-6 text-primary/60"})}),(0,z.jsx)("h3",{className:"text-sm font-semibold mb-1 text-foreground",children:"Start a conversation"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Chat with the AI assistant about your project"})]}),n.map((s,n)=>{if("turn_end"===s.type)return(0,z.jsxs)("div",{className:"mx-4 my-3 flex items-center gap-2","aria-hidden":!0,children:[(0,z.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,z.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-border"}),(0,z.jsx)("div",{className:"h-px flex-1 bg-border"})]},n);if("user"===s.type&&s.content.startsWith("[System Invariant Violation]")){let e=s.content.replace(/^\[System Invariant Violation\]\n?/,"");return(0,z.jsxs)("div",{className:"mx-4 my-2 flex gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2",children:[(0,z.jsx)(ll,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-500"}),(0,z.jsxs)("div",{className:"min-w-0",children:[(0,z.jsx)("div",{className:"text-xs font-medium text-amber-600 dark:text-amber-400",children:"System invariant correction"}),(0,z.jsx)("div",{className:"mt-0.5 whitespace-pre-wrap text-muted-foreground",style:{fontSize:"var(--conv-font-size, 12px)"},children:e})]})]},n)}if("user"===s.type){let i=s.event,a=i?.kind==="agent_task_completed"&&m.some(e=>e.source_session_id===i.sessionId||e.reviewer_session_id===i.sessionId);return(0,z.jsxs)("div",{children:[(0,z.jsx)(wo,{from:"user",children:(0,z.jsx)(wl,{style:{fontSize:"var(--conv-font-size, 14px)"},children:s.content})}),i?.kind==="agent_task_completed"&&(0,z.jsx)("div",{className:"mt-1 flex justify-end",children:(0,z.jsx)(W.Button,{variant:"outline",size:"sm",disabled:a,title:a?"该 session 已在一个进行中的 review 里":void 0,onClick:async()=>{if(e)try{await rv.api.createWorkflowRun({projectId:e,branch:r,sourceSessionId:i.sessionId,sourceTurnEndIndex:i.turnEndEntryIndex})}catch(e){alert(e instanceof Error?e.message:String(e))}},children:"Review"})})]},n)}return"assistant"===s.type?(0,z.jsx)(wo,{from:"assistant",children:(0,z.jsx)(wl,{style:{fontSize:"var(--conv-font-size, 14px)"},children:(0,z.jsx)(wc,{children:s.content})})},n):"tool_use"===s.type?(0,z.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 text-xs text-muted-foreground",children:[(0,z.jsx)(dt,{className:"w-3.5 h-3.5 animate-pulse"}),(0,z.jsx)("span",{children:function(e){switch(e){case"getExecutorStatus":return"Checking executor status...";case"getAgentConversation":return"Checking agent conversation...";case"listTerminals":return"Listing terminals...";case"runInTerminal":return"Sending command to terminal...";case"spawnAgentSession":return"Starting a coding agent...";case"sendToAgentSession":return"Sending a message to the agent...";default:return`Running ${e}...`}}(s.tool)})]},n):"tool_result"===s.type?(0,z.jsx)("div",{className:"px-4 py-2",children:(0,z.jsxs)("details",{className:"text-xs text-muted-foreground",children:[(0,z.jsx)("summary",{className:"cursor-pointer hover:text-foreground",children:"Tool result"}),(0,z.jsx)("pre",{className:"mt-1 p-2 bg-muted/50 rounded overflow-x-auto whitespace-pre-wrap",style:{fontSize:"var(--conv-font-size, 12px)"},children:s.output})]})},n):"tool_approval_request"===s.type?i?(0,z.jsx)(kC,{sessionId:i.id,approvalId:s.approvalId,tool:s.tool,input:s.input,resolved:s.resolved},n):null:"error"===s.type?(0,z.jsx)("div",{className:"mx-auto max-w-[90%] rounded-lg border border-destructive/50 bg-destructive/10 px-4 py-3 text-destructive",style:{fontSize:"var(--conv-font-size, 14px)"},children:s.message},n):null}),c&&(0,z.jsx)("div",{className:"mx-auto max-w-[90%] rounded-lg border border-destructive/50 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:c})]}),(0,z.jsx)(jl,{})]}),(0,z.jsxs)("div",{className:"flex-shrink-0 border-t border-border/60 p-3",children:[b&&(0,z.jsx)("div",{className:"flex justify-center mb-2",children:(0,z.jsxs)(W.Button,{variant:"outline",size:"sm",onClick:u,className:"gap-1.5",children:[(0,z.jsx)(uA,{className:"h-3 w-3"}),"Stop generating"]})}),(0,z.jsxs)(j$,{onSubmit:w,className:"w-full",children:[(0,z.jsx)(jW,{disabled:!o||b,placeholder:o?b?"Waiting for response...":"Type a message...":"Connecting...",className:"pr-12",style:{fontSize:"var(--conv-font-size, 14px)"},value:x,onChange:e=>v(e.currentTarget.value)}),(0,z.jsx)("div",{className:"pointer-events-none absolute bottom-0 right-1 flex items-center text-base md:text-sm",style:{fontSize:"var(--conv-font-size, 14px)",height:"calc(1lh + 1.5rem)"},children:(0,z.jsx)(jG,{className:"pointer-events-auto",disabled:!o||b||!x.trim()})})]})]})]}):(0,z.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(x_,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to start chatting"})]})})}),kR=(0,ew.default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),kA=(0,ew.default)("archive-restore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]]);function kM({task:e,onUpdate:r,onDelete:s,onArchive:i,onUnarchive:n,archivedView:a,onClick:o,worktrees:l,assignedBranches:c,onAssign:d}){let[u,h]=(0,$.useState)(!1),[f,p]=(0,$.useState)(e.title),m=(0,$.useRef)(null);(0,$.useEffect)(()=>{u&&(m.current?.focus(),m.current?.select())},[u]),(0,$.useEffect)(()=>{p(e.title)},[e.title]);let g=()=>{h(!1);let s=f.trim();s&&s!==e.title?r(e.id,{title:s}):p(e.title)},x="done"===e.status||"cancelled"===e.status;return(0,z.jsxs)(l5,{className:"group cursor-pointer",onClick:()=>o?.(e),children:[(0,z.jsx)(l4,{className:"w-10",onClick:e=>e.stopPropagation(),children:(0,z.jsx)(eb,{checked:"done"===e.status,onCheckedChange:s=>{r(e.id,{status:s?"done":"todo"})}})}),(0,z.jsx)(l4,{className:"font-medium",children:u?(0,z.jsx)("input",{ref:m,className:"w-full bg-transparent border-b border-primary outline-none text-sm py-0.5",value:f,onChange:e=>p(e.target.value),onBlur:g,onClick:e=>e.stopPropagation(),onKeyDown:r=>{"Enter"===r.key&&g(),"Escape"===r.key&&(p(e.title),h(!1))}}):(0,z.jsxs)("div",{children:[(0,z.jsx)("span",{className:`cursor-pointer hover:underline text-sm ${x?"line-through text-muted-foreground":""}`,onClick:e=>{e.stopPropagation(),h(!0)},children:e.title}),e.description&&(0,z.jsx)("p",{className:"text-xs text-muted-foreground truncate max-w-[400px] mt-0.5",children:e.description.length>80?e.description.slice(0,80)+"...":e.description})]})}),(0,z.jsx)(l4,{onClick:e=>e.stopPropagation(),children:(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{className:"focus:outline-none",children:(0,z.jsx)(sb,{variant:"outline",className:`cursor-pointer text-xs ${op[e.status].color}`,children:op[e.status].label})})}),(0,z.jsx)(ag,{align:"start",children:og.map(s=>(0,z.jsxs)(ax,{onClick:()=>r(e.id,{status:s}),children:[(0,z.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-2 ${op[s].color}`}),op[s].label]},s))})]})}),(0,z.jsx)(l4,{onClick:e=>e.stopPropagation(),children:(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{className:"focus:outline-none",children:(0,z.jsx)(sb,{variant:"outline",className:`cursor-pointer text-xs ${om[e.priority].color}`,children:om[e.priority].label})})}),(0,z.jsx)(ag,{align:"start",children:ox.map(s=>(0,z.jsxs)(ax,{onClick:()=>r(e.id,{priority:s}),children:[(0,z.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-2 ${om[s].color}`}),om[s].label]},s))})]})}),(0,z.jsx)(l4,{onClick:e=>e.stopPropagation(),children:(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsx)("button",{className:"focus:outline-none",children:(0,z.jsxs)(sb,{variant:"outline",className:`cursor-pointer text-xs font-mono ${null!==e.assigned_branch?"bg-accent text-accent-foreground border-transparent":"text-muted-foreground"}`,children:[(0,z.jsx)(rw,{className:"h-3 w-3 mr-1"}),null!==e.assigned_branch?""===e.assigned_branch?"main":e.assigned_branch:"Unassigned"]})})}),(0,z.jsxs)(ag,{align:"start",children:[null!==e.assigned_branch&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(ax,{onClick:()=>d(e.id,null),children:"Unassign"}),(0,z.jsx)(aw,{})]}),l.filter(r=>{let s=null===r.branch?"":r.branch;return!(e.assigned_branch===s||c.has(s))}).map(r=>{let s=null===r.branch?"":r.branch,i=r.branch??"main";return(0,z.jsxs)(ax,{onClick:()=>d(e.id,s),children:[(0,z.jsx)(rw,{className:"h-3 w-3 mr-2"}),i]},s)})]})]})}),(0,z.jsx)(l4,{className:"text-muted-foreground text-[10.5px] font-mono",children:new Date(e.created_at).toLocaleDateString()}),(0,z.jsx)(l4,{className:"w-10",onClick:e=>e.stopPropagation(),children:(0,z.jsxs)("div",{className:"flex items-center gap-0.5",children:[a?(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",title:"Unarchive",onClick:()=>n(e.id),children:(0,z.jsx)(kA,{className:"h-3.5 w-3.5 text-muted-foreground"})}):(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",title:"Archive",onClick:()=>i(e.id),children:(0,z.jsx)(kR,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,z.jsx)(W.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",title:"Delete",onClick:()=>s(e.id),children:(0,z.jsx)(rc,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})})]})}let kF={todo:0,in_progress:1,done:2,cancelled:3},kT={urgent:0,high:1,medium:2,low:3};function kP({tasks:e,onUpdate:r,onDelete:s,onArchive:i,onUnarchive:n,archivedView:a,worktrees:o,onAssign:l}){let[c,d]=(0,$.useState)(null),[u,h]=(0,$.useState)("asc"),[f,p]=(0,$.useState)(null),[m,g]=(0,$.useState)(!1),x=e=>{c===e?h(e=>"asc"===e?"desc":"asc"):(d(e),h("asc"))},v=(0,$.useMemo)(()=>{if(!c)return e;let r="asc"===u?1:-1;return[...e].sort((e,s)=>{switch(c){case"title":return r*e.title.localeCompare(s.title);case"status":return r*(kF[e.status]-kF[s.status]);case"priority":return r*(kT[e.priority]-kT[s.priority]);case"created_at":return r*(new Date(e.created_at).getTime()-new Date(s.created_at).getTime());default:return 0}})},[e,c,u]),_=e=>c!==e?null:"asc"===u?" ↑":" ↓",y=(0,$.useMemo)(()=>new Set(e.filter(e=>null!==e.assigned_branch).map(e=>e.assigned_branch)),[e]);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(l0,{children:[(0,z.jsx)(l1,{children:(0,z.jsxs)(l5,{children:[(0,z.jsx)(l3,{className:"w-10"}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none",onClick:()=>x("title"),children:["Title",_("title")]}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none w-32",onClick:()=>x("status"),children:["Status",_("status")]}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none w-28",onClick:()=>x("priority"),children:["Priority",_("priority")]}),(0,z.jsx)(l3,{className:"w-32",children:"Assign"}),(0,z.jsxs)(l3,{className:"cursor-pointer select-none w-28",onClick:()=>x("created_at"),children:["Created",_("created_at")]}),(0,z.jsx)(l3,{className:"w-10"})]})}),(0,z.jsxs)(l2,{children:[v.map(e=>(0,z.jsx)(kM,{task:e,onUpdate:r,onDelete:s,onArchive:i,onUnarchive:n,archivedView:a,onClick:e=>{p(e),g(!0)},worktrees:o,assignedBranches:y,onAssign:l},e.id)),0===e.length&&(0,z.jsx)(l5,{children:(0,z.jsx)("td",{colSpan:7,className:"text-center text-muted-foreground py-12 text-sm",children:(0,z.jsxs)("div",{className:"flex flex-col items-center gap-1",children:[(0,z.jsx)("p",{className:"text-sm font-medium text-foreground/60",children:"No tasks yet"}),(0,z.jsx)("p",{className:"text-xs text-muted-foreground",children:"Create one to get started."})]})})})]})]}),(0,z.jsx)(ov,{task:f,open:m,onOpenChange:g})]})}function kB({open:e,onOpenChange:r,onSubmit:s}){let[i,n]=(0,$.useState)(""),[a,o]=(0,$.useState)("todo"),[l,c]=(0,$.useState)("medium");return(0,z.jsx)(t7,{open:e,onOpenChange:r,children:(0,z.jsxs)(rr,{className:"sm:max-w-md max-h-[85vh] flex flex-col",children:[(0,z.jsx)(rs,{children:(0,z.jsx)(rn,{children:"Create Task"})}),(0,z.jsxs)("form",{onSubmit:e=>{e.preventDefault(),i.trim()&&(s({description:i.trim(),status:a,priority:l}),n(""),o("todo"),c("medium"),r(!1))},className:"space-y-4 overflow-y-auto min-h-0 px-0.5",children:[(0,z.jsx)("div",{className:"space-y-2",children:(0,z.jsx)(rl,{placeholder:"Describe the task...",value:i,onChange:e=>n(e.target.value),className:"max-h-[40vh] focus-visible:border-input focus-visible:ring-0",rows:3,autoFocus:!0})}),(0,z.jsxs)("div",{className:"flex gap-3",children:[(0,z.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,z.jsx)("label",{className:"text-xs text-muted-foreground",children:"Status"}),(0,z.jsxs)(cX,{value:a,onValueChange:e=>o(e),children:[(0,z.jsx)(cZ,{children:(0,z.jsx)(cJ,{})}),(0,z.jsx)(cQ,{children:og.map(e=>(0,z.jsx)(c0,{value:e,children:op[e].label},e))})]})]}),(0,z.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,z.jsx)("label",{className:"text-xs text-muted-foreground",children:"Priority"}),(0,z.jsxs)(cX,{value:l,onValueChange:e=>c(e),children:[(0,z.jsx)(cZ,{children:(0,z.jsx)(cJ,{})}),(0,z.jsx)(cQ,{children:ox.map(e=>(0,z.jsx)(c0,{value:e,children:om[e].label},e))})]})]})]}),(0,z.jsxs)(ri,{children:[(0,z.jsx)(W.Button,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),(0,z.jsx)(W.Button,{type:"submit",disabled:!i.trim(),children:"Create"})]})]})]})})}let kL=[{value:"all",label:"All"},{value:"todo",label:"Todo"},{value:"in_progress",label:"Doing"},{value:"done",label:"Done"},{value:"cancelled",label:"Cancelled"},{value:"archived",label:"Archived"}];function kI({projectId:e,tasks:r,loading:s,worktrees:i,onCreateTask:n,onUpdateTask:a,onDeleteTask:o,onArchiveTask:l,onUnarchiveTask:c}){let[d,u]=(0,$.useState)(!1),[h,f]=(0,$.useState)("all"),p=(0,$.useMemo)(()=>r.filter(e=>null===e.archived_at),[r]),m=(0,$.useMemo)(()=>r.filter(e=>null!==e.archived_at),[r]),g=(0,$.useMemo)(()=>{let e={all:p.length,todo:0,in_progress:0,done:0,cancelled:0,archived:m.length};for(let r of p)e[r.status]++;return e},[p,m]),x=(0,$.useMemo)(()=>"archived"===h?m:"all"===h?p:p.filter(e=>e.status===h),[p,m,h]),v="archived"===h;return e?(0,z.jsxs)("div",{className:"flex flex-col h-full",children:[(0,z.jsx)(lb,{title:"Tasks",count:p.length,actions:(0,z.jsxs)(W.Button,{size:"sm",onClick:()=>u(!0),className:"shadow-sm",children:[(0,z.jsx)(eS,{className:"h-3.5 w-3.5 mr-1.5"}),"New Task"]})}),(0,z.jsx)(lw,{children:kL.map(e=>(0,z.jsx)(lS,{active:h===e.value,count:g[e.value],onClick:()=>f(e.value),children:e.label},e.value))}),(0,z.jsx)("div",{className:"flex-1 overflow-auto px-5 edge-scrollbar",children:s?(0,z.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:"Loading tasks..."}):(0,z.jsx)(kP,{tasks:x,onUpdate:a,onDelete:o,onArchive:l,onUnarchive:c,archivedView:v,worktrees:i,onAssign:(e,r)=>{a(e,{assigned_branch:r})}})}),(0,z.jsx)(kB,{open:d,onOpenChange:u,onSubmit:n})]}):(0,z.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,z.jsxs)("div",{className:"text-center",children:[(0,z.jsx)("div",{className:"mx-auto w-10 h-10 rounded-xl bg-muted flex items-center justify-center mb-3",children:(0,z.jsx)(eS,{className:"h-5 w-5 text-muted-foreground/50"})}),(0,z.jsx)("p",{className:"text-sm",children:"Select a project to view tasks."})]})})}let kO=(0,ew.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);function kz({open:e,onOpenChange:r,onNavigateProject:s,onNavigateWorkspace:i,onNavigateSession:n}){let[a,o]=(0,$.useState)(""),[l,c]=(0,$.useState)(null),[d,u]=(0,$.useState)(!1),h=(0,$.useRef)(null),f=(0,$.useRef)(null),p=(0,$.useRef)("");(0,$.useLayoutEffect)(()=>{p.current=a},[a]);let[m,g]=(0,$.useState)(e);e!==m&&(g(e),e&&(o(""),c(null),u(!1)));let x=(0,$.useCallback)(async e=>{h.current?.abort();let r=new AbortController;h.current=r;try{let s=await (0,rv.searchAll)(e,{signal:r.signal});r.signal.aborted||(c(s),u(!1))}catch{r.signal.aborted||u(!0)}},[]),v=(0,$.useRef)(!1);(0,$.useEffect)(()=>{let r=e&&!v.current;if(v.current=e,e)return f.current&&clearTimeout(f.current),f.current=setTimeout(()=>void x(a),150*!r),()=>{f.current&&clearTimeout(f.current)}},[a,e,x]),(0,$.useEffect)(()=>{if(!e)return;let r=!1;return(0,rv.refreshSearchCache)().then(()=>{r||x(p.current)}).catch(()=>{}),()=>{r=!0,h.current?.abort()}},[e,x]);let _=null===l,y=!!l&&0===l.projects.length&&0===l.workspaces.length&&0===l.sessions.length,b=l?.cacheState==="cold";return(0,z.jsxs)(bA,{open:e,onOpenChange:r,title:"Quick Switcher",description:"Search projects, workspaces, and sessions",shouldFilter:!1,children:[(0,z.jsx)(bM,{placeholder:"Search projects, workspaces, sessions…",value:a,onValueChange:o}),(0,z.jsxs)(bF,{children:[d&&(0,z.jsxs)("div",{className:"flex items-center justify-between gap-2 px-4 py-3 text-sm text-destructive",children:[(0,z.jsx)("span",{children:"Search failed."}),(0,z.jsx)(W.Button,{variant:"link",size:"sm",className:"h-auto p-0 text-destructive",onClick:()=>void x(p.current),children:"Retry"})]}),!d&&_&&(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}),"Searching…"]}),!d&&!_&&y&&b&&(0,z.jsxs)("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,z.jsx)(rk,{className:"h-4 w-4 animate-spin"}),"Syncing history…"]}),!d&&!_&&y&&!b&&(0,z.jsx)(bT,{children:"No results found."}),l&&l.projects.length>0&&(0,z.jsx)(bP,{heading:"Projects",children:l.projects.map(e=>(0,z.jsxs)(bB,{value:`project-${e.id}`,onSelect:()=>s(e.id),children:[(0,z.jsx)(kO,{}),(0,z.jsx)("span",{children:e.name}),e.path&&(0,z.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:e.path})]},e.id))}),l&&l.workspaces.length>0&&(0,z.jsx)(bP,{heading:"Workspaces",children:l.workspaces.map(e=>(0,z.jsxs)(bB,{value:`ws-${e.projectId}-${e.targetId}-${e.branch??""}`,onSelect:()=>i(e),children:[(0,z.jsx)(rw,{}),(0,z.jsx)("span",{children:e.branch??"main"}),(0,z.jsx)("span",{className:"text-xs text-muted-foreground",children:e.projectName})]},`${e.projectId}-${e.targetId}-${e.branch??""}`))}),l&&l.sessions.length>0&&(0,z.jsx)(bP,{heading:"Sessions",children:l.sessions.map(e=>(0,z.jsxs)(bB,{value:`session-${e.sessionId}`,onSelect:()=>n(e),children:[(0,z.jsx)(x_,{}),(0,z.jsx)("span",{className:"truncate",children:e.title??"Untitled session"}),e.favoritedAt&&(0,z.jsx)(ki,{className:"h-3.5 w-3.5 shrink-0 fill-current text-amber-500"}),(0,z.jsxs)("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground",children:[e.projectName," · ",e.branch??"main"," · ",function(e){if(!e)return"";let r=Date.now()-e;return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:`${Math.floor(r/864e5)}d ago`}(e.lastActiveAt)]})]},e.sessionId))})]})]})}let k$={completed:"/sounds/sound1.mp3","main-completed":"/sounds/sound2.mp3"};function kW(e,r){return`${e}:${r??""}`}let kH="vibedeckx:completion-notifications";function kU(e){return"object"==typeof e&&null!==e&&"string"==typeof e.id&&"string"==typeof e.projectId&&("string"==typeof e.branch||null===e.branch)&&("string"==typeof e.sessionId||null===e.sessionId||void 0===e.sessionId)&&("completed"===e.type||"main-completed"===e.type)&&"number"==typeof e.at&&"boolean"==typeof e.read}let kK=new Map,kq=new Set,kV=(0,ew.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),kY={completed:{label:"Agent finished",dot:"bg-lime-400"},"main-completed":{label:"Chat finished",dot:"bg-emerald-500"}};function kG({notifications:e,unreadCount:r,projects:s,onNavigate:i,markRead:n,markAllRead:a,remove:o,clear:l}){return(0,z.jsxs)(ap,{children:[(0,z.jsx)(am,{asChild:!0,children:(0,z.jsxs)(W.Button,{variant:"ghost",size:"icon-sm",className:"relative","aria-label":r>0?`${r} unread completion notifications`:"Completion notifications",children:[(0,z.jsx)(kV,{className:"h-4 w-4"}),r>0&&(0,z.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[9px] font-semibold leading-none text-primary-foreground",children:r>9?"9+":r})]})}),(0,z.jsxs)(ag,{align:"end",className:"w-80 p-0",children:[(0,z.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,z.jsx)("span",{className:"text-[12.5px] font-semibold text-foreground",children:"Notifications"}),e.length>0&&(0,z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,z.jsxs)("button",{onClick:a,disabled:0===r,className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-40",title:"Mark all read",children:[(0,z.jsx)(lo,{className:"h-3 w-3"}),"Mark all read"]}),(0,z.jsx)("button",{onClick:l,className:"rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",title:"Clear all",children:"Clear"})]})]}),(0,z.jsx)("div",{className:"max-h-[60vh] overflow-y-auto border-t border-border",children:0===e.length?(0,z.jsx)("div",{className:"px-3 py-8 text-center text-[12px] text-muted-foreground/70",children:"No completions yet."}):e.map(e=>{let r,a=kY[e.type];return(0,z.jsxs)(ax,{onSelect:()=>{n(e.id),i(e.projectId,e.branch,e.sessionId)},className:(0,ey.cn)("group flex flex-col items-start gap-0.5 rounded-none px-3 py-2",!e.read&&"bg-primary/[0.08]"),children:[(0,z.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,z.jsx)("span",{className:(0,ey.cn)("h-[7px] w-[7px] shrink-0 rounded-full",a.dot)}),(0,z.jsx)("span",{className:(0,ey.cn)("min-w-0 flex-1 truncate text-[12.5px]",e.read?"text-foreground/70":"font-medium text-foreground"),children:(r=e.projectId,s.find(e=>e.id===r)?.name??"Unknown project")}),(0,z.jsx)("span",{className:"shrink-0 text-[10.5px] text-muted-foreground/70",children:function(e){let r=Math.max(0,Math.round((Date.now()-e)/1e3));if(r<60)return"just now";let s=Math.round(r/60);if(s<60)return`${s}m ago`;let i=Math.round(s/60);if(i<24)return`${i}h ago`;let n=Math.round(i/24);return`${n}d ago`}(e.at)}),(0,z.jsx)("button",{onClick:r=>{r.stopPropagation(),o(e.id)},className:"shrink-0 rounded p-0.5 text-muted-foreground/60 opacity-0 transition-all hover:bg-muted hover:text-foreground group-hover:opacity-100",title:"Dismiss",children:(0,z.jsx)(t8,{className:"h-3 w-3"})})]}),(0,z.jsxs)("div",{className:"flex w-full items-center gap-1.5 pl-[15px] text-[11px] text-muted-foreground",children:[(0,z.jsx)("span",{className:"font-mono truncate",children:e.branch??"main"}),(0,z.jsx)("span",{className:"text-muted-foreground/50",children:"·"}),(0,z.jsx)("span",{className:"shrink-0",children:a.label})]})]},e.id)})})]})]})}function kX(e){if(null===e)return"尚未连接";let r=Math.max(0,Math.round((Date.now()-e)/1e3));if(r<60)return`${r} 秒前`;let s=Math.floor(r/60);return s<60?`${s} 分钟前`:`${Math.floor(s/60)} 小时前`}function kJ(){let{state:e,lastEventAt:r,reconnect:s}=(0,ok.useConnectionStatus)(),[,i]=(0,$.useState)(0);if((0,$.useEffect)(()=>{let e=setInterval(()=>i(e=>e+1),5e3);return()=>clearInterval(e)},[]),"stale"===e)return(0,z.jsxs)("button",{type:"button",onClick:s,title:`实时更新已断开 \xb7 上次更新 ${kX(r)} \xb7 点击重新连接`,className:"flex items-center gap-1.5 rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-600 transition-colors hover:bg-amber-500/20",children:[(0,z.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-500"}),"实时更新已断开"]});let n="live"===e;return(0,z.jsx)("span",{title:n?`实时更新正常 \xb7 上次更新 ${kX(r)}`:"正在连接实时更新…",className:"flex items-center px-1","aria-label":n?"实时更新正常":"正在连接实时更新",children:(0,z.jsx)("span",{className:n?"h-1.5 w-1.5 rounded-full bg-emerald-500":"h-1.5 w-1.5 animate-pulse rounded-full bg-muted-foreground/40"})})}let kZ=new Set(["workspace","tasks","schedules","remote-servers","settings","project-info"]),kQ="tasks";function k0(){let e=window.location.pathname,r=new URLSearchParams(window.location.search),s=r.get("project");if(s){let e=r.get("tab");return{projectId:s,tab:e&&kZ.has(e)?e:kQ,branch:r.get("branch")}}let i=e.split("/").filter(Boolean);if(1===i.length&&kZ.has(i[0])){let e=i[0];if("remote-servers"===e||"settings"===e)return{projectId:null,tab:e,branch:null}}let n=null,a=kQ;if("p"===i[0]&&i[1]){n=i[1];let e=i[2];e&&kZ.has(e)&&(a=e)}return{projectId:n,tab:a,branch:r.get("branch")}}function k1(e){let{projectId:r,tab:s,branch:i}=e;if("remote-servers"===s||"settings"===s)return`/${s}`;if(!r)return"/";let n=`/p/${r}/${s??kQ}`;return i&&(n+=`?branch=${encodeURIComponent(i)}`),n}function k2(e,r,s,i){return!!e&&e.projectId===r&&e.branch===s&&e.sessionId===i}function k5(){var e,r,s,i,n;let a,o,l,c,d,{projectId:u,tab:h,branch:f}=function(){let[e,r]=(0,$.useState)(k0);return(0,$.useEffect)(()=>{let e=()=>r(k0());return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),e}(),[p,m]=(0,$.useState)(()=>new URLSearchParams(window.location.search).get("session")),[g,x]=(0,$.useState)(null),v=(0,$.useCallback)(e=>{m(e);let r=new URL(window.location.href);e?r.searchParams.set("session",e):r.searchParams.delete("session"),window.history.replaceState(null,"",r.toString())},[]);(0,$.useEffect)(()=>{let e=()=>{m(new URLSearchParams(window.location.search).get("session"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),(0,$.useEffect)(()=>{if(new URLSearchParams(window.location.search).has("project")){let e=k1({projectId:u,tab:h,branch:f});window.history.replaceState(null,"",e)}},[]);let[_,y]=(0,$.useState)(!1),[b,w]=(0,$.useState)(!1),[S,C]=(0,$.useState)(!1),[j,k]=(0,$.useState)(null),[N,E]=(0,$.useState)(f),[D,R]=(0,$.useState)(h),[A,M]=(0,$.useState)(0),[F,T]=(0,$.useState)(0),P=(0,$.useRef)(null),[B,L]=(0,$.useState)(void 0),[I,O]=(0,$.useTransition)(),{projects:H,currentProject:U,loading:K,addProject:q,createProject:V,updateProject:Y,deleteProject:G,selectProject:X}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(null),[a,o]=(0,$.useState)(!0),l=(0,$.useCallback)(async()=>{o(!0);try{let r=await rv.api.getProjects();if(s(r),r.length>0&&!i){let s=e?r.find(r=>r.id===e):null;n(s??r[0])}}finally{o(!1)}},[i,e]);(0,$.useEffect)(()=>{l()},[]);let c=async(e,r)=>{let a=await rv.api.updateProject(e,r);return s(r=>r.map(r=>r.id===e?a:r)),i?.id===e&&n(a),a},d=async e=>{await rv.api.deleteProject(e),s(r=>r.filter(r=>r.id!==e)),i?.id===e&&n(r.find(r=>r.id!==e)??null)};return{projects:r,currentProject:i,loading:a,addProject:e=>{s(r=>[e,...r]),n(e)},createProject:async e=>{let r=await rv.api.createProject(e);return s(e=>[r,...e]),n(r),r},updateProject:c,deleteProject:d,selectProject:e=>{n(e)},refresh:l}}(u);U?.id!==B&&(void 0!==B&&E(null),L(U?.id));let{worktrees:J,loading:Z,refetch:Q}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(!0),[a,o]=(0,$.useState)(null),l=(0,$.useCallback)(async()=>{if(!e){s([]),o(null),n(!1);return}n(!0);try{let r=await rv.api.getProjectWorktrees(e);s(r)}catch(e){console.error("Failed to fetch worktrees:",e),s([{branch:null}])}finally{o(e),n(!1)}},[e]);return(0,$.useEffect)(()=>{l()},[l]),{worktrees:r,loading:i||a!==e,refetch:l}}(U?.id??null),{statuses:ee,defaultTarget:et,repositoryLabel:er,setTarget:es,refetch:ei}=function(e,r){let[s,i]=(0,$.useState)(new Map),[n,a]=(0,$.useState)(null),[o,l]=(0,$.useState)(null),[c,d]=(0,$.useState)(0),[u,h]=(0,$.useState)(e);e!==u&&(h(e),i(new Map),a(null),l(null));let f=(0,$.useCallback)(()=>d(e=>e+1),[]);return(0,$.useEffect)(()=>{let s=r.map(e=>e.branch).filter(e=>null!==e),n=!1;return(async()=>{if(!e||0===s.length){n||(i(new Map),a(null),l(null));return}if(oE(e).length>0&&(await function(e){let r=oD.get(e);if(r)return r;let s=(async()=>{let r=new Map;for(;;){let s=oE(e).filter(({key:e,target:s})=>r.get(e)!==s);if(0===s.length)break;for(let{key:i,branch:n,target:a}of s){r.set(i,a);let s=!1;try{s=await rv.api.setMergeTarget(e,n,a,{ifAbsent:!0})}catch{}if(s)try{localStorage.getItem(i)===a&&localStorage.removeItem(i)}catch{}}}})();return oD.set(e,s),s.finally(()=>{oD.get(e)===s&&oD.delete(e)}),s}(e),n))return;let r=s.map(e=>({branch:e})),o=await rv.api.getMergeStatus(e,r);n||o.ok&&(i(function(e){let r=new Map;for(let s of e){if("target-not-found"===s.error&&s.requestedTarget){r.set(s.branch,{branch:s.branch,error:s.error,requestedTarget:s.requestedTarget,targetSource:s.targetSource});continue}!s.error&&s.target&&s.status&&r.set(s.branch,{branch:s.branch,status:s.status,unmergedCount:s.unmergedCount??0,dirty:s.dirty??!1,target:s.target})}return r}(o.entries)),a(function(e){for(let r of e)if("default"===r.targetSource&&r.target)return r.target;return null}(o.entries)),l(o.repository.label))})(),()=>{n=!0}},[e,r,c,f]),{statuses:s,defaultTarget:n,repositoryLabel:o,setTarget:(0,$.useCallback)((r,s)=>{e&&rv.api.setMergeTarget(e,r,s).then(e=>{e&&f()})},[e,f]),refetch:f}}(U?.id??null,J),en=function(e,r,s){let i=(0,$.useMemo)(()=>r?.map(e=>e.branch)??[],[r]),[n,a]=(0,$.useState)([]),o=(0,$.useCallback)(async()=>{if(!e||0===i.length)return void a([]);let r=await Promise.all(i.map(async r=>(await (0,rv.listBranchSessions)(e,r)).sessions.filter(e=>e.processAlive).map(s=>({id:s.id,projectId:e,branch:r,title:s.title?.trim()||"New Session",status:s.status,processAlive:!0,updated_at:s.updated_at}))));a(e=>{var s;let i;return s=r.flat(),i=new Map(e.map(e=>[e.id,e])),s.map(e=>{let r=i.get(e.id);return r&&"New Session"===e.title&&"New Session"!==r.title?{...e,title:r.title}:e})})},[i,e]);(0,$.useEffect)(()=>{let e=!1;return o().catch(r=>{e||console.warn("[ResidentSessions] refresh failed:",r)}),()=>{e=!0}},[o]);let{state:l}=(0,ok.useConnectionStatus)(),c=(0,$.useRef)(null),d=(0,$.useRef)(!1);return(0,$.useEffect)(()=>{var e;let r=c.current;c.current=l;let s=(e=d.current,"live"===l&&e&&"live"!==r);"live"===l&&(d.current=!0),s&&o().catch(e=>console.warn("[ResidentSessions] reconnect refresh failed:",e))},[l,o]),(0,$.useEffect)(()=>{s&&s.processAlive&&e&&s.projectId===e&&a(e=>(function(e,r){let s=e.findIndex(e=>e.id===r.id);if(-1===s)return[r,...e];let i=e[s],n="New Session"===r.title&&"New Session"!==i.title?i.title:r.title,a=[...e];return a[s]={...r,title:n},a})(e,s))},[e,s]),(0,ok.useGlobalEventStream)(r=>{if(e&&r.projectId===e){if("session:process"===r.type){let e="string"==typeof r.sessionId?r.sessionId:null,s="boolean"==typeof r.alive?r.alive:null,i="string"==typeof r.branch?r.branch:null;if(!e||null===s)return;if(!s)return void a(r=>r.filter(r=>r.id!==e));o().catch(e=>console.warn("[ResidentSessions] process refresh failed:",e)),null!==i&&a(r=>r.map(r=>r.id===e?{...r,branch:i}:r))}if("session:status"===r.type){let e="string"==typeof r.sessionId?r.sessionId:null,s="string"==typeof r.status?r.status:null;if(!e||!s)return;a(r=>r.map(r=>r.id===e?{...r,status:s}:r))}if("session:title"===r.type){let e="string"==typeof r.sessionId?r.sessionId:null;if(!e)return;a(s=>{var i,n;return n=("string"==typeof(i=r.title)?i.trim():"")||"New Session",s.map(r=>r.id===e?{...r,title:n}:r)})}}}),(0,$.useMemo)(()=>{let e=new Map;for(let r of n){let s=r.branch??"",i=e.get(s)??[];i.push(r),e.set(s,i)}for(let r of e.values())r.sort((e,r)=>(r.updated_at??"").localeCompare(e.updated_at??""));return e},[n])}(U?.id??null,J,g),{tasks:ea,loading:eo,createTask:el,updateTask:ec,deleteTask:ed,archive:eu,unarchive:eh,refetch:ef}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(!0),a=(0,$.useCallback)(async()=>{if(!e){s([]),n(!1);return}try{let r=await rv.api.getTasks(e,{includeArchived:!0});s(r)}catch(e){console.error("Failed to fetch tasks:",e)}finally{n(!1)}},[e]);(0,$.useEffect)(()=>{a()},[a]);let o=(0,$.useCallback)(async r=>{if(!e)return null;try{let i=await rv.api.createTask(e,r);return s(e=>[...e,i]),i}catch(e){return console.error("Failed to create task:",e),null}},[e]),l=(0,$.useCallback)(async(e,i)=>{s(r=>r.map(r=>r.id===e?{...r,...i,updated_at:new Date().toISOString()}:r));try{let r=await rv.api.updateTask(e,i);return s(s=>s.map(s=>s.id===e?r:s)),r}catch(e){return console.error("Failed to update task:",e),s(r),null}},[r]),c=(0,$.useCallback)(async e=>{s(r=>r.filter(r=>r.id!==e));try{await rv.api.deleteTask(e)}catch(e){console.error("Failed to delete task:",e),s(r)}},[r]),d=(0,$.useCallback)(async e=>{s(r=>r.map(r=>r.id===e?{...r,archived_at:Date.now()}:r));try{let r=await rv.api.archiveTask(e);s(s=>s.map(s=>s.id===e?r:s))}catch(e){console.error("Failed to archive task:",e),s(r)}},[r]),u=(0,$.useCallback)(async e=>{s(r=>r.map(r=>r.id===e?{...r,archived_at:null}:r));try{let r=await rv.api.unarchiveTask(e);s(s=>s.map(s=>s.id===e?r:s))}catch(e){console.error("Failed to unarchive task:",e),s(r)}},[r]),h=(0,$.useCallback)(async i=>{if(e){s(i.map(e=>r.find(r=>r.id===e)).filter(e=>void 0!==e));try{await rv.api.reorderTasks(e,i)}catch(e){console.error("Failed to reorder tasks:",e),s(r)}}},[e,r]);return{tasks:r,loading:i,createTask:o,updateTask:l,deleteTask:c,archive:d,unarchive:u,reorderTasks:h,refetch:a}}(U?.id??null),{schedules:ep,loading:em,createSchedule:eg,updateSchedule:ex,deleteSchedule:ev,runNow:e_}=function(e){let[r,s]=(0,$.useState)([]),[i,n]=(0,$.useState)(!1),a=(0,$.useRef)(e),o=(0,$.useRef)(0),l=(0,$.useCallback)(async(e,r,i)=>{if(!e){o.current===r&&(s([]),n(!1));return}i&&n(!0);try{let i=await rv.api.getSchedules(e);o.current===r&&s(i)}catch(e){console.error("Failed to fetch schedules:",e)}finally{i&&o.current===r&&n(!1)}},[]);(0,$.useEffect)(()=>{a.current=e,o.current+=1,l(e,o.current,!0)},[e,l]);let c=(0,$.useCallback)(async()=>{let e=a.current;e&&await l(e,o.current,!1)},[l]),d=(0,$.useRef)(c);(0,$.useEffect)(()=>{d.current=c},[c]),(0,ok.useGlobalEventStream)(e=>{!e.type?.startsWith("schedule:")||a.current&&e.projectId===a.current&&d.current()});let u=(0,$.useCallback)(async r=>{if(!e)throw Error("No project selected");let s=await rv.api.createSchedule(e,r);return await c(),s},[e,c]),h=(0,$.useCallback)(async(e,r)=>{let s=await rv.api.updateSchedule(e,r);return await c(),s},[c]),f=(0,$.useCallback)(async e=>{await rv.api.deleteSchedule(e),await c()},[c]),p=(0,$.useCallback)(async e=>{let r=await rv.api.runScheduleNow(e);return await c(),r},[c]);return{schedules:r,loading:i,refetch:c,createSchedule:u,updateSchedule:h,deleteSchedule:f,runNow:p}}(U?.id??null),[ey,eb]=(0,$.useState)(null),[ew,eC]=(0,$.useState)(!1),{activity:ej,since:ek,refetch:eN,setOptimisticActivity:eE}=function(e){let[r,s]=(0,$.useState)(new Map),[i,n]=(0,$.useState)(new Map),a=(0,$.useRef)(new Map),o=(0,$.useRef)(new Map),l=(0,$.useRef)(null),c=(0,$.useCallback)(async()=>{if(!e){s(new Map),n(new Map),o.current=new Map,l.current=null,a.current=new Map;return}try{let r=await (0,rv.authFetch)(`${"localhost"===window.location.hostname&&"3000"===window.location.port?"http://localhost:5173":""}/api/projects/${e}/branches/activity`);if(!r.ok)return;let i=await r.json(),c=l.current!==e,{nextActivity:d,nextSince:u}=function(e,r,s,i){let n=new Map,a=new Map,o=[];for(let l of e){let e=l.branch??"",c=s.get(e)??0;if(!i&&l.since<c){let s=r.get(e);if(void 0!==s){n.set(e,s),a.set(e,c);continue}}n.set(e,l.activity),a.set(e,l.since),i||r.get(e)===l.activity||o.push(l.branch)}return{nextActivity:n,nextSince:a,transitions:o}}(i.branches,o.current,a.current,c);s(d),n(u),o.current=d,l.current=e,a.current=u}catch{}},[e]);return(0,$.useEffect)(()=>{c()},[c]),(0,ok.useGlobalEventStream)(r=>{var i,l,c;let d,u;if("branch:activity"!==r.type||!e||r.projectId!==e)return;let h=(i=r,l=o.current,c=a.current,d=i.branch??"",u=c.get(d)??0,i.since<u?{kind:"stale"}:l.get(d)===i.activity?{kind:"redundant",key:d}:{kind:"transition",key:d});"stale"===h.kind||(a.current.set(h.key,r.since),n(new Map(a.current)),"redundant"!==h.kind&&s(e=>{let s=new Map(e);return s.set(h.key,r.activity),o.current=s,s}))}),{activity:r,since:i,refetch:c,setOptimisticActivity:(0,$.useCallback)((e,r)=>{s(s=>{let i=function(e,r,s){let i=r??"";if(e.get(i)===s)return e;let n=new Map(e);return n.set(i,s),n}(s,e,r);return o.current=i,i})},[])}}(U?.id??null),{rules:eD,createRule:eR,updateRule:eA,deleteRule:eM}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(!0),o=(0,$.useCallback)(async()=>{if(!e){i([]),a(!1);return}try{let s=await rv.api.getRules(e,r);i(s)}catch(e){console.error("Failed to fetch rules:",e)}finally{a(!1)}},[e,r]);(0,$.useEffect)(()=>{o()},[o]);let l=(0,$.useCallback)(async s=>{if(!e)return null;try{let n=await rv.api.createRule(e,{...s,branch:r});return i(e=>[...e,n]),n}catch(e){return console.error("Failed to create rule:",e),null}},[e,r]),c=(0,$.useCallback)(async(e,r)=>{i(s=>s.map(s=>s.id===e?{...s,...r,enabled:void 0!==r.enabled?+!!r.enabled:s.enabled,updated_at:new Date().toISOString()}:s));try{let s=await rv.api.updateRule(e,r);return i(r=>r.map(r=>r.id===e?s:r)),s}catch(e){return console.error("Failed to update rule:",e),i(s),null}},[s]),d=(0,$.useCallback)(async e=>{i(r=>r.filter(r=>r.id!==e));try{await rv.api.deleteRule(e)}catch(e){console.error("Failed to delete rule:",e),i(s)}},[s]);return{rules:s,loading:n,createRule:l,updateRule:c,deleteRule:d,refetch:o}}(U?.id??null,N),{commands:eF,createCommand:eT,updateCommand:eP,deleteCommand:eB}=function(e,r){let[s,i]=(0,$.useState)([]),[n,a]=(0,$.useState)(!0),o=(0,$.useCallback)(async()=>{if(!e){i([]),a(!1);return}try{let s=await rv.api.getCommands(e,r);i(s)}catch(e){console.error("Failed to fetch commands:",e)}finally{a(!1)}},[e,r]);(0,$.useEffect)(()=>{o()},[o]);let l=(0,$.useCallback)(async s=>{if(!e)return null;try{let n=await rv.api.createCommand(e,{...s,branch:r});return i(e=>[...e,n]),n}catch(e){return console.error("Failed to create command:",e),null}},[e,r]),c=(0,$.useCallback)(async(e,r)=>{i(s=>s.map(s=>s.id===e?{...s,...r,updated_at:new Date().toISOString()}:s));try{let s=await rv.api.updateCommand(e,r);return i(r=>r.map(r=>r.id===e?s:r)),s}catch(e){return console.error("Failed to update command:",e),i(s),null}},[s]),d=(0,$.useCallback)(async e=>{i(r=>r.filter(r=>r.id!==e));try{await rv.api.deleteCommand(e)}catch(e){console.error("Failed to delete command:",e),i(s)}},[s]);return{commands:s,loading:n,createCommand:l,updateCommand:c,deleteCommand:d,refetch:o}}(U?.id??null,N),eL=(0,$.useRef)(null),eI=(0,$.useSyncExternalStore)(SR,SA,SM),eO=U?.id??null,ez=U?.agent_mode??null,e$=(0,$.useCallback)(e=>!!eO&&eI.has(SF(eO,e,ez)),[eI,eO,ez]),eW=(0,$.useCallback)(e=>{if(eO)return eI.get(SF(eO,e,ez))},[eI,eO,ez]),eH=(0,$.useCallback)(e=>ek.get(su(e)),[ek]),eU=(0,$.useMemo)(()=>(function(e,r,s,i){let n=new Map;if(!e)return n;for(let a of e){let e=su(a.branch),o=r.get(e);if(!s?.(a.branch)){n.set(e,o??"idle");continue}if("main-running"===o)n.set(e,"main-running");else if("main-completed"===o){let r=i?.backendSince?.(a.branch)??0,s=i?.placeholderSince?.(a.branch)??0;n.set(e,s>r?"idle":"main-completed")}else n.set(e,"idle")}return n})(J,ej,e$,{backendSince:eH,placeholderSince:eW}),[J,ej,e$,eH,eW]);s=ei,i=eU,n=U?.id??null,a=(0,$.useRef)(new Set),l=(o=function(e){let r=new Set;if(!e)return r;for(let[s,i]of e)oR.has(i)&&r.add(s);return r}(i)).size>0,c=JSON.stringify(Array.from(o).sort()),(0,$.useEffect)(()=>{let e=new Set(JSON.parse(c)),r=a.current;a.current=e,function(e,r){for(let s of e)if(!r.has(s))return!0;return!1}(r,e)&&s()},[c,s]),(0,$.useEffect)(()=>{let e=()=>s();return window.addEventListener("focus",e),()=>window.removeEventListener("focus",e)},[s]),(0,ok.useGlobalEventStream)(e=>{"executor:stopped"===e.type&&e.projectId===n&&s(),"merge-target:updated"===e.type&&null!==n&&e.projectId===n&&s()}),(0,$.useEffect)(()=>{let e=null,r=()=>{null!==e&&(clearInterval(e),e=null)},i=()=>{r(),e=setInterval(s,l?3e4:6e4)},n=()=>{"visible"===document.visibilityState?i():r()};return"visible"===document.visibilityState&&i(),document.addEventListener("visibilitychange",n),()=>{r(),document.removeEventListener("visibilitychange",n)}},[s,l]);let{notifications:eK,unreadCount:eq,markRead:eV,markAllRead:eY,remove:eG,clear:eX}=function(e){let[r,s]=(0,$.useState)([]),i=(0,$.useRef)(new Map);(0,$.useEffect)(()=>{for(let e of Object.values(k$))kK.has(e)||kq.has(e)||(kq.add(e),(async()=>{try{let r=await fetch(e),s=await r.blob(),i=new Audio(URL.createObjectURL(s));i.preload="auto",i.load(),kK.set(e,i),console.log(`[sound-preload-debug] warmed ${e} bytes=${s.size}`)}catch(r){console.log(`[sound-preload-debug] warm failed ${e}`,r)}finally{kq.delete(e)}})())},[]);let n=(0,$.useRef)(e);(0,$.useEffect)(()=>{n.current=e},[e]),(0,$.useEffect)(()=>{e&&s(r=>r.some(r=>r.id===e&&!r.read)?r.map(r=>r.id===e?{...r,read:!0}:r):r)},[e,r]),(0,ok.useGlobalEventStream)(e=>{var r,a;let o;if("branch:activity"!==e.type)return;let l=kW(e.projectId,e.branch),c=i.current.get(l)!==e.activity;if(i.current.set(l,e.activity),!c||"completed"!==(r=e.activity)&&"main-completed"!==r)return;let d=e.activity;a=k$[d],(o=kK.get(a))||((o=new Audio(a)).preload="auto",kK.set(a,o)),o.currentTime=0,console.log(`[sound-preload-debug] play ${a} readyState=${o.readyState}`),o.play().catch(()=>{});let u=n.current===l;s(r=>{var s;return[(s={...e,activity:d},{id:kW(s.projectId,s.branch),projectId:s.projectId,branch:s.branch,sessionId:s.sessionId??null,type:s.activity,at:s.since,read:u}),...r.filter(e=>e.id!==l)].slice(0,50)})}),(0,$.useEffect)(()=>{let e=function(){try{var e=window.localStorage.getItem(kH);if(!e)return[];try{let r=JSON.parse(e);if(!Array.isArray(r))return[];return r.filter(kU).map(e=>({...e,sessionId:e.sessionId??null})).slice(0,50)}catch{return[]}}catch{return[]}}();0!==e.length&&s(r=>{if(0===r.length)return e;let s=new Set(r.map(e=>e.id));return[...r,...e.filter(e=>!s.has(e.id))].slice(0,50)})},[]);let a=(0,$.useRef)(!1);(0,$.useEffect)(()=>{if(!a.current){a.current=!0;return}try{window.localStorage.setItem(kH,JSON.stringify(r))}catch{}},[r]);let o=(0,$.useCallback)(e=>{s(r=>r.map(r=>r.id===e?{...r,read:!0}:r))},[]),l=(0,$.useCallback)(()=>{s(e=>e.some(e=>!e.read)?e.map(e=>({...e,read:!0})):e)},[]),c=(0,$.useCallback)(e=>{s(r=>r.filter(r=>r.id!==e))},[]),d=(0,$.useCallback)(()=>{s(e=>e.length?[]:e)},[]),u=r.reduce((e,r)=>e+ +!r.read,0);return{notifications:r,unreadCount:u,markRead:o,markAllRead:l,remove:c,clear:d}}(U&&"workspace"===D?`${U.id}:${N??""}`:null),eJ=(0,$.useCallback)(()=>{eE(N,"working")},[N,eE]),eZ=(0,$.useRef)(null),eQ=(0,$.useCallback)(()=>{ef()},[ef]),e0=(0,$.useCallback)((e,r,s)=>{eZ.current={projectId:s??U?.id,branch:e,sessionId:r},E(e),v(r),M(e=>e+1)},[U?.id,v]),e1=(0,$.useCallback)(e=>{e0(e.branch,e.id),R("workspace")},[e0]),e2=(0,$.useCallback)(e=>{eN(),!1!==e.processAlive&&x({id:e.id,projectId:e.projectId,branch:e.branch,title:"New Session",status:e.status,processAlive:!0,updated_at:new Date().toISOString()})},[eN]),e5=(0,$.useCallback)((e,r)=>{U?.id&&r.trim()&&x(s=>({id:e,projectId:U.id,branch:s?.id===e?s.branch:N,title:r,status:s?.id===e?s.status:"running",processAlive:!0,updated_at:s?.id===e?s.updated_at:new Date().toISOString()}))},[U?.id,N]),e3=(0,$.useCallback)(()=>{eE(N,"idle")},[N,eE]),e4=(0,$.useCallback)(()=>{ef()},[ef]);e=U?.id??null,r={onTaskChanged:e4},d=(0,$.useRef)(r.onTaskChanged),(0,$.useEffect)(()=>{d.current=r.onTaskChanged}),(0,ok.useGlobalEventStream)(r=>{e&&r.projectId===e&&("task:created"===r.type||"task:updated"===r.type||"task:deleted"===r.type)&&d.current?.()});let e6=(0,$.useMemo)(()=>{let e=su(N);return ea.find(r=>r.assigned_branch===e)??null},[ea,N]);(0,$.useCallback)(e=>{O(async()=>{await P.current?.submitMessage(e.description??e.title)})},[]),(0,$.useCallback)(e=>{ec(e,{assigned_branch:null})},[ec]);let e8=(0,$.useRef)(void 0);(0,$.useEffect)(()=>{if(Z||0===J.length)return;let e=e8.current;if(void 0!==e){if(J.some(r=>r.branch===e.branch)){e8.current=void 0,e.sessionId?e0(e.branch,e.sessionId):E(e.branch);return}e8.current=void 0}J.some(e=>e.branch===N)||E(J[0].branch)},[J,Z,N,e0]);let e7=(0,$.useCallback)((e,r,s=null)=>{if(R("workspace"),e===U?.id)return void(s?e0(r,s):E(r));let i=H.find(r=>r.id===e);i&&(e8.current={branch:r,sessionId:s},X(i))},[U?.id,H,X,e0]),[e9,te]=(0,$.useState)(!1);(0,$.useEffect)(()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),te(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let tt=(0,$.useRef)(!1),tr=(0,$.useCallback)(async(e,r)=>{let s=H.find(r=>r.id===e);if(!s)return null;let i="local"===r?"local":r;return(s.agent_mode??"local")!==i?Y(s.id,{agentMode:i}):s},[H,Y]),ts=(0,$.useCallback)(e=>{if(tt.current)return;let r=H.find(r=>r.id===e);r&&(te(!1),X(r),R("project-info"))},[H,X]),ti=(0,$.useCallback)(async e=>{if(!tt.current){tt.current=!0,te(!1);try{let r=await tr(e.projectId,e.targetId);if(!r)return;R("workspace"),r.id===U?.id?(E(e.branch),v(null)):(e8.current={branch:e.branch,sessionId:null},X(r))}catch(e){console.error("Quick switcher navigation failed:",e),xg.toast.error("Failed to open workspace")}finally{tt.current=!1}}},[U?.id,tr,X,v]),tn=(0,$.useCallback)(async e=>{if(!tt.current){tt.current=!0,te(!1);try{let r=await tr(e.projectId,e.targetId);if(!r)return;R("workspace"),r.id===U?.id?e0(e.branch,e.sessionId,e.projectId):(e8.current={branch:e.branch,sessionId:e.sessionId},X(r))}catch(e){console.error("Quick switcher navigation failed:",e),xg.toast.error("Failed to open session")}finally{tt.current=!1}}},[U?.id,tr,X,e0]),ta=(0,$.useRef)(N),to=(0,$.useRef)(U?.id),tl=(0,$.useRef)(!1);(0,$.useEffect)(()=>{if(K)return;let e=!tl.current,r=!e&&ta.current!==N,s=!e&&to.current!==U?.id;ta.current=N,to.current=U?.id,tl.current=!0;let i=eZ.current;if(k2(i,U?.id,N,p)&&(eZ.current=null),function({branchChanged:e,projectChanged:r,urlSessionId:s,pendingSessionSelection:i,currentProjectId:n,selectedBranch:a}){return(!!e||!!r)&&!!s&&!k2(i,n,a,s)}({branchChanged:r,projectChanged:s,urlSessionId:p,pendingSessionSelection:i,currentProjectId:U?.id,selectedBranch:N})){eZ.current=null,v(null);return}let n=k1({projectId:U?.id,tab:D,branch:N});if(p){let e=new URL(n,window.location.origin);e.searchParams.set("session",p),window.history.replaceState(null,"",e.pathname+e.search)}else window.history.replaceState(null,"",n)},[U?.id,D,N,K,p,v]);let tc=(0,$.useCallback)(e=>{Q(),E(e)},[Q]);(0,$.useCallback)((e,r)=>{U&&r!==U.agent_mode?Y(U.id,{agentMode:r}).then(()=>{P.current?.submitMessage(e)}):P.current?.submitMessage(e)},[U,Y]);let td=(0,$.useRef)({content:"",at:0}),tu=(0,$.useCallback)(e=>{let r=Date.now(),s=td.current;s.content===e&&r-s.at<600||(td.current={content:e,at:r},eL.current?.sendMessage(e))},[]),th=(0,$.useCallback)(()=>{let e=`Please perform the following git operations for this worktree:
29
29
 
30
30
  1. Commit all current uncommitted changes with an appropriate commit message
31
31
  2. Fetch the latest changes from the remote main branch