@staff0rd/assist 0.524.0 → 0.526.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -376,9 +376,10 @@ Requires `assist` installed on the Windows host.
376
376
 
377
377
  ## Parallel work
378
378
 
379
- Concurrent sessions in one repo can be isolated with native git worktrees instead of keeping multiple physical clones: see [docs/parallel-work.md](docs/parallel-work.md). All three flags **default off**:
379
+ Concurrent sessions in one repo can be isolated with native git worktrees instead of keeping multiple physical clones: see [docs/parallel-work.md](docs/parallel-work.md). All of these flags **default off**:
380
380
 
381
381
  - `worktree.enabled` (parallel work) — spill concurrent sessions into adjacent `<clone>-N` worktrees. Off means every session on the repo shares its single working copy.
382
+ - `worktree.watcher` — starting a backlog run also ensures one starred **watcher** session in the clone itself: a claude session whose prompt is `/watch`, so the clone keeps fast-forwarding and rebuilding while the run works in its worktree. One watcher per clone — a run that finds a live one spawns no second, and the reason lands in `daemon.log`. Needs `worktree.enabled` and a `/watch` command in the repo.
382
383
  - `worktree.trunk` (trunk-based) — on, a spilled worktree's branch tracks `origin/<trunk>` so commits land on the mainline. Off, it starts off the remote default branch with no mainline tracking, leaving the session to raise its own branch and PR.
383
384
 
384
385
  While it is on, a job that commits never runs in the clone: `backlog run <id>` (spawned fresh or chained into from a session already sitting in the clone) and PR checkouts (`review <n>`, `review-pr-comments <n>`) always allocate a `<clone>-N`, even when the clone is idle and clean. Committing there would land the work on the local mainline and leave every later worktree starting from that HEAD. Plain prompts, `spawnInTree` sessions, `draft`/`bug`/`refine` and every other command keep the normal clone-preferring placement, and a session pinned in place stays where it was launched. There is no fallback — if the worktree can't be created the spawn fails with the reason in `daemon.log` rather than dropping the job in the clone. Non-trunk repos are unaffected.
@@ -3951,7 +3951,7 @@ ${h.join(`
3951
3951
  `)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),WLe&&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:this._activeSelectionMode===3})}_isClickInSelection(e){let t=this._getMouseBufferCoords(e),r=this._model.finalSelectionStart,n=this._model.finalSelectionEnd;return!r||!n||!t?!1:this._areCoordsInSelection(t,r,n)}isCellInSelection(e,t){let r=this._model.finalSelectionStart,n=this._model.finalSelectionEnd;return!r||!n?!1:this._areCoordsInSelection([e,t],r,n)}_areCoordsInSelection(e,t,r){return e[1]>t[1]&&e[1]<r[1]||t[1]===r[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<r[0]||t[1]<r[1]&&e[1]===r[1]&&e[0]<r[0]||t[1]<r[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){let r=this._linkifier.currentLink?.link?.range;if(r)return this._model.selectionStart=[r.start.x-1,r.start.y-1],this._model.selectionStartLength=XZt(r,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let n=this._getMouseBufferCoords(e);return n?(this._selectWordAt(n,t),this._model.selectionEnd=void 0,!0):!1}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){let t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=HLe(this._coreBrowserService.window,e,this._screenElement)[1],r=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=r?0:(t>r&&(t-=r),t=Math.min(Math.max(t,-W8e),W8e),t/=W8e,t/Math.abs(t)+Math.round(t*(H5n-1)))}shouldForceSelection(e){return mce?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,!(e.button===2&&this.hasSelection)&&e.button===0){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):e.detail===1?this._handleSingleClick(e):e.detail===2?this._handleDoubleClick(e):e.detail===3&&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(),W5n)}_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=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&t.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){let t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(mce&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;let t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd){this.refresh(!0);return}this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let r=this._bufferService.buffer;if(this._model.selectionEnd[1]<r.lines.length){let n=r.lines.get(this._model.selectionEnd[1]);n&&n.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}(!t||t[0]!==this._model.selectionEnd[0]||t[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?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){let t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<V5n&&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&&r[0]!==void 0&&r[1]!==void 0){let n=D5n(r[0]-1,r[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(n,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,r=!!e&&!!t&&(e[0]!==t[0]||e[1]!==t[1]);if(!r){this._oldHasSelection&&this._fireOnSelectionChange(e,t,r);return}!e||!t||(!this._oldSelectionStart||!this._oldSelectionEnd||e[0]!==this._oldSelectionStart[0]||e[1]!==this._oldSelectionStart[1]||t[0]!==this._oldSelectionEnd[0]||t[1]!==this._oldSelectionEnd[1])&&this._fireOnSelectionChange(e,t,r)}_fireOnSelectionChange(e,t,r){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=r,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(t=>this._handleTrim(t))}_convertViewportColToCharacterIndex(e,t){let r=t;for(let n=0;t>=n;n++){let i=e.loadCell(n,this._workCell).getChars().length;this._workCell.getWidth()===0?r--:i>1&&t!==n&&(r+=i-1)}return r}setSelection(e,t,r){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=r,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,r=!0,n=!0){if(e[0]>=this._bufferService.cols)return;let i=this._bufferService.buffer,a=i.lines.get(e[1]);if(!a)return;let o=i.translateBufferLineToString(e[1],!1),s=this._convertViewportColToCharacterIndex(a,e[0]),l=s,u=e[0]-s,h=0,f=0,d=0,p=0;if(o.charAt(s)===" "){for(;s>0&&o.charAt(s-1)===" ";)s--;for(;l<o.length&&o.charAt(l+1)===" ";)l++}else{let y=e[0],v=e[0];a.getWidth(y)===0&&(h++,y--),a.getWidth(v)===2&&(f++,v++);let b=a.getString(v).length;for(b>1&&(p+=b-1,l+=b-1);y>0&&s>0&&!this._isCharWordSeparator(a.loadCell(y-1,this._workCell));){a.loadCell(y-1,this._workCell);let x=this._workCell.getChars().length;this._workCell.getWidth()===0?(h++,y--):x>1&&(d+=x-1,s-=x-1),s--,y--}for(;v<a.length&&l+1<o.length&&!this._isCharWordSeparator(a.loadCell(v+1,this._workCell));){a.loadCell(v+1,this._workCell);let x=this._workCell.getChars().length;this._workCell.getWidth()===2?(f++,v++):x>1&&(p+=x-1,l+=x-1),l++,v++}}l++;let m=s+u-h+d,g=Math.min(this._bufferService.cols,l-s+h+f-d-p);if(!(!t&&o.slice(s,l).trim()==="")){if(r&&m===0&&a.getCodePoint(0)!==32){let y=i.lines.get(e[1]-1);if(y&&a.isWrapped&&y.getCodePoint(this._bufferService.cols-1)!==32){let v=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(v){let b=this._bufferService.cols-v.start;m-=b,g+=b}}}if(n&&m+g===this._bufferService.cols&&a.getCodePoint(this._bufferService.cols-1)!==32){let y=i.lines.get(e[1]+1);if(y?.isWrapped&&y.getCodePoint(0)!==32){let v=this._getWordAt([0,e[1]+1],!1,!1,!0);v&&(g+=v.length)}}return{start:m,length:g}}}_selectWordAt(e,t){let r=this._getWordAt(e,t);if(r){for(;r.start<0;)r.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[r.start,e[1]],this._model.selectionStartLength=r.length}}_selectToWordAt(e){let t=this._getWordAt(e,!0);if(t){let r=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,r--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,r++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,r]}}_isCharWordSeparator(e){return e.getWidth()===0?!1:this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){let t=this._bufferService.buffer.getWrappedRangeForLine(e),r={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=XZt(r,this._bufferService.cols)}};wLe=Qo([yr(3,lh),yr(4,W4),yr(5,OLe),yr(6,ch),yr(7,nx),yr(8,rx)],wLe);var KZt=class{constructor(){this._data={}}set(e,t,r){this._data[e]||(this._data[e]={}),this._data[e][t]=r}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},ZZt=class{constructor(){this._color=new KZt,this._css=new KZt}setCss(e,t,r){this._css.set(e,t,r)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,r){this._color.set(e,t,r)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}},ul=Object.freeze((()=>{let e=[_o.toColor("#2e3436"),_o.toColor("#cc0000"),_o.toColor("#4e9a06"),_o.toColor("#c4a000"),_o.toColor("#3465a4"),_o.toColor("#75507b"),_o.toColor("#06989a"),_o.toColor("#d3d7cf"),_o.toColor("#555753"),_o.toColor("#ef2929"),_o.toColor("#8ae234"),_o.toColor("#fce94f"),_o.toColor("#729fcf"),_o.toColor("#ad7fa8"),_o.toColor("#34e2e2"),_o.toColor("#eeeeec")],t=[0,95,135,175,215,255];for(let r=0;r<216;r++){let n=t[r/36%6|0],i=t[r/6%6|0],a=t[r%6];e.push({css:$s.toCss(n,i,a),rgba:$s.toRgba(n,i,a)})}for(let r=0;r<24;r++){let n=8+r*10;e.push({css:$s.toCss(n,n,n),rgba:$s.toRgba(n,n,n)})}return e})()),B4=_o.toColor("#ffffff"),dW=_o.toColor("#000000"),QZt=_o.toColor("#ffffff"),JZt=dW,sW={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117},j5n=B4,_Le=class extends Dn{constructor(e){super(),this._optionsService=e,this._contrastCache=new ZZt,this._halfContrastCache=new ZZt,this._onChangeColors=this._register(new ar),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:B4,background:dW,cursor:QZt,cursorAccent:JZt,selectionForeground:void 0,selectionBackgroundTransparent:sW,selectionBackgroundOpaque:Va.blend(dW,sW),selectionInactiveBackgroundTransparent:sW,selectionInactiveBackgroundOpaque:Va.blend(dW,sW),scrollbarSliderBackground:Va.opacity(B4,.2),scrollbarSliderHoverBackground:Va.opacity(B4,.4),scrollbarSliderActiveBackground:Va.opacity(B4,.5),overviewRulerBorder:B4,ansi:ul.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 t=this._colors;if(t.foreground=ua(e.foreground,B4),t.background=ua(e.background,dW),t.cursor=Va.blend(t.background,ua(e.cursor,QZt)),t.cursorAccent=Va.blend(t.background,ua(e.cursorAccent,JZt)),t.selectionBackgroundTransparent=ua(e.selectionBackground,sW),t.selectionBackgroundOpaque=Va.blend(t.background,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundTransparent=ua(e.selectionInactiveBackground,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundOpaque=Va.blend(t.background,t.selectionInactiveBackgroundTransparent),t.selectionForeground=e.selectionForeground?ua(e.selectionForeground,qZt):void 0,t.selectionForeground===qZt&&(t.selectionForeground=void 0),Va.isOpaque(t.selectionBackgroundTransparent)&&(t.selectionBackgroundTransparent=Va.opacity(t.selectionBackgroundTransparent,.3)),Va.isOpaque(t.selectionInactiveBackgroundTransparent)&&(t.selectionInactiveBackgroundTransparent=Va.opacity(t.selectionInactiveBackgroundTransparent,.3)),t.scrollbarSliderBackground=ua(e.scrollbarSliderBackground,Va.opacity(t.foreground,.2)),t.scrollbarSliderHoverBackground=ua(e.scrollbarSliderHoverBackground,Va.opacity(t.foreground,.4)),t.scrollbarSliderActiveBackground=ua(e.scrollbarSliderActiveBackground,Va.opacity(t.foreground,.5)),t.overviewRulerBorder=ua(e.overviewRulerBorder,j5n),t.ansi=ul.slice(),t.ansi[0]=ua(e.black,ul[0]),t.ansi[1]=ua(e.red,ul[1]),t.ansi[2]=ua(e.green,ul[2]),t.ansi[3]=ua(e.yellow,ul[3]),t.ansi[4]=ua(e.blue,ul[4]),t.ansi[5]=ua(e.magenta,ul[5]),t.ansi[6]=ua(e.cyan,ul[6]),t.ansi[7]=ua(e.white,ul[7]),t.ansi[8]=ua(e.brightBlack,ul[8]),t.ansi[9]=ua(e.brightRed,ul[9]),t.ansi[10]=ua(e.brightGreen,ul[10]),t.ansi[11]=ua(e.brightYellow,ul[11]),t.ansi[12]=ua(e.brightBlue,ul[12]),t.ansi[13]=ua(e.brightMagenta,ul[13]),t.ansi[14]=ua(e.brightCyan,ul[14]),t.ansi[15]=ua(e.brightWhite,ul[15]),e.extendedAnsi){let r=Math.min(t.ansi.length-16,e.extendedAnsi.length);for(let n=0;n<r;n++)t.ansi[n+16]=ua(e.extendedAnsi[n],ul[n+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(e===void 0){for(let t=0;t<this._restoreColors.ansi.length;++t)this._colors.ansi[t]=this._restoreColors.ansi[t];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()}}};_Le=Qo([yr(0,ch)],_Le);function ua(e,t){if(e!==void 0)try{return _o.toColor(e)}catch{}return t}var Y5n=class{constructor(...e){this._entries=new Map;for(let[t,r]of e)this.set(t,r)}set(e,t){let r=this._entries.get(e);return this._entries.set(e,t),r}forEach(e){for(let[t,r]of this._entries.entries())e(t,r)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}},X5n=class{constructor(){this._services=new Y5n,this._services.set(DLe,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){let r=mwn(e).sort((a,o)=>a.index-o.index),n=[];for(let a of r){let o=this._services.get(a.id);if(!o)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id._id}.`);n.push(o)}let i=r.length>0?r[0].index:t.length;if(t.length!==i)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${i+1} conflicts with ${t.length} static arguments`);return new e(...t,...n)}},K5n={trace:0,debug:1,info:2,warn:3,error:4,off:5},Z5n="xterm.js: ",kLe=class extends Dn{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),Q5n=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=K5n[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)typeof e[t]=="function"&&(e[t]=e[t]())}_log(e,t,r){this._evalLazyOptionalParams(r),e.call(console,(this._optionsService.options.logger?"":Z5n)+t,...r)}trace(e,...t){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};kLe=Qo([yr(0,ch)],kLe);var Q5n,eQt=class extends Dn{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this._register(new ar),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new ar),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new ar),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;let t=new Array(e);for(let r=0;r<Math.min(e,this.length);r++)t[r]=this._array[this._getCyclicIndex(r)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}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 new 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,t,...r){if(t){for(let n=e;n<this._length-t;n++)this._array[this._getCyclicIndex(n)]=this._array[this._getCyclicIndex(n+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let n=this._length-1;n>=e;n--)this._array[this._getCyclicIndex(n+r.length)]=this._array[this._getCyclicIndex(n)];for(let n=0;n<r.length;n++)this._array[this._getCyclicIndex(e+n)]=r[n];if(r.length&&this.onInsertEmitter.fire({index:e,amount:r.length}),this._length+r.length>this._maxLength){let n=this._length+r.length-this._maxLength;this._startIndex+=n,this._length=this._maxLength,this.onTrimEmitter.fire(n)}else this._length+=r.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,r){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+r<0)throw new Error("Cannot shift elements in list beyond index 0");if(r>0){for(let i=t-1;i>=0;i--)this.set(e+i+r,this.get(e+i));let n=e+t+r-this._length;if(n>0)for(this._length+=n;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let n=0;n<t;n++)this.set(e+n+r,this.get(e+n))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}},zn=3,Fs=Object.freeze(new CW),Qle=0,V8e=2,pW=class pJt{constructor(t,r,n=!1){this.isWrapped=n,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(t*zn);let i=r||lm.fromCharData([0,wQt,1,0]);for(let a=0;a<t;++a)this.setCell(a,i);this.length=t}get(t){let r=this._data[t*zn+0],n=r&2097151;return[this._data[t*zn+1],r&2097152?this._combined[t]:n?cC(n):"",r>>22,r&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):n]}set(t,r){this._data[t*zn+1]=r[0],r[1].length>1?(this._combined[t]=r[1],this._data[t*zn+0]=t|2097152|r[2]<<22):this._data[t*zn+0]=r[1].charCodeAt(0)|r[2]<<22}getWidth(t){return this._data[t*zn+0]>>22}hasWidth(t){return this._data[t*zn+0]&12582912}getFg(t){return this._data[t*zn+1]}getBg(t){return this._data[t*zn+2]}hasContent(t){return this._data[t*zn+0]&4194303}getCodePoint(t){let r=this._data[t*zn+0];return r&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):r&2097151}isCombined(t){return this._data[t*zn+0]&2097152}getString(t){let r=this._data[t*zn+0];return r&2097152?this._combined[t]:r&2097151?cC(r&2097151):""}isProtected(t){return this._data[t*zn+2]&536870912}loadCell(t,r){return Qle=t*zn,r.content=this._data[Qle+0],r.fg=this._data[Qle+1],r.bg=this._data[Qle+2],r.content&2097152&&(r.combinedData=this._combined[t]),r.bg&268435456&&(r.extended=this._extendedAttrs[t]),r}setCell(t,r){r.content&2097152&&(this._combined[t]=r.combinedData),r.bg&268435456&&(this._extendedAttrs[t]=r.extended),this._data[t*zn+0]=r.content,this._data[t*zn+1]=r.fg,this._data[t*zn+2]=r.bg}setCellFromCodepoint(t,r,n,i){i.bg&268435456&&(this._extendedAttrs[t]=i.extended),this._data[t*zn+0]=r|n<<22,this._data[t*zn+1]=i.fg,this._data[t*zn+2]=i.bg}addCodepointToCell(t,r,n){let i=this._data[t*zn+0];i&2097152?this._combined[t]+=cC(r):i&2097151?(this._combined[t]=cC(i&2097151)+cC(r),i&=-2097152,i|=2097152):i=r|1<<22,n&&(i&=-12582913,i|=n<<22),this._data[t*zn+0]=i}insertCells(t,r,n){if(t%=this.length,t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,n),r<this.length-t){let i=new lm;for(let a=this.length-t-r-1;a>=0;--a)this.setCell(t+r+a,this.loadCell(t+a,i));for(let a=0;a<r;++a)this.setCell(t+a,n)}else for(let i=t;i<this.length;++i)this.setCell(i,n);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,n)}deleteCells(t,r,n){if(t%=this.length,r<this.length-t){let i=new lm;for(let a=0;a<this.length-t-r;++a)this.setCell(t+a,this.loadCell(t+r+a,i));for(let a=this.length-r;a<this.length;++a)this.setCell(a,n)}else for(let i=t;i<this.length;++i)this.setCell(i,n);t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,n),this.getWidth(t)===0&&!this.hasContent(t)&&this.setCellFromCodepoint(t,0,1,n)}replaceCells(t,r,n,i=!1){if(i){for(t&&this.getWidth(t-1)===2&&!this.isProtected(t-1)&&this.setCellFromCodepoint(t-1,0,1,n),r<this.length&&this.getWidth(r-1)===2&&!this.isProtected(r)&&this.setCellFromCodepoint(r,0,1,n);t<r&&t<this.length;)this.isProtected(t)||this.setCell(t,n),t++;return}for(t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,n),r<this.length&&this.getWidth(r-1)===2&&this.setCellFromCodepoint(r,0,1,n);t<r&&t<this.length;)this.setCell(t++,n)}resize(t,r){if(t===this.length)return this._data.length*4*V8e<this._data.buffer.byteLength;let n=t*zn;if(t>this.length){if(this._data.buffer.byteLength>=n*4)this._data=new Uint32Array(this._data.buffer,0,n);else{let i=new Uint32Array(n);i.set(this._data),this._data=i}for(let i=this.length;i<t;++i)this.setCell(i,r)}else{this._data=this._data.subarray(0,n);let i=Object.keys(this._combined);for(let o=0;o<i.length;o++){let s=parseInt(i[o],10);s>=t&&delete this._combined[s]}let a=Object.keys(this._extendedAttrs);for(let o=0;o<a.length;o++){let s=parseInt(a[o],10);s>=t&&delete this._extendedAttrs[s]}}return this.length=t,n*4*V8e<this._data.buffer.byteLength}cleanupMemory(){if(this._data.length*4*V8e<this._data.buffer.byteLength){let t=new Uint32Array(this._data.length);return t.set(this._data),this._data=t,1}return 0}fill(t,r=!1){if(r){for(let n=0;n<this.length;++n)this.isProtected(n)||this.setCell(n,t);return}this._combined={},this._extendedAttrs={};for(let n=0;n<this.length;++n)this.setCell(n,t)}copyFrom(t){this.length!==t.length?this._data=new Uint32Array(t._data):this._data.set(t._data),this.length=t.length,this._combined={};for(let r in t._combined)this._combined[r]=t._combined[r];this._extendedAttrs={};for(let r in t._extendedAttrs)this._extendedAttrs[r]=t._extendedAttrs[r];this.isWrapped=t.isWrapped}clone(){let t=new pJt(0);t._data=new Uint32Array(this._data),t.length=this.length;for(let r in this._combined)t._combined[r]=this._combined[r];for(let r in this._extendedAttrs)t._extendedAttrs[r]=this._extendedAttrs[r];return t.isWrapped=this.isWrapped,t}getTrimmedLength(){for(let t=this.length-1;t>=0;--t)if(this._data[t*zn+0]&4194303)return t+(this._data[t*zn+0]>>22);return 0}getNoBgTrimmedLength(){for(let t=this.length-1;t>=0;--t)if(this._data[t*zn+0]&4194303||this._data[t*zn+2]&50331648)return t+(this._data[t*zn+0]>>22);return 0}copyCellsFrom(t,r,n,i,a){let o=t._data;if(a)for(let l=i-1;l>=0;l--){for(let u=0;u<zn;u++)this._data[(n+l)*zn+u]=o[(r+l)*zn+u];o[(r+l)*zn+2]&268435456&&(this._extendedAttrs[n+l]=t._extendedAttrs[r+l])}else for(let l=0;l<i;l++){for(let u=0;u<zn;u++)this._data[(n+l)*zn+u]=o[(r+l)*zn+u];o[(r+l)*zn+2]&268435456&&(this._extendedAttrs[n+l]=t._extendedAttrs[r+l])}let s=Object.keys(t._combined);for(let l=0;l<s.length;l++){let u=parseInt(s[l],10);u>=r&&(this._combined[u-r+n]=t._combined[u])}}translateToString(t,r,n,i){r=r??0,n=n??this.length,t&&(n=Math.min(n,this.getTrimmedLength())),i&&(i.length=0);let a="";for(;r<n;){let o=this._data[r*zn+0],s=o&2097151,l=o&2097152?this._combined[r]:s?cC(s):uC;if(a+=l,i)for(let u=0;u<l.length;++u)i.push(r);r+=o>>22||1}return i&&i.push(r),a}};function J5n(e,t,r,n,i,a){let o=[];for(let s=0;s<e.length-1;s++){let l=s,u=e.get(++l);if(!u.isWrapped)continue;let h=[e.get(s)];for(;l<e.length&&u.isWrapped;)h.push(u),u=e.get(++l);if(!a&&n>=s&&n<l){s+=h.length-1;continue}let f=0,d=SW(h,f,t),p=1,m=0;for(;p<h.length;){let y=SW(h,p,t),v=y-m,b=r-d,x=Math.min(v,b);h[f].copyCellsFrom(h[p],m,d,x,!1),d+=x,d===r&&(f++,d=0),m+=x,m===y&&(p++,m=0),d===0&&f!==0&&h[f-1].getWidth(r-1)===2&&(h[f].copyCellsFrom(h[f-1],r-1,d++,1,!1),h[f-1].setCell(r-1,i))}h[f].replaceCells(d,r,i);let g=0;for(let y=h.length-1;y>0&&(y>f||h[y].getTrimmedLength()===0);y--)g++;g>0&&(o.push(s+h.length-g),o.push(g)),s+=h.length-1}return o}function ekn(e,t){let r=[],n=0,i=t[n],a=0;for(let o=0;o<e.length;o++)if(i===o){let s=t[++n];e.onDeleteEmitter.fire({index:o-a,amount:s}),o+=s-1,a+=s,i=t[++n]}else r.push(o);return{layout:r,countRemoved:a}}function tkn(e,t){let r=[];for(let n=0;n<t.length;n++)r.push(e.get(t[n]));for(let n=0;n<r.length;n++)e.set(n,r[n]);e.length=t.length}function rkn(e,t,r){let n=[],i=e.map((l,u)=>SW(e,u,t)).reduce((l,u)=>l+u),a=0,o=0,s=0;for(;s<i;){if(i-s<r){n.push(i-s);break}a+=r;let l=SW(e,o,t);a>l&&(a-=l,o++);let u=e[o].getWidth(a-1)===2;u&&a--;let h=u?r-1:r;n.push(h),s+=h}return n}function SW(e,t,r){if(t===e.length-1)return e[t].getTrimmedLength();let n=!e[t].hasContent(r-1)&&e[t].getWidth(r-1)===1,i=e[t+1].getWidth(0)===2;return n&&i?r-1:r}var mJt=class gJt{constructor(t){this.line=t,this.isDisposed=!1,this._disposables=[],this._id=gJt._nextId++,this._onDispose=this.register(new ar),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),U4(this._disposables),this._disposables.length=0)}register(t){return this._disposables.push(t),t}};mJt._nextId=1;var nkn=mJt,fl={},F4=fl.B;fl[0]={"`":"\u25C6",a:"\u2592",b:"\u2409",c:"\u240C",d:"\u240D",e:"\u240A",f:"\xB0",g:"\xB1",h:"\u2424",i:"\u240B",j:"\u2518",k:"\u2510",l:"\u250C",m:"\u2514",n:"\u253C",o:"\u23BA",p:"\u23BB",q:"\u2500",r:"\u23BC",s:"\u23BD",t:"\u251C",u:"\u2524",v:"\u2534",w:"\u252C",x:"\u2502",y:"\u2264",z:"\u2265","{":"\u03C0","|":"\u2260","}":"\xA3","~":"\xB7"};fl.A={"#":"\xA3"};fl.B=void 0;fl[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"};fl.C=fl[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"};fl.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"};fl.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"};fl.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"};fl.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"};fl.E=fl[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"};fl.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"};fl.H=fl[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"};fl["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"};var tQt=4294967295,rQt=class{constructor(e,t,r){this._hasScrollback=e,this._optionsService=t,this._bufferService=r,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=Fs.clone(),this.savedCharset=F4,this.markers=[],this._nullCell=lm.fromCharData([0,wQt,1,0]),this._whitespaceCell=lm.fromCharData([0,uC,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new gce,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new eQt(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 cce),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 cce),this._whitespaceCell}getBlankLine(e,t){return new pW(this._bufferService.cols,this.getNullCell(e),t)}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 t=e+this._optionsService.rawOptions.scrollback;return t>tQt?tQt:t}fillViewportRows(e){if(this.lines.length===0){e===void 0&&(e=Fs);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new eQt(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){let r=this.getNullCell(Fs),n=0,i=this._getCorrectBufferLength(t);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._cols<e)for(let o=0;o<this.lines.length;o++)n+=+this.lines.get(o).resize(e,r);let a=0;if(this._rows<t)for(let o=this._rows;o<t;o++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new pW(e,r)):this.ybase>0&&this.lines.length<=this.ybase+this.y+a+1?(this.ybase--,a++,this.ydisp>0&&this.ydisp--):this.lines.push(new pW(e,r)));else for(let o=this._rows;o>t;o--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i<this.lines.maxLength){let o=this.lines.length-i;o>0&&(this.lines.trimStart(o),this.ybase=Math.max(this.ybase-o,0),this.ydisp=Math.max(this.ydisp-o,0),this.savedY=Math.max(this.savedY-o,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),a&&(this.y+=a),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let a=0;a<this.lines.length;a++)n+=+this.lines.get(a).resize(e,r);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),n>.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 t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){let e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&e.backend==="conpty"&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){let r=this._optionsService.rawOptions.reflowCursorLine,n=J5n(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(Fs),r);if(n.length>0){let i=ekn(this.lines,n);tkn(this.lines,i.layout),this._reflowLargerAdjustViewport(e,t,i.countRemoved)}}_reflowLargerAdjustViewport(e,t,r){let n=this.getNullCell(Fs),i=r;for(;i-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new pW(e,n))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-r,0)}_reflowSmaller(e,t){let r=this._optionsService.rawOptions.reflowCursorLine,n=this.getNullCell(Fs),i=[],a=0;for(let o=this.lines.length-1;o>=0;o--){let s=this.lines.get(o);if(!s||!s.isWrapped&&s.getTrimmedLength()<=e)continue;let l=[s];for(;s.isWrapped&&o>0;)s=this.lines.get(--o),l.unshift(s);if(!r){let x=this.ybase+this.y;if(x>=o&&x<o+l.length)continue}let u=l[l.length-1].getTrimmedLength(),h=rkn(l,this._cols,e),f=h.length-l.length,d;this.ybase===0&&this.y!==this.lines.length-1?d=Math.max(0,this.y-this.lines.maxLength+f):d=Math.max(0,this.lines.length-this.lines.maxLength+f);let p=[];for(let x=0;x<f;x++){let C=this.getBlankLine(Fs,!0);p.push(C)}p.length>0&&(i.push({start:o+l.length+a,newLines:p}),a+=p.length),l.push(...p);let m=h.length-1,g=h[m];g===0&&(m--,g=h[m]);let y=l.length-f-1,v=u;for(;y>=0;){let x=Math.min(v,g);if(l[m]===void 0)break;if(l[m].copyCellsFrom(l[y],v-x,g-x,x,!0),g-=x,g===0&&(m--,g=h[m]),v-=x,v===0){y--;let C=Math.max(y,0);v=SW(l,C,this._cols)}}for(let x=0;x<l.length;x++)h[x]<e&&l[x].setCell(h[x],n);let b=f-d;for(;b-- >0;)this.ybase===0?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+a)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+f,this.ybase+t-1)}if(i.length>0){let o=[],s=[];for(let g=0;g<this.lines.length;g++)s.push(this.lines.get(g));let l=this.lines.length,u=l-1,h=0,f=i[h];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+a);let d=0;for(let g=Math.min(this.lines.maxLength-1,l+a-1);g>=0;g--)if(f&&f.start>u+d){for(let y=f.newLines.length-1;y>=0;y--)this.lines.set(g--,f.newLines[y]);g++,o.push({index:u+1,amount:f.newLines.length}),d+=f.newLines.length,f=i[++h]}else this.lines.set(g,s[u--]);let p=0;for(let g=o.length-1;g>=0;g--)o[g].index+=p,this.lines.onInsertEmitter.fire(o[g]),p+=o[g].amount;let m=Math.max(0,l+a-this.lines.maxLength);m>0&&this.lines.onTrimEmitter.fire(m)}}translateBufferLineToString(e,t,r=0,n){let i=this.lines.get(e);return i?i.translateToString(t,r,n):""}getWrappedRangeForLine(e){let t=e,r=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;r+1<this.lines.length&&this.lines.get(r+1).isWrapped;)r++;return{first:t,last:r}}setupTabStops(e){for(e!=null?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(e==null&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(e==null&&(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 t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,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 t=new nkn(e);return this.markers.push(t),t.register(this.lines.onTrim(r=>{t.line-=r,t.line<0&&t.dispose()})),t.register(this.lines.onInsert(r=>{t.line>=r.index&&(t.line+=r.amount)})),t.register(this.lines.onDelete(r=>{t.line>=r.index&&t.line<r.index+r.amount&&t.dispose(),t.line>r.index&&(t.line-=r.amount)})),t.register(t.onDispose(()=>this._removeMarker(t))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}},ikn=class extends Dn{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this._register(new ar),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 rQt(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new rQt(!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,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}},yJt=2,vJt=1,ELe=class extends Dn{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new ar),this.onResize=this._onResize.event,this._onScroll=this._register(new ar),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,yJt),this.rows=Math.max(e.rawOptions.rows||0,vJt),this.buffers=this._register(new ikn(e,this)),this._register(this.buffers.onBufferActivate(t=>{this._onScroll.fire(t.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(e,t){let r=this.cols!==e,n=this.rows!==t;this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t,colsChanged:r,rowsChanged:n})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){let r=this.buffer,n;n=this._cachedBlankLine,(!n||n.length!==this.cols||n.getFg(0)!==e.fg||n.getBg(0)!==e.bg)&&(n=r.getBlankLine(e,t),this._cachedBlankLine=n),n.isWrapped=t;let i=r.ybase+r.scrollTop,a=r.ybase+r.scrollBottom;if(r.scrollTop===0){let o=r.lines.isFull;a===r.lines.length-1?o?r.lines.recycle().copyFrom(n):r.lines.push(n.clone()):r.lines.splice(a+1,0,n.clone()),o?this.isUserScrolling&&(r.ydisp=Math.max(r.ydisp-1,0)):(r.ybase++,this.isUserScrolling||r.ydisp++)}else{let o=a-i+1;r.lines.shiftElements(i+1,o-1,-1),r.lines.set(a,n.clone())}this.isUserScrolling||(r.ydisp=r.ybase),this._onScroll.fire(r.ydisp)}scrollLines(e,t){let r=this.buffer;if(e<0){if(r.ydisp===0)return;this.isUserScrolling=!0}else e+r.ydisp>=r.ybase&&(this.isUserScrolling=!1);let n=r.ydisp;r.ydisp=Math.max(Math.min(r.ydisp+e,r.ybase),0),n!==r.ydisp&&(t||this._onScroll.fire(r.ydisp))}};ELe=Qo([yr(0,ch)],ELe);var fD={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:mce,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRuler:{}},akn=["normal","bold","100","200","300","400","500","600","700","800","900"],okn=class extends Dn{constructor(e){super(),this._onOptionChange=this._register(new ar),this.onOptionChange=this._onOptionChange.event;let t={...fD};for(let r in e)if(r in t)try{let n=e[r];t[r]=this._sanitizeAndValidateOption(r,n)}catch(n){console.error(n)}this.rawOptions=t,this.options={...t},this._setupOptions(),this._register(Ga(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(e,t){return this.onOptionChange(r=>{r===e&&t(this.rawOptions[e])})}onMultipleOptionChange(e,t){return this.onOptionChange(r=>{e.indexOf(r)!==-1&&t()})}_setupOptions(){let e=r=>{if(!(r in fD))throw new Error(`No option with key "${r}"`);return this.rawOptions[r]},t=(r,n)=>{if(!(r in fD))throw new Error(`No option with key "${r}"`);n=this._sanitizeAndValidateOption(r,n),this.rawOptions[r]!==n&&(this.rawOptions[r]=n,this._onOptionChange.fire(r))};for(let r in this.rawOptions){let n={get:e.bind(this,r),set:t.bind(this,r)};Object.defineProperty(this.options,r,n)}}_sanitizeAndValidateOption(e,t){switch(e){case"cursorStyle":if(t||(t=fD[e]),!skn(t))throw new Error(`"${t}" is not a valid value for ${e}`);break;case"wordSeparator":t||(t=fD[e]);break;case"fontWeight":case"fontWeightBold":if(typeof t=="number"&&1<=t&&t<=1e3)break;t=akn.includes(t)?t:fD[e];break;case"cursorWidth":t=Math.floor(t);case"lineHeight":case"tabStopWidth":if(t<1)throw new Error(`${e} cannot be less than 1, value: ${t}`);break;case"minimumContrastRatio":t=Math.max(1,Math.min(21,Math.round(t*10)/10));break;case"scrollback":if(t=Math.min(t,4294967295),t<0)throw new Error(`${e} cannot be less than 0, value: ${t}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(t<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${t}`);break;case"rows":case"cols":if(!t&&t!==0)throw new Error(`${e} must be numeric, value: ${t}`);break;case"windowsPty":t=t??{};break}return t}};function skn(e){return e==="block"||e==="underline"||e==="bar"}function mW(e,t=5){if(typeof e!="object")return e;let r=Array.isArray(e)?[]:{};for(let n in e)r[n]=t<=1?e[n]:e[n]&&mW(e[n],t-1);return r}var nQt=Object.freeze({insertMode:!1}),iQt=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),RLe=class extends Dn{constructor(e,t,r){super(),this._bufferService=e,this._logService=t,this._optionsService=r,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new ar),this.onData=this._onData.event,this._onUserInput=this._register(new ar),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new ar),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new ar),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=mW(nQt),this.decPrivateModes=mW(iQt)}reset(){this.modes=mW(nQt),this.decPrivateModes=mW(iQt)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;let r=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&r.ybase!==r.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`),this._logService.trace("sending data (codes)",()=>e.split("").map(n=>n.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(t=>t.charCodeAt(0))),this._onBinary.fire(e))}};RLe=Qo([yr(0,lh),yr(1,AQt),yr(2,ch)],RLe);var aQt={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>e.button===4||e.action!==1?!1:(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>e.action!==32},DRAG:{events:23,restrict:e=>!(e.action===32&&e.button===3)},ANY:{events:31,restrict:e=>!0}};function G8e(e,t){let r=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return e.button===4?(r|=64,r|=e.action):(r|=e.button&3,e.button&4&&(r|=64),e.button&8&&(r|=128),e.action===32?r|=32:e.action===0&&!t&&(r|=3)),r}var q8e=String.fromCharCode,oQt={DEFAULT:e=>{let t=[G8e(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`\x1B[M${q8e(t[0])}${q8e(t[1])}${q8e(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?"m":"M";return`\x1B[<${G8e(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?"m":"M";return`\x1B[<${G8e(e,!0)};${e.x};${e.y}${t}`}},ALe=class extends Dn{constructor(e,t,r){super(),this._bufferService=e,this._coreService=t,this._optionsService=r,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._wheelPartialScroll=0,this._onProtocolChange=this._register(new ar),this.onProtocolChange=this._onProtocolChange.event;for(let n of Object.keys(aQt))this.addProtocol(n,aQt[n]);for(let n of Object.keys(oQt))this.addEncoding(n,oQt[n]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(e){if(!this._protocols[e])throw new 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 new Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(e,t,r){if(e.deltaY===0||e.shiftKey||t===void 0||r===void 0)return 0;let n=t/r,i=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(i/=n+0,Math.abs(e.deltaY)<50&&(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,t){return t.altKey||t.ctrlKey||t.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||e.button===4&&e.action===32||e.button===3&&e.action!==32||e.button!==4&&(e.action===2||e.action===3)||(e.col++,e.row++,e.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,e,this._activeEncoding==="SGR_PIXELS"))||!this._protocols[this._activeProtocol].restrict(e))return!1;let t=this._encodings[this._activeEncoding](e);return t&&(this._activeEncoding==="DEFAULT"?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(e&1),up:!!(e&2),drag:!!(e&4),move:!!(e&8),wheel:!!(e&16)}}_equalEvents(e,t,r){if(r){if(e.x!==t.x||e.y!==t.y)return!1}else if(e.col!==t.col||e.row!==t.row)return!1;return!(e.button!==t.button||e.action!==t.action||e.ctrl!==t.ctrl||e.alt!==t.alt||e.shift!==t.shift)}};ALe=Qo([yr(0,lh),yr(1,W4),yr(2,ch)],ALe);var j8e=[[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]],lkn=[[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]],hl;function ckn(e,t){let r=0,n=t.length-1,i;if(e<t[0][0]||e>t[n][1])return!1;for(;n>=r;)if(i=r+n>>1,e>t[i][1])r=i+1;else if(e<t[i][0])n=i-1;else return!0;return!1}var ukn=class{constructor(){if(this.version="6",!hl){hl=new Uint8Array(65536),hl.fill(1),hl[0]=0,hl.fill(0,1,32),hl.fill(0,127,160),hl.fill(2,4352,4448),hl[9001]=2,hl[9002]=2,hl.fill(2,11904,42192),hl[12351]=1,hl.fill(2,44032,55204),hl.fill(2,63744,64256),hl.fill(2,65040,65050),hl.fill(2,65072,65136),hl.fill(2,65280,65377),hl.fill(2,65504,65511);for(let e=0;e<j8e.length;++e)hl.fill(0,j8e[e][0],j8e[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?hl[e]:ckn(e,lkn)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let r=this.wcwidth(e),n=r===0&&t!==0;if(n){let i=$4.extractWidth(t);i===0?n=!1:i>r&&(r=i)}return $4.createPropertyValue(0,r,n)}},$4=class lce{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new ar,this.onChange=this._onChange.event;let t=new ukn;this.register(t),this._active=t.version,this._activeProvider=t}static extractShouldJoin(t){return(t&1)!==0}static extractWidth(t){return t>>1&3}static extractCharKind(t){return t>>3}static createPropertyValue(t,r,n=!1){return(t&16777215)<<3|(r&3)<<1|(n?1:0)}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(t){if(!this._providers[t])throw new Error(`unknown Unicode version "${t}"`);this._active=t,this._activeProvider=this._providers[t],this._onChange.fire(t)}register(t){this._providers[t.version]=t}wcwidth(t){return this._activeProvider.wcwidth(t)}getStringCellWidth(t){let r=0,n=0,i=t.length;for(let a=0;a<i;++a){let o=t.charCodeAt(a);if(55296<=o&&o<=56319){if(++a>=i)return r+this.wcwidth(o);let u=t.charCodeAt(a);56320<=u&&u<=57343?o=(o-55296)*1024+u-56320+65536:r+=this.wcwidth(u)}let s=this.charProperties(o,n),l=lce.extractWidth(s);lce.extractShouldJoin(s)&&(l-=lce.extractWidth(n)),r+=l,n=s}return r}charProperties(t,r){return this._activeProvider.charProperties(t,r)}},hkn=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,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}};function sQt(e){let t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1)?.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&t&&(r.isWrapped=t[3]!==0&&t[3]!==32)}var lW=2147483647,fkn=256,bJt=class PLe{constructor(t=32,r=32){if(this.maxLength=t,this.maxSubParamsLength=r,r>fkn)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(t),this.length=0,this._subParams=new Int32Array(r),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(t),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(t){let r=new PLe;if(!t.length)return r;for(let n=Array.isArray(t[0])?1:0;n<t.length;++n){let i=t[n];if(Array.isArray(i))for(let a=0;a<i.length;++a)r.addSubParam(i[a]);else r.addParam(i)}return r}clone(){let t=new PLe(this.maxLength,this.maxSubParamsLength);return t.params.set(this.params),t.length=this.length,t._subParams.set(this._subParams),t._subParamsLength=this._subParamsLength,t._subParamsIdx.set(this._subParamsIdx),t._rejectDigits=this._rejectDigits,t._rejectSubDigits=this._rejectSubDigits,t._digitIsSub=this._digitIsSub,t}toArray(){let t=[];for(let r=0;r<this.length;++r){t.push(this.params[r]);let n=this._subParamsIdx[r]>>8,i=this._subParamsIdx[r]&255;i-n>0&&t.push(Array.prototype.slice.call(this._subParams,n,i))}return t}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(t){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(t<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=t>lW?lW:t}addSubParam(t){if(this._digitIsSub=!0,!!this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(t<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=t>lW?lW:t,this._subParamsIdx[this.length-1]++}}hasSubParams(t){return(this._subParamsIdx[t]&255)-(this._subParamsIdx[t]>>8)>0}getSubParams(t){let r=this._subParamsIdx[t]>>8,n=this._subParamsIdx[t]&255;return n-r>0?this._subParams.subarray(r,n):null}getSubParamsAll(){let t={};for(let r=0;r<this.length;++r){let n=this._subParamsIdx[r]>>8,i=this._subParamsIdx[r]&255;i-n>0&&(t[r]=this._subParams.slice(n,i))}return t}addDigit(t){let r;if(this._rejectDigits||!(r=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let n=this._digitIsSub?this._subParams:this.params,i=n[r-1];n[r-1]=~i?Math.min(i*10+t,lW):t}},cW=[],dkn=class{constructor(){this._state=0,this._active=cW,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let r=this._handlers[e];return r.push(t),{dispose:()=>{let n=r.indexOf(t);n!==-1&&r.splice(n,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=cW}reset(){if(this._state===2)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=cW,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||cW,!this._active.length)this._handlerFb(this._id,"START");else for(let e=this._active.length-1;e>=0;e--)this._active[e].start()}_put(e,t,r){if(!this._active.length)this._handlerFb(this._id,"PUT",vce(e,t,r));else for(let n=this._active.length-1;n>=0;n--)this._active[n].put(e,t,r)}start(){this.reset(),this._state=1}put(e,t,r){if(this._state!==3){if(this._state===1)for(;t<r;){let n=e[t++];if(n===59){this._state=2,this._start();break}if(n<48||57<n){this._state=3;return}this._id===-1&&(this._id=0),this._id=this._id*10+n-48}this._state===2&&r-t>0&&this._put(e,t,r)}}end(e,t=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),!this._active.length)this._handlerFb(this._id,"END",e);else{let r=!1,n=this._active.length-1,i=!1;if(this._stack.paused&&(n=this._stack.loopPosition-1,r=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&r===!1){for(;n>=0&&(r=this._active[n].end(e),r!==!0);n--)if(r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=n,this._stack.fallThrough=!1,r;n--}for(;n>=0;n--)if(r=this._active[n].end(!1),r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=n,this._stack.fallThrough=!0,r}this._active=cW,this._id=-1,this._state=0}}},Ad=class{constructor(e){this._handler=e,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(e,t,r){this._hitLimit||(this._data+=vce(e,t,r),this._data.length>1e7&&(this._data="",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then(r=>(this._data="",this._hitLimit=!1,r));return this._data="",this._hitLimit=!1,t}},uW=[],pkn=class{constructor(){this._handlers=Object.create(null),this._active=uW,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=uW}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let r=this._handlers[e];return r.push(t),{dispose:()=>{let n=r.indexOf(t);n!==-1&&r.splice(n,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=uW,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||uW,!this._active.length)this._handlerFb(this._ident,"HOOK",t);else for(let r=this._active.length-1;r>=0;r--)this._active[r].hook(t)}put(e,t,r){if(!this._active.length)this._handlerFb(this._ident,"PUT",vce(e,t,r));else for(let n=this._active.length-1;n>=0;n--)this._active[n].put(e,t,r)}unhook(e,t=!0){if(!this._active.length)this._handlerFb(this._ident,"UNHOOK",e);else{let r=!1,n=this._active.length-1,i=!1;if(this._stack.paused&&(n=this._stack.loopPosition-1,r=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&r===!1){for(;n>=0&&(r=this._active[n].unhook(e),r!==!0);n--)if(r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=n,this._stack.fallThrough=!1,r;n--}for(;n>=0;n--)if(r=this._active[n].unhook(!1),r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=n,this._stack.fallThrough=!0,r}this._active=uW,this._ident=0}},gW=new bJt;gW.addParam(0);var lQt=class{constructor(e){this._handler=e,this._data="",this._params=gW,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():gW,this._data="",this._hitLimit=!1}put(e,t,r){this._hitLimit||(this._data+=vce(e,t,r),this._data.length>1e7&&(this._data="",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then(r=>(this._params=gW,this._data="",this._hitLimit=!1,r));return this._params=gW,this._data="",this._hitLimit=!1,t}},mkn=class{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,r,n){this.table[t<<8|e]=r<<4|n}addMany(e,t,r,n){for(let i=0;i<e.length;i++)this.table[t<<8|e[i]]=r<<4|n}},sm=160,gkn=(function(){let e=new mkn(4095),t=Array.apply(null,Array(256)).map((s,l)=>l),r=(s,l)=>t.slice(s,l),n=r(32,127),i=r(0,24);i.push(25),i.push.apply(i,r(28,32));let a=r(0,14),o;e.setDefault(1,0),e.addMany(n,0,2,0);for(o in a)e.addMany([24,26,153,154],o,3,0),e.addMany(r(128,144),o,3,0),e.addMany(r(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(i,0,3,0),e.addMany(i,1,3,1),e.add(127,1,0,1),e.addMany(i,8,0,8),e.addMany(i,3,3,3),e.add(127,3,0,3),e.addMany(i,4,3,4),e.add(127,4,0,4),e.addMany(i,6,3,6),e.addMany(i,5,3,5),e.add(127,5,0,5),e.addMany(i,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(n,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(r(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(n,7,0,7),e.addMany(i,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(r(64,127),3,7,0),e.addMany(r(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(r(48,60),4,8,4),e.addMany(r(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(r(32,64),6,0,6),e.add(127,6,0,6),e.addMany(r(64,127),6,0,0),e.addMany(r(32,48),3,9,5),e.addMany(r(32,48),5,9,5),e.addMany(r(48,64),5,0,6),e.addMany(r(64,127),5,7,0),e.addMany(r(32,48),4,9,5),e.addMany(r(32,48),1,9,2),e.addMany(r(32,48),2,9,2),e.addMany(r(48,127),2,10,0),e.addMany(r(48,80),1,10,0),e.addMany(r(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(r(96,127),1,10,0),e.add(80,1,11,9),e.addMany(i,9,0,9),e.add(127,9,0,9),e.addMany(r(28,32),9,0,9),e.addMany(r(32,48),9,9,12),e.addMany(r(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(i,11,0,11),e.addMany(r(32,128),11,0,11),e.addMany(r(28,32),11,0,11),e.addMany(i,10,0,10),e.add(127,10,0,10),e.addMany(r(28,32),10,0,10),e.addMany(r(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(r(32,48),10,9,12),e.addMany(i,12,0,12),e.add(127,12,0,12),e.addMany(r(28,32),12,0,12),e.addMany(r(32,48),12,9,12),e.addMany(r(48,64),12,0,11),e.addMany(r(64,127),12,12,13),e.addMany(r(64,127),10,12,13),e.addMany(r(64,127),9,12,13),e.addMany(i,13,13,13),e.addMany(n,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(sm,0,2,0),e.add(sm,8,5,8),e.add(sm,6,0,6),e.add(sm,11,0,11),e.add(sm,13,13,13),e})(),ykn=class extends Dn{constructor(e=gkn){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 bJt,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(t,r,n)=>{},this._executeHandlerFb=t=>{},this._csiHandlerFb=(t,r)=>{},this._escHandlerFb=t=>{},this._errorHandlerFb=t=>t,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register(Ga(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new dkn),this._dcsParser=this._register(new pkn),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},()=>!0)}_identifier(e,t=[64,126]){let r=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if(r=e.prefix.charCodeAt(0),r&&60>r||r>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let i=0;i<e.intermediates.length;++i){let a=e.intermediates.charCodeAt(i);if(32>a||a>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");r<<=8,r|=a}}if(e.final.length!==1)throw new Error("final must be a single byte");let n=e.final.charCodeAt(0);if(t[0]>n||n>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return r<<=8,r|=n,r}identToString(e){let t=[];for(;e;)t.push(String.fromCharCode(e&255)),e>>=8;return t.reverse().join("")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){let r=this._identifier(e,[48,126]);this._escHandlers[r]===void 0&&(this._escHandlers[r]=[]);let n=this._escHandlers[r];return n.push(t),{dispose:()=>{let i=n.indexOf(t);i!==-1&&n.splice(i,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,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){let r=this._identifier(e);this._csiHandlers[r]===void 0&&(this._csiHandlers[r]=[]);let n=this._csiHandlers[r];return n.push(t),{dispose:()=>{let i=n.indexOf(t);i!==-1&&n.splice(i,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}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,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,r,n,i){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=r,this._parseStack.transition=n,this._parseStack.chunkPos=i}parse(e,t,r){let n=0,i=0,a=0,o;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,a=this._parseStack.chunkPos+1;else{if(r===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");let s=this._parseStack.handlers,l=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(r===!1&&l>-1){for(;l>=0&&(o=s[l](this._params),o!==!0);l--)if(o instanceof Promise)return this._parseStack.handlerPos=l,o}this._parseStack.handlers=[];break;case 4:if(r===!1&&l>-1){for(;l>=0&&(o=s[l](),o!==!0);l--)if(o instanceof Promise)return this._parseStack.handlerPos=l,o}this._parseStack.handlers=[];break;case 6:if(n=e[this._parseStack.chunkPos],o=this._dcsParser.unhook(n!==24&&n!==26,r),o)return o;n===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(n=e[this._parseStack.chunkPos],o=this._oscParser.end(n!==24&&n!==26,r),o)return o;n===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break}this._parseStack.state=0,a=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=this._parseStack.transition&15}for(let s=a;s<t;++s){switch(n=e[s],i=this._transitions.table[this.currentState<<8|(n<160?n:sm)],i>>4){case 2:for(let d=s+1;;++d){if(d>=t||(n=e[d])<32||n>126&&n<sm){this._printHandler(e,s,d),s=d-1;break}if(++d>=t||(n=e[d])<32||n>126&&n<sm){this._printHandler(e,s,d),s=d-1;break}if(++d>=t||(n=e[d])<32||n>126&&n<sm){this._printHandler(e,s,d),s=d-1;break}if(++d>=t||(n=e[d])<32||n>126&&n<sm){this._printHandler(e,s,d),s=d-1;break}}break;case 3:this._executeHandlers[n]?this._executeHandlers[n]():this._executeHandlerFb(n),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:s,code:n,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let l=this._csiHandlers[this._collect<<8|n],u=l?l.length-1:-1;for(;u>=0&&(o=l[u](this._params),o!==!0);u--)if(o instanceof Promise)return this._preserveStack(3,l,u,i,s),o;u<0&&this._csiHandlerFb(this._collect<<8|n,this._params),this.precedingJoinState=0;break;case 8:do switch(n){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(n-48)}while(++s<t&&(n=e[s])>47&&n<60);s--;break;case 9:this._collect<<=8,this._collect|=n;break;case 10:let h=this._escHandlers[this._collect<<8|n],f=h?h.length-1:-1;for(;f>=0&&(o=h[f](),o!==!0);f--)if(o instanceof Promise)return this._preserveStack(4,h,f,i,s),o;f<0&&this._escHandlerFb(this._collect<<8|n),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|n,this._params);break;case 13:for(let d=s+1;;++d)if(d>=t||(n=e[d])===24||n===26||n===27||n>127&&n<sm){this._dcsParser.put(e,s,d),s=d-1;break}break;case 14:if(o=this._dcsParser.unhook(n!==24&&n!==26),o)return this._preserveStack(6,[],0,i,s),o;n===27&&(i|=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 d=s+1;;d++)if(d>=t||(n=e[d])<32||n>127&&n<sm){this._oscParser.put(e,s,d),s=d-1;break}break;case 6:if(o=this._oscParser.end(n!==24&&n!==26),o)return this._preserveStack(5,[],0,i,s),o;n===27&&(i|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break}this.currentState=i&15}}},vkn=/^([\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})$/,bkn=/^[\da-f]+$/;function cQt(e){if(!e)return;let t=e.toLowerCase();if(t.indexOf("rgb:")===0){t=t.slice(4);let r=vkn.exec(t);if(r){let n=r[1]?15:r[4]?255:r[7]?4095:65535;return[Math.round(parseInt(r[1]||r[4]||r[7]||r[10],16)/n*255),Math.round(parseInt(r[2]||r[5]||r[8]||r[11],16)/n*255),Math.round(parseInt(r[3]||r[6]||r[9]||r[12],16)/n*255)]}}else if(t.indexOf("#")===0&&(t=t.slice(1),bkn.exec(t)&&[3,6,9,12].includes(t.length))){let r=t.length/3,n=[0,0,0];for(let i=0;i<3;++i){let a=parseInt(t.slice(r*i,r*i+r),16);n[i]=r===1?a<<4:r===2?a:r===3?a>>4:a>>8}return n}}function Y8e(e,t){let r=e.toString(16),n=r.length<2?"0"+r:r;switch(t){case 4:return r[0];case 8:return n;case 12:return(n+n).slice(0,3);default:return n+n}}function xkn(e,t=16){let[r,n,i]=e;return`rgb:${Y8e(r,t)}/${Y8e(n,t)}/${Y8e(i,t)}`}var Tkn={"(":0,")":1,"*":2,"+":3,"-":1,".":2},lC=131072,uQt=10;function hQt(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var fQt=5e3,dQt=0,Skn=class extends Dn{constructor(e,t,r,n,i,a,o,s,l=new ykn){super(),this._bufferService=e,this._charsetService=t,this._coreService=r,this._logService=n,this._optionsService=i,this._oscLinkService=a,this._coreMouseService=o,this._unicodeService=s,this._parser=l,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new dwn,this._utf8Decoder=new pwn,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=Fs.clone(),this._eraseAttrDataInternal=Fs.clone(),this._onRequestBell=this._register(new ar),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new ar),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new ar),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new ar),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new ar),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new ar),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new ar),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new ar),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new ar),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new ar),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new ar),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new ar),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new ar),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 LLe(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(u=>this._activeBuffer=u.activeBuffer)),this._parser.setCsiHandlerFallback((u,h)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(u),params:h.toArray()})}),this._parser.setEscHandlerFallback(u=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(u)})}),this._parser.setExecuteHandlerFallback(u=>{this._logService.debug("Unknown EXECUTE code: ",{code:u})}),this._parser.setOscHandlerFallback((u,h,f)=>{this._logService.debug("Unknown OSC code: ",{identifier:u,action:h,data:f})}),this._parser.setDcsHandlerFallback((u,h,f)=>{h==="HOOK"&&(f=f.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(u),action:h,payload:f})}),this._parser.setPrintHandler((u,h,f)=>this.print(u,h,f)),this._parser.registerCsiHandler({final:"@"},u=>this.insertChars(u)),this._parser.registerCsiHandler({intermediates:" ",final:"@"},u=>this.scrollLeft(u)),this._parser.registerCsiHandler({final:"A"},u=>this.cursorUp(u)),this._parser.registerCsiHandler({intermediates:" ",final:"A"},u=>this.scrollRight(u)),this._parser.registerCsiHandler({final:"B"},u=>this.cursorDown(u)),this._parser.registerCsiHandler({final:"C"},u=>this.cursorForward(u)),this._parser.registerCsiHandler({final:"D"},u=>this.cursorBackward(u)),this._parser.registerCsiHandler({final:"E"},u=>this.cursorNextLine(u)),this._parser.registerCsiHandler({final:"F"},u=>this.cursorPrecedingLine(u)),this._parser.registerCsiHandler({final:"G"},u=>this.cursorCharAbsolute(u)),this._parser.registerCsiHandler({final:"H"},u=>this.cursorPosition(u)),this._parser.registerCsiHandler({final:"I"},u=>this.cursorForwardTab(u)),this._parser.registerCsiHandler({final:"J"},u=>this.eraseInDisplay(u,!1)),this._parser.registerCsiHandler({prefix:"?",final:"J"},u=>this.eraseInDisplay(u,!0)),this._parser.registerCsiHandler({final:"K"},u=>this.eraseInLine(u,!1)),this._parser.registerCsiHandler({prefix:"?",final:"K"},u=>this.eraseInLine(u,!0)),this._parser.registerCsiHandler({final:"L"},u=>this.insertLines(u)),this._parser.registerCsiHandler({final:"M"},u=>this.deleteLines(u)),this._parser.registerCsiHandler({final:"P"},u=>this.deleteChars(u)),this._parser.registerCsiHandler({final:"S"},u=>this.scrollUp(u)),this._parser.registerCsiHandler({final:"T"},u=>this.scrollDown(u)),this._parser.registerCsiHandler({final:"X"},u=>this.eraseChars(u)),this._parser.registerCsiHandler({final:"Z"},u=>this.cursorBackwardTab(u)),this._parser.registerCsiHandler({final:"`"},u=>this.charPosAbsolute(u)),this._parser.registerCsiHandler({final:"a"},u=>this.hPositionRelative(u)),this._parser.registerCsiHandler({final:"b"},u=>this.repeatPrecedingCharacter(u)),this._parser.registerCsiHandler({final:"c"},u=>this.sendDeviceAttributesPrimary(u)),this._parser.registerCsiHandler({prefix:">",final:"c"},u=>this.sendDeviceAttributesSecondary(u)),this._parser.registerCsiHandler({final:"d"},u=>this.linePosAbsolute(u)),this._parser.registerCsiHandler({final:"e"},u=>this.vPositionRelative(u)),this._parser.registerCsiHandler({final:"f"},u=>this.hVPosition(u)),this._parser.registerCsiHandler({final:"g"},u=>this.tabClear(u)),this._parser.registerCsiHandler({final:"h"},u=>this.setMode(u)),this._parser.registerCsiHandler({prefix:"?",final:"h"},u=>this.setModePrivate(u)),this._parser.registerCsiHandler({final:"l"},u=>this.resetMode(u)),this._parser.registerCsiHandler({prefix:"?",final:"l"},u=>this.resetModePrivate(u)),this._parser.registerCsiHandler({final:"m"},u=>this.charAttributes(u)),this._parser.registerCsiHandler({final:"n"},u=>this.deviceStatus(u)),this._parser.registerCsiHandler({prefix:"?",final:"n"},u=>this.deviceStatusPrivate(u)),this._parser.registerCsiHandler({intermediates:"!",final:"p"},u=>this.softReset(u)),this._parser.registerCsiHandler({intermediates:" ",final:"q"},u=>this.setCursorStyle(u)),this._parser.registerCsiHandler({final:"r"},u=>this.setScrollRegion(u)),this._parser.registerCsiHandler({final:"s"},u=>this.saveCursor(u)),this._parser.registerCsiHandler({final:"t"},u=>this.windowOptions(u)),this._parser.registerCsiHandler({final:"u"},u=>this.restoreCursor(u)),this._parser.registerCsiHandler({intermediates:"'",final:"}"},u=>this.insertColumns(u)),this._parser.registerCsiHandler({intermediates:"'",final:"~"},u=>this.deleteColumns(u)),this._parser.registerCsiHandler({intermediates:'"',final:"q"},u=>this.selectProtected(u)),this._parser.registerCsiHandler({intermediates:"$",final:"p"},u=>this.requestMode(u,!0)),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},u=>this.requestMode(u,!1)),this._parser.setExecuteHandler(Ft.BEL,()=>this.bell()),this._parser.setExecuteHandler(Ft.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(Ft.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(Ft.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(Ft.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(Ft.BS,()=>this.backspace()),this._parser.setExecuteHandler(Ft.HT,()=>this.tab()),this._parser.setExecuteHandler(Ft.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(Ft.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(oce.IND,()=>this.index()),this._parser.setExecuteHandler(oce.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(oce.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new Ad(u=>(this.setTitle(u),this.setIconName(u),!0))),this._parser.registerOscHandler(1,new Ad(u=>this.setIconName(u))),this._parser.registerOscHandler(2,new Ad(u=>this.setTitle(u))),this._parser.registerOscHandler(4,new Ad(u=>this.setOrReportIndexedColor(u))),this._parser.registerOscHandler(8,new Ad(u=>this.setHyperlink(u))),this._parser.registerOscHandler(10,new Ad(u=>this.setOrReportFgColor(u))),this._parser.registerOscHandler(11,new Ad(u=>this.setOrReportBgColor(u))),this._parser.registerOscHandler(12,new Ad(u=>this.setOrReportCursorColor(u))),this._parser.registerOscHandler(104,new Ad(u=>this.restoreIndexedColor(u))),this._parser.registerOscHandler(110,new Ad(u=>this.restoreFgColor(u))),this._parser.registerOscHandler(111,new Ad(u=>this.restoreBgColor(u))),this._parser.registerOscHandler(112,new Ad(u=>this.restoreCursorColor(u))),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());for(let u in fl)this._parser.registerEscHandler({intermediates:"(",final:u},()=>this.selectCharset("("+u)),this._parser.registerEscHandler({intermediates:")",final:u},()=>this.selectCharset(")"+u)),this._parser.registerEscHandler({intermediates:"*",final:u},()=>this.selectCharset("*"+u)),this._parser.registerEscHandler({intermediates:"+",final:u},()=>this.selectCharset("+"+u)),this._parser.registerEscHandler({intermediates:"-",final:u},()=>this.selectCharset("-"+u)),this._parser.registerEscHandler({intermediates:".",final:u},()=>this.selectCharset("."+u)),this._parser.registerEscHandler({intermediates:"/",final:u},()=>this.selectCharset("/"+u));this._parser.registerEscHandler({intermediates:"#",final:"8"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(u=>(this._logService.error("Parsing error: ",u),u)),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new lQt((u,h)=>this.requestStatusString(u,h)))}getAttrData(){return this._curAttrData}_preserveStack(e,t,r,n){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=r,this._parseStack.position=n}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((t,r)=>setTimeout(()=>r("#SLOW_TIMEOUT"),fQt))]).catch(t=>{if(t!=="#SLOW_TIMEOUT")throw t;console.warn(`async parser handler taking longer than ${fQt} ms`)})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let r,n=this._activeBuffer.x,i=this._activeBuffer.y,a=0,o=this._parseStack.paused;if(o){if(r=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(r),r;n=this._parseStack.cursorStartX,i=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>lC&&(a=this._parseStack.position+lC)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${typeof e=="string"?` "${e}"`:` "${Array.prototype.map.call(e,u=>String.fromCharCode(u)).join("")}"`}`),this._logService.logLevel===0&&this._logService.trace("parsing data (codes)",typeof e=="string"?e.split("").map(u=>u.charCodeAt(0)):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<lC&&(this._parseBuffer=new Uint32Array(Math.min(e.length,lC))),o||this._dirtyRowTracker.clearRange(),e.length>lC)for(let u=a;u<e.length;u+=lC){let h=u+lC<e.length?u+lC:e.length,f=typeof e=="string"?this._stringDecoder.decode(e.substring(u,h),this._parseBuffer):this._utf8Decoder.decode(e.subarray(u,h),this._parseBuffer);if(r=this._parser.parse(this._parseBuffer,f))return this._preserveStack(n,i,f,u),this._logSlowResolvingAsync(r),r}else if(!o){let u=typeof e=="string"?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(r=this._parser.parse(this._parseBuffer,u))return this._preserveStack(n,i,u,0),this._logSlowResolvingAsync(r),r}(this._activeBuffer.x!==n||this._activeBuffer.y!==i)&&this._onCursorMove.fire();let s=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),l=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);l<this._bufferService.rows&&this._onRequestRefreshRows.fire({start:Math.min(l,this._bufferService.rows-1),end:Math.min(s,this._bufferService.rows-1)})}print(e,t,r){let n,i,a=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,s=this._bufferService.cols,l=this._coreService.decPrivateModes.wraparound,u=this._coreService.modes.insertMode,h=this._curAttrData,f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&r-t>0&&f.getWidth(this._activeBuffer.x-1)===2&&f.setCellFromCodepoint(this._activeBuffer.x-1,0,1,h);let d=this._parser.precedingJoinState;for(let p=t;p<r;++p){if(n=e[p],n<127&&a){let v=a[String.fromCharCode(n)];v&&(n=v.charCodeAt(0))}let m=this._unicodeService.charProperties(n,d);i=$4.extractWidth(m);let g=$4.extractShouldJoin(m),y=g?$4.extractWidth(d):0;if(d=m,o&&this._onA11yChar.fire(cC(n)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+i-y>s){if(l){let v=f,b=this._activeBuffer.x-y;for(this._activeBuffer.x=y,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),f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),y>0&&f instanceof pW&&f.copyCellsFrom(v,b,0,y,!1);b<s;)v.setCellFromCodepoint(b++,0,1,h)}else if(this._activeBuffer.x=s-1,i===2)continue}if(g&&this._activeBuffer.x){let v=f.getWidth(this._activeBuffer.x-1)?1:2;f.addCodepointToCell(this._activeBuffer.x-v,n,i);for(let b=i-y;--b>=0;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,h);continue}if(u&&(f.insertCells(this._activeBuffer.x,i-y,this._activeBuffer.getNullCell(h)),f.getWidth(s-1)===2&&f.setCellFromCodepoint(s-1,0,1,h)),f.setCellFromCodepoint(this._activeBuffer.x++,n,i,h),i>0)for(;--i;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,h)}this._parser.precedingJoinState=d,this._activeBuffer.x<s&&r-t>0&&f.getWidth(this._activeBuffer.x)===0&&!f.hasContent(this._activeBuffer.x)&&f.setCellFromCodepoint(this._activeBuffer.x,0,1,h),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return e.final==="t"&&!e.prefix&&!e.intermediates?this._parser.registerCsiHandler(e,r=>hQt(r.params[0],this._optionsService.rawOptions.windowOptions)?t(r):!0):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new lQt(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new Ad(t))}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(this._activeBuffer.x===0&&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,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){let t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){let t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,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 t=e.params[0];return t===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:t===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){let t=e.params[0];return t===1&&(this._curAttrData.bg|=536870912),(t===2||t===0)&&(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,r,n=!1,i=!1){let a=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);a.replaceCells(t,r,this._activeBuffer.getNullCell(this._eraseAttrData()),i),n&&(a.isWrapped=!1)}_resetBufferLine(e,t=!1){let r=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);r&&(r.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),r.isWrapped=!1)}eraseInDisplay(e,t=!1){this._restrictCursor(this._bufferService.cols);let r;switch(e.params[0]){case 0:for(r=this._activeBuffer.y,this._dirtyRowTracker.markDirty(r),this._eraseInBufferLine(r++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);r<this._bufferService.rows;r++)this._resetBufferLine(r,t);this._dirtyRowTracker.markDirty(r);break;case 1:for(r=this._activeBuffer.y,this._dirtyRowTracker.markDirty(r),this._eraseInBufferLine(r,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(r+1).isWrapped=!1);r--;)this._resetBufferLine(r,t);this._dirtyRowTracker.markDirty(0);break;case 2:if(this._optionsService.rawOptions.scrollOnEraseInDisplay){for(r=this._bufferService.rows,this._dirtyRowTracker.markRangeDirty(0,r-1);r--&&!this._activeBuffer.lines.get(this._activeBuffer.ybase+r)?.getTrimmedLength(););for(;r>=0;r--)this._bufferService.scroll(this._eraseAttrData())}else{for(r=this._bufferService.rows,this._dirtyRowTracker.markDirty(r-1);r--;)this._resetBufferLine(r,t);this._dirtyRowTracker.markDirty(0)}break;case 3:let n=this._activeBuffer.lines.length-this._bufferService.rows;n>0&&(this._activeBuffer.lines.trimStart(n),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-n,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-n,0),this._onScroll.fire(0));break}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t);break}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=this._activeBuffer.ybase+this._activeBuffer.y,n=this._bufferService.rows-1-this._activeBuffer.scrollBottom,i=this._bufferService.rows-1+this._activeBuffer.ybase-n+1;for(;t--;)this._activeBuffer.lines.splice(i-1,1),this._activeBuffer.lines.splice(r,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 t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=this._activeBuffer.ybase+this._activeBuffer.y,n;for(n=this._bufferService.rows-1-this._activeBuffer.scrollBottom,n=this._bufferService.rows-1+this._activeBuffer.ybase-n;t--;)this._activeBuffer.lines.splice(r,1),this._activeBuffer.lines.splice(n,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 t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.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 t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)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 t=e.params[0]||1;for(;t--;)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(Fs));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 t=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.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 t=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.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 t=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.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 t=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.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 t=this._parser.precedingJoinState;if(!t)return!0;let r=e.params[0]||1,n=$4.extractWidth(t),i=this._activeBuffer.x-n,a=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(i),o=new Uint32Array(a.length*r),s=0;for(let u=0;u<a.length;){let h=a.codePointAt(u)||0;o[s++]=h,u+=h>65535?2:1}let l=s;for(let u=1;u<r;++u)o.copyWithin(l,0,s),l+=s;return this.print(o,0,l),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(Ft.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(Ft.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(Ft.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(Ft.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(Ft.ESC+"[>83;40003;0c")),!0}_is(e){return(this._optionsService.rawOptions.termName+"").indexOf(e)===0}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0;break}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,F4),this._charsetService.setgCharset(1,F4),this._charsetService.setgCharset(2,F4),this._charsetService.setgCharset(3,F4);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;break}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1;break}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){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:this._coreMouseService.activeEncoding="DEFAULT";break;case 1015:this._logService.debug("DECRST 1015 not supported (see #2507)");break;case 1016:this._coreMouseService.activeEncoding="DEFAULT";break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),e.params[t]===1049&&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);break}return!0}requestMode(e,t){(g=>(g[g.NOT_RECOGNIZED=0]="NOT_RECOGNIZED",g[g.SET=1]="SET",g[g.RESET=2]="RESET",g[g.PERMANENTLY_SET=3]="PERMANENTLY_SET",g[g.PERMANENTLY_RESET=4]="PERMANENTLY_RESET"))(void 0||(r={}));let n=this._coreService.decPrivateModes,{activeProtocol:i,activeEncoding:a}=this._coreMouseService,o=this._coreService,{buffers:s,cols:l}=this._bufferService,{active:u,alt:h}=s,f=this._optionsService.rawOptions,d=(g,y)=>(o.triggerDataEvent(`${Ft.ESC}[${t?"":"?"}${g};${y}$y`),!0),p=g=>g?1:2,m=e.params[0];return t?m===2?d(m,4):m===4?d(m,p(o.modes.insertMode)):m===12?d(m,3):m===20?d(m,p(f.convertEol)):d(m,0):m===1?d(m,p(n.applicationCursorKeys)):m===3?d(m,f.windowOptions.setWinLines?l===80?2:l===132?1:0:0):m===6?d(m,p(n.origin)):m===7?d(m,p(n.wraparound)):m===8?d(m,3):m===9?d(m,p(i==="X10")):m===12?d(m,p(f.cursorBlink)):m===25?d(m,p(!o.isCursorHidden)):m===45?d(m,p(n.reverseWraparound)):m===66?d(m,p(n.applicationKeypad)):m===67?d(m,4):m===1e3?d(m,p(i==="VT200")):m===1002?d(m,p(i==="DRAG")):m===1003?d(m,p(i==="ANY")):m===1004?d(m,p(n.sendFocus)):m===1005?d(m,4):m===1006?d(m,p(a==="SGR")):m===1015?d(m,4):m===1016?d(m,p(a==="SGR_PIXELS")):m===1048?d(m,1):m===47||m===1047||m===1049?d(m,p(u===h)):m===2004?d(m,p(n.bracketedPasteMode)):m===2026?d(m,p(n.synchronizedOutput)):d(m,0)}_updateAttrColor(e,t,r,n,i){return t===2?(e|=50331648,e&=-16777216,e|=CW.fromColorRGB([r,n,i])):t===5&&(e&=-50331904,e|=33554432|r&255),e}_extractColor(e,t,r){let n=[0,0,-1,0,0,0],i=0,a=0;do{if(n[a+i]=e.params[t+a],e.hasSubParams(t+a)){let o=e.getSubParams(t+a),s=0;do n[1]===5&&(i=1),n[a+s+1+i]=o[s];while(++s<o.length&&s+a+1+i<n.length);break}if(n[1]===5&&a+i>=2||n[1]===2&&a+i>=5)break;n[1]&&(i=1)}while(++a+t<e.length&&a+i<n.length);for(let o=2;o<n.length;++o)n[o]===-1&&(n[o]=0);switch(n[0]){case 38:r.fg=this._updateAttrColor(r.fg,n[1],n[3],n[4],n[5]);break;case 48:r.bg=this._updateAttrColor(r.bg,n[1],n[3],n[4],n[5]);break;case 58:r.extended=r.extended.clone(),r.extended.underlineColor=this._updateAttrColor(r.extended.underlineColor,n[1],n[3],n[4],n[5])}return a}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,e===0&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=Fs.fg,e.bg=Fs.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(e.length===1&&e.params[0]===0)return this._processSGR0(this._curAttrData),!0;let t=e.length,r,n=this._curAttrData;for(let i=0;i<t;i++)r=e.params[i],r>=30&&r<=37?(n.fg&=-50331904,n.fg|=16777216|r-30):r>=40&&r<=47?(n.bg&=-50331904,n.bg|=16777216|r-40):r>=90&&r<=97?(n.fg&=-50331904,n.fg|=16777216|r-90|8):r>=100&&r<=107?(n.bg&=-50331904,n.bg|=16777216|r-100|8):r===0?this._processSGR0(n):r===1?n.fg|=134217728:r===3?n.bg|=67108864:r===4?(n.fg|=268435456,this._processUnderline(e.hasSubParams(i)?e.getSubParams(i)[0]:1,n)):r===5?n.fg|=536870912:r===7?n.fg|=67108864:r===8?n.fg|=1073741824:r===9?n.fg|=2147483648:r===2?n.bg|=134217728:r===21?this._processUnderline(2,n):r===22?(n.fg&=-134217729,n.bg&=-134217729):r===23?n.bg&=-67108865:r===24?(n.fg&=-268435457,this._processUnderline(0,n)):r===25?n.fg&=-536870913:r===27?n.fg&=-67108865:r===28?n.fg&=-1073741825:r===29?n.fg&=2147483647:r===39?(n.fg&=-67108864,n.fg|=Fs.fg&16777215):r===49?(n.bg&=-67108864,n.bg|=Fs.bg&16777215):r===38||r===48||r===58?i+=this._extractColor(e,i,n):r===53?n.bg|=1073741824:r===55?n.bg&=-1073741825:r===59?(n.extended=n.extended.clone(),n.extended.underlineColor=-1,n.updateExtended()):r===100?(n.fg&=-67108864,n.fg|=Fs.fg&16777215,n.bg&=-67108864,n.bg|=Fs.bg&16777215):this._logService.debug("Unknown SGR attribute: %d.",r);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${Ft.ESC}[0n`);break;case 6:let t=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${Ft.ESC}[${t};${r}R`);break}return!0}deviceStatusPrivate(e){switch(e.params[0]){case 6:let t=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${Ft.ESC}[?${t};${r}R`);break;case 15:break;case 25:break;case 26:break;case 53:break}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=Fs.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 t=e.length===0?1:e.params[0];if(t===0)this._coreService.decPrivateModes.cursorStyle=void 0,this._coreService.decPrivateModes.cursorBlink=void 0;else{switch(t){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";break}let r=t%2===1;this._coreService.decPrivateModes.cursorBlink=r}return!0}setScrollRegion(e){let t=e.params[0]||1,r;return(e.length<2||(r=e.params[1])>this._bufferService.rows||r===0)&&(r=this._bufferService.rows),r>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=r-1,this._setCursor(0,0)),!0}windowOptions(e){if(!hQt(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;let t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:t!==2&&this._onRequestWindowsOptionsReport.fire(0);break;case 16:this._onRequestWindowsOptionsReport.fire(1);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${Ft.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(t===0||t===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>uQt&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>uQt&&this._iconNameStack.shift());break;case 23:(t===0||t===2)&&this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),(t===0||t===1)&&this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop());break}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 t=[],r=e.split(";");for(;r.length>1;){let n=r.shift(),i=r.shift();if(/^\d+$/.exec(n)){let a=parseInt(n);if(pQt(a))if(i==="?")t.push({type:0,index:a});else{let o=cQt(i);o&&t.push({type:1,index:a,color:o})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){let t=e.indexOf(";");if(t===-1)return!0;let r=e.slice(0,t).trim(),n=e.slice(t+1);return n?this._createHyperlink(r,n):r.trim()?!1:this._finishHyperlink()}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();let r=e.split(":"),n,i=r.findIndex(a=>a.startsWith("id="));return i!==-1&&(n=r[i].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:n,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){let r=e.split(";");for(let n=0;n<r.length&&!(t>=this._specialColors.length);++n,++t)if(r[n]==="?")this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{let i=cQt(r[n]);i&&this._onColor.fire([{type:1,index:this._specialColors[t],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 t=[],r=e.split(";");for(let n=0;n<r.length;++n)if(/^\d+$/.exec(r[n])){let i=parseInt(r[n]);pQt(i)&&t.push({type:2,index:i})}return t.length&&this._onColor.fire(t),!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,F4),!0}selectCharset(e){return e.length!==2?(this.selectDefaultCharset(),!0):(e[0]==="/"||this._charsetService.setgCharset(Tkn[e[0]],fl[e[1]]||F4),!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=Fs.clone(),this._eraseAttrDataInternal=Fs.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=this._curAttrData.bg&67108863,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){let e=new lm;e.content=1<<22|69,e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){let r=this._activeBuffer.ybase+this._activeBuffer.y+t,n=this._activeBuffer.lines.get(r);n&&(n.fill(e),n.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){let r=o=>(this._coreService.triggerDataEvent(`${Ft.ESC}${o}${Ft.ESC}\\`),!0),n=this._bufferService.buffer,i=this._optionsService.rawOptions;return r(e==='"q'?`P1$r${this._curAttrData.isProtected()?1:0}"q`:e==='"p'?'P1$r61;1"p':e==="r"?`P1$r${n.scrollTop+1};${n.scrollBottom+1}r`:e==="m"?"P1$r0m":e===" q"?`P1$r${{block:2,underline:4,bar:6}[i.cursorStyle]-(i.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}},LLe=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,t){e>t&&(dQt=e,e=t,t=dQt),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};LLe=Qo([yr(0,lh)],LLe);function pQt(e){return 0<=e&&e<256}var Ckn=5e7,mQt=12,wkn=50,_kn=class extends Dn{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 ar),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(t!==void 0&&this._syncCalls>t){this._syncCalls=0;return}if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;this._isSyncWriting=!0;let r;for(;r=this._writeBuffer.shift();){this._action(r);let n=this._callbacks.shift();n&&n()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>Ckn)throw new 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(t),this._innerWrite();return}setTimeout(()=>this._innerWrite())}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){let r=e||performance.now();for(;this._writeBuffer.length>this._bufferOffset;){let n=this._writeBuffer[this._bufferOffset],i=this._action(n,t);if(i){let o=s=>performance.now()-r>=mQt?setTimeout(()=>this._innerWrite(0,s)):this._innerWrite(r,s);i.catch(s=>(queueMicrotask(()=>{throw s}),Promise.resolve(!1))).then(o);return}let a=this._callbacks[this._bufferOffset];if(a&&a(),this._bufferOffset++,this._pendingData-=n.length,performance.now()-r>=mQt)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>wkn&&(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()}},MLe=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){let t=this._bufferService.buffer;if(e.id===void 0){let s=t.addMarker(t.ybase+t.y),l={data:e,id:this._nextId++,lines:[s]};return s.onDispose(()=>this._removeMarkerFromLink(l,s)),this._dataByLinkId.set(l.id,l),l.id}let r=e,n=this._getEntryIdKey(r),i=this._entriesWithId.get(n);if(i)return this.addLineToLink(i.id,t.ybase+t.y),i.id;let a=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(r),data:r,lines:[a]};return a.onDispose(()=>this._removeMarkerFromLink(o,a)),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){let r=this._dataByLinkId.get(e);if(r&&r.lines.every(n=>n.line!==t)){let n=this._bufferService.buffer.addMarker(t);r.lines.push(n),n.onDispose(()=>this._removeMarkerFromLink(r,n))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){let r=e.lines.indexOf(t);r!==-1&&(e.lines.splice(r,1),e.lines.length===0&&(e.data.id!==void 0&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};MLe=Qo([yr(0,lh)],MLe);var gQt=!1,kkn=class extends Dn{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new pD),this._onBinary=this._register(new ar),this.onBinary=this._onBinary.event,this._onData=this._register(new ar),this.onData=this._onData.event,this._onLineFeed=this._register(new ar),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new ar),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new ar),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new ar),this._instantiationService=new X5n,this.optionsService=this._register(new okn(e)),this._instantiationService.setService(ch,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(ELe)),this._instantiationService.setService(lh,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(kLe)),this._instantiationService.setService(AQt,this._logService),this.coreService=this._register(this._instantiationService.createInstance(RLe)),this._instantiationService.setService(W4,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(ALe)),this._instantiationService.setService(RQt,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance($4)),this._instantiationService.setService(vwn,this.unicodeService),this._charsetService=this._instantiationService.createInstance(hkn),this._instantiationService.setService(ywn,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(MLe),this._instantiationService.setService(PQt,this._oscLinkService),this._inputHandler=this._register(new Skn(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(zc.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(zc.forward(this._bufferService.onResize,this._onResize)),this._register(zc.forward(this.coreService.onData,this._onData)),this._register(zc.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 _kn((t,r)=>this._inputHandler.parse(t,r))),this._register(zc.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new ar),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 t in e)this.optionsService.options[t]=e[t]}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=3&&!gQt&&(this._logService.warn("writeSync is unreliable and will be removed soon."),gQt=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,yJt),t=Math.max(t,vJt),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t){this._bufferService.scrollLines(e,t)}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 t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1,t=this.optionsService.rawOptions.windowsPty;t&&t.buildNumber!==void 0&&t.buildNumber!==void 0?e=t.backend==="conpty"&&t.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(sQt.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},()=>(sQt(this._bufferService),!1))),this._windowsWrappingHeuristics.value=Ga(()=>{for(let t of e)t.dispose()})}}},Ekn={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:["'",'"']};function Rkn(e,t,r,n){let i={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:e.key==="UIKeyInputUpArrow"?t?i.key=Ft.ESC+"OA":i.key=Ft.ESC+"[A":e.key==="UIKeyInputLeftArrow"?t?i.key=Ft.ESC+"OD":i.key=Ft.ESC+"[D":e.key==="UIKeyInputRightArrow"?t?i.key=Ft.ESC+"OC":i.key=Ft.ESC+"[C":e.key==="UIKeyInputDownArrow"&&(t?i.key=Ft.ESC+"OB":i.key=Ft.ESC+"[B");break;case 8:i.key=e.ctrlKey?"\b":Ft.DEL,e.altKey&&(i.key=Ft.ESC+i.key);break;case 9:if(e.shiftKey){i.key=Ft.ESC+"[Z";break}i.key=Ft.HT,i.cancel=!0;break;case 13:i.key=e.altKey?Ft.ESC+Ft.CR:Ft.CR,i.cancel=!0;break;case 27:i.key=Ft.ESC,e.altKey&&(i.key=Ft.ESC+Ft.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;a?i.key=Ft.ESC+"[1;"+(a+1)+"D":t?i.key=Ft.ESC+"OD":i.key=Ft.ESC+"[D";break;case 39:if(e.metaKey)break;a?i.key=Ft.ESC+"[1;"+(a+1)+"C":t?i.key=Ft.ESC+"OC":i.key=Ft.ESC+"[C";break;case 38:if(e.metaKey)break;a?i.key=Ft.ESC+"[1;"+(a+1)+"A":t?i.key=Ft.ESC+"OA":i.key=Ft.ESC+"[A";break;case 40:if(e.metaKey)break;a?i.key=Ft.ESC+"[1;"+(a+1)+"B":t?i.key=Ft.ESC+"OB":i.key=Ft.ESC+"[B";break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=Ft.ESC+"[2~");break;case 46:a?i.key=Ft.ESC+"[3;"+(a+1)+"~":i.key=Ft.ESC+"[3~";break;case 36:a?i.key=Ft.ESC+"[1;"+(a+1)+"H":t?i.key=Ft.ESC+"OH":i.key=Ft.ESC+"[H";break;case 35:a?i.key=Ft.ESC+"[1;"+(a+1)+"F":t?i.key=Ft.ESC+"OF":i.key=Ft.ESC+"[F";break;case 33:e.shiftKey?i.type=2:e.ctrlKey?i.key=Ft.ESC+"[5;"+(a+1)+"~":i.key=Ft.ESC+"[5~";break;case 34:e.shiftKey?i.type=3:e.ctrlKey?i.key=Ft.ESC+"[6;"+(a+1)+"~":i.key=Ft.ESC+"[6~";break;case 112:a?i.key=Ft.ESC+"[1;"+(a+1)+"P":i.key=Ft.ESC+"OP";break;case 113:a?i.key=Ft.ESC+"[1;"+(a+1)+"Q":i.key=Ft.ESC+"OQ";break;case 114:a?i.key=Ft.ESC+"[1;"+(a+1)+"R":i.key=Ft.ESC+"OR";break;case 115:a?i.key=Ft.ESC+"[1;"+(a+1)+"S":i.key=Ft.ESC+"OS";break;case 116:a?i.key=Ft.ESC+"[15;"+(a+1)+"~":i.key=Ft.ESC+"[15~";break;case 117:a?i.key=Ft.ESC+"[17;"+(a+1)+"~":i.key=Ft.ESC+"[17~";break;case 118:a?i.key=Ft.ESC+"[18;"+(a+1)+"~":i.key=Ft.ESC+"[18~";break;case 119:a?i.key=Ft.ESC+"[19;"+(a+1)+"~":i.key=Ft.ESC+"[19~";break;case 120:a?i.key=Ft.ESC+"[20;"+(a+1)+"~":i.key=Ft.ESC+"[20~";break;case 121:a?i.key=Ft.ESC+"[21;"+(a+1)+"~":i.key=Ft.ESC+"[21~";break;case 122:a?i.key=Ft.ESC+"[23;"+(a+1)+"~":i.key=Ft.ESC+"[23~";break;case 123:a?i.key=Ft.ESC+"[24;"+(a+1)+"~":i.key=Ft.ESC+"[24~";break;default:if(e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)e.keyCode>=65&&e.keyCode<=90?i.key=String.fromCharCode(e.keyCode-64):e.keyCode===32?i.key=Ft.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=Ft.DEL:e.keyCode===219?i.key=Ft.ESC:e.keyCode===220?i.key=Ft.FS:e.keyCode===221&&(i.key=Ft.GS);else if((!r||n)&&e.altKey&&!e.metaKey){let o=Ekn[e.keyCode]?.[e.shiftKey?1:0];if(o)i.key=Ft.ESC+o;else if(e.keyCode>=65&&e.keyCode<=90){let s=e.ctrlKey?e.keyCode-64:e.keyCode+32,l=String.fromCharCode(s);e.shiftKey&&(l=l.toUpperCase()),i.key=Ft.ESC+l}else if(e.keyCode===32)i.key=Ft.ESC+(e.ctrlKey?Ft.NUL:" ");else if(e.key==="Dead"&&e.code.startsWith("Key")){let s=e.code.slice(3,4);e.shiftKey||(s=s.toLowerCase()),i.key=Ft.ESC+s,i.cancel=!0}}else r&&!e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.metaKey?e.keyCode===65&&(i.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&e.key.length===1?i.key=e.key:e.key&&e.ctrlKey&&(e.key==="_"&&(i.key=Ft.US),e.key==="@"&&(i.key=Ft.NUL));break}return i}var ds=0,Akn=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new gce,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new gce,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(),this._insertedValues.length===0&&this._flushInsertedTask.enqueue(()=>this._flushInserted()),this._insertedValues.push(e)}_flushInserted(){let e=this._insertedValues.sort((i,a)=>this._getKey(i)-this._getKey(a)),t=0,r=0,n=new Array(this._array.length+this._insertedValues.length);for(let i=0;i<n.length;i++)r>=this._array.length||this._getKey(e[t])<=this._getKey(this._array[r])?(n[i]=e[t],t++):n[i]=this._array[r++];this._array=n,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(e){if(this._flushCleanupInserted(),this._array.length===0)return!1;let t=this._getKey(e);if(t===void 0||(ds=this._search(t),ds===-1)||this._getKey(this._array[ds])!==t)return!1;do if(this._array[ds]===e)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(ds),!0;while(++ds<this._array.length&&this._getKey(this._array[ds])===t);return!1}_flushDeleted(){this._isFlushingDeleted=!0;let e=this._deletedIndices.sort((i,a)=>i-a),t=0,r=new Array(this._array.length-e.length),n=0;for(let i=0;i<this._array.length;i++)e[t]===i?t++:r[n++]=this._array[i];this._array=r,this._deletedIndices.length=0,this._isFlushingDeleted=!1}_flushCleanupDeleted(){!this._isFlushingDeleted&&this._deletedIndices.length>0&&this._flushDeletedTask.flush()}*getKeyIterator(e){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(ds=this._search(e),!(ds<0||ds>=this._array.length)&&this._getKey(this._array[ds])===e))do yield this._array[ds];while(++ds<this._array.length&&this._getKey(this._array[ds])===e)}forEachByKey(e,t){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(ds=this._search(e),!(ds<0||ds>=this._array.length)&&this._getKey(this._array[ds])===e))do t(this._array[ds]);while(++ds<this._array.length&&this._getKey(this._array[ds])===e)}values(){return this._flushCleanupInserted(),this._flushCleanupDeleted(),[...this._array].values()}_search(e){let t=0,r=this._array.length-1;for(;r>=t;){let n=t+r>>1,i=this._getKey(this._array[n]);if(i>e)r=n-1;else if(i<e)t=n+1;else{for(;n>0&&this._getKey(this._array[n-1])===e;)n--;return n}}return t}},X8e=0,yQt=0,Pkn=class extends Dn{constructor(){super(),this._decorations=new Akn(e=>e?.marker.line),this._onDecorationRegistered=this._register(new ar),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new ar),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(Ga(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let t=new Lkn(e);if(t){let r=t.marker.onDispose(()=>t.dispose()),n=t.onDispose(()=>{n.dispose(),t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),r.dispose())});this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(let e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,r){let n=0,i=0;for(let a of this._decorations.getKeyIterator(t))n=a.options.x??0,i=n+(a.options.width??1),e>=n&&e<i&&(!r||(a.options.layer??"bottom")===r)&&(yield a)}forEachDecorationAtCell(e,t,r,n){this._decorations.forEachByKey(t,i=>{X8e=i.options.x??0,yQt=X8e+(i.options.width??1),e>=X8e&&e<yQt&&(!r||(i.options.layer??"bottom")===r)&&n(i)})}},Lkn=class extends hC{constructor(e){super(),this.options=e,this.onRenderEmitter=this.add(new ar),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new ar),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 this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=_o.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=_o.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}},Mkn=1e3,Ikn=class{constructor(e,t=Mkn){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,r){this._rowCount=r,e=e!==void 0?e:0,t=t!==void 0?t:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,e):e,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,t):t;let n=performance.now();if(n-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=n,this._innerRefresh();else if(!this._additionalRefreshRequested){let i=n-this._lastRefreshMs,a=this._debounceThresholdMS-i;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},a)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}},vQt=20,bQt=!1,yce=class extends Dn{constructor(e,t,r,n){super(),this._terminal=e,this._coreBrowserService=r,this._renderService=n,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="";let i=this._coreBrowserService.mainDocument;this._accessibilityContainer=i.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=i.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let a=0;a<this._terminal.rows;a++)this._rowElements[a]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[a]);if(this._topBoundaryFocusListener=a=>this._handleBoundaryFocus(a,0),this._bottomBoundaryFocusListener=a=>this._handleBoundaryFocus(a,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=i.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new Ikn(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");bQt?(this._accessibilityContainer.classList.add("debug"),this._rowContainer.classList.add("debug"),this._debugRootContainer=i.createElement("div"),this._debugRootContainer.classList.add("xterm"),this._debugRootContainer.appendChild(i.createTextNode("------start a11y------")),this._debugRootContainer.appendChild(this._accessibilityContainer),this._debugRootContainer.appendChild(i.createTextNode("------end a11y------")),this._terminal.element.insertAdjacentElement("afterend",this._debugRootContainer)):this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this._register(this._terminal.onResize(a=>this._handleResize(a.rows))),this._register(this._terminal.onRender(a=>this._refreshRows(a.start,a.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(a=>this._handleChar(a))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`
3952
3952
  `))),this._register(this._terminal.onA11yTab(a=>this._handleTab(a))),this._register(this._terminal.onKey(a=>this._handleKey(a.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(bn(i,"selectionchange",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(Ga(()=>{bQt?this._debugRootContainer.remove():this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(" ")}_handleChar(e){this._liveRegionLineCount<vQt+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
3953
3953
  `&&(this._liveRegionLineCount++,this._liveRegionLineCount===vQt+1&&(this._liveRegion.textContent+=Z8e.get())))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){let r=this._terminal.buffer,n=r.lines.length.toString();for(let i=e;i<=t;i++){let a=r.lines.get(r.ydisp+i),o=[],s=a?.translateToString(!0,void 0,void 0,o)||"",l=(r.ydisp+i+1).toString(),u=this._rowElements[i];u&&(s.length===0?(u.textContent="\xA0",this._rowColumns.set(u,[0,1])):(u.textContent=s,this._rowColumns.set(u,o)),u.setAttribute("aria-posinset",l),u.setAttribute("aria-setsize",n),this._alignRowWidth(u))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){let r=e.target,n=this._rowElements[t===0?1:this._rowElements.length-2],i=r.getAttribute("aria-posinset"),a=t===0?"1":`${this._terminal.buffer.lines.length}`;if(i===a||e.relatedTarget!==n)return;let o,s;if(t===0?(o=r,s=this._rowElements.pop(),this._rowContainer.removeChild(s)):(o=this._rowElements.shift(),s=r,this._rowContainer.removeChild(o)),o.removeEventListener("focus",this._topBoundaryFocusListener),s.removeEventListener("focus",this._bottomBoundaryFocusListener),t===0){let l=this._createAccessibilityTreeNode();this._rowElements.unshift(l),this._rowContainer.insertAdjacentElement("afterbegin",l)}else{let l=this._createAccessibilityTreeNode();this._rowElements.push(l),this._rowContainer.appendChild(l)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(t===0?-1:1),this._rowElements[t===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let e=this._coreBrowserService.mainDocument.getSelection();if(!e)return;if(e.isCollapsed){this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection();return}if(!e.anchorNode||!e.focusNode){console.error("anchorNode and/or focusNode are null");return}let t={node:e.anchorNode,offset:e.anchorOffset},r={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(r.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===r.node&&t.offset>r.offset)&&([t,r]=[r,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;let n=this._rowElements.slice(-1)[0];if(r.node.compareDocumentPosition(n)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(r={node:n,offset:n.textContent?.length??0}),!this._rowContainer.contains(r.node))return;let i=({node:s,offset:l})=>{let u=s instanceof Text?s.parentNode:s,h=parseInt(u?.getAttribute("aria-posinset"),10)-1;if(isNaN(h))return console.warn("row is invalid. Race condition?"),null;let f=this._rowColumns.get(u);if(!f)return console.warn("columns is null. Race condition?"),null;let d=l<f.length?f[l]:f.slice(-1)[0]+1;return d>=this._terminal.cols&&(++h,d=0),{row:h,column:d}},a=i(t),o=i(r);if(!(!a||!o)){if(a.row>o.row||a.row===o.row&&a.column>=o.column)throw new 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 t=this._rowContainer.children.length;t<this._terminal.rows;t++)this._rowElements[t]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[t]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let e=this._coreBrowserService.mainDocument.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e]),this._alignRowWidth(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(e){e.style.transform="";let t=e.getBoundingClientRect().width,r=this._rowColumns.get(e)?.slice(-1)?.[0];if(!r)return;let n=r*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${n/t})`}};yce=Qo([yr(1,DLe),yr(2,rx),yr(3,nx)],yce);var ILe=class extends Dn{constructor(e,t,r,n,i){super(),this._element=e,this._mouseService=t,this._renderService=r,this._bufferService=n,this._linkProviderService=i,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new ar),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new ar),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(Ga(()=>{U4(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(bn(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(bn(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register(bn(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register(bn(this._element,"mouseup",this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;let r=e.composedPath();for(let n=0;n<r.length;n++){let i=r[n];if(i.classList.contains("xterm"))break;if(i.classList.contains("xterm-hover"))return}(!this._lastBufferCell||t.x!==this._lastBufferCell.x||t.y!==this._lastBufferCell.y)&&(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized){this._clearCurrentLink(),this._askForLink(e,!1),this._wasResized=!1;return}this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){(!this._activeProviderReplies||!t)&&(this._activeProviderReplies?.forEach(n=>{n?.forEach(i=>{i.link.dispose&&i.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(let[n,i]of this._linkProviderService.linkProviders.entries())t?this._activeProviderReplies?.get(n)&&(r=this._checkLinkProviderResult(n,e,r)):i.provideLinks(e.y,a=>{if(this._isMouseOut)return;let o=a?.map(s=>({link:s}));this._activeProviderReplies?.set(n,o),r=this._checkLinkProviderResult(n,e,r),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,t){let r=new Set;for(let n=0;n<t.size;n++){let i=t.get(n);if(i)for(let a=0;a<i.length;a++){let o=i[a],s=o.link.range.start.y<e?0:o.link.range.start.x,l=o.link.range.end.y>e?this._bufferService.cols:o.link.range.end.x;for(let u=s;u<=l;u++){if(r.has(u)){i.splice(a--,1);break}r.add(u)}}}}_checkLinkProviderResult(e,t,r){if(!this._activeProviderReplies)return r;let n=this._activeProviderReplies.get(e),i=!1;for(let a=0;a<e;a++)(!this._activeProviderReplies.has(a)||this._activeProviderReplies.get(a))&&(i=!0);if(!i&&n){let a=n.find(o=>this._linkAtPosition(o.link,t));a&&(r=!0,this._handleNewLink(a))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!r)for(let a=0;a<this._activeProviderReplies.size;a++){let o=this._activeProviderReplies.get(a)?.find(s=>this._linkAtPosition(s.link,t));if(o){r=!0,this._handleNewLink(o);break}}return r}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink&&Dkn(this._mouseDownLink.link,this._currentLink.link)&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){!this._currentLink||!this._lastMouseEvent||(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,U4(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0?!0:e.link.decorations.underline,pointerCursor:e.link.decorations===void 0?!0:e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:r=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==r&&(this._currentLink.state.decorations.pointerCursor=r,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",r))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:r=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==r&&(this._currentLink.state.decorations.underline=r,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,r))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(r=>{if(!this._currentLink)return;let n=r.start===0?0:r.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+r.end;if(this._currentLink.link.range.start.y>=n&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(n,i),this._lastMouseEvent)){let a=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);a&&this._askForLink(a,!1)}})))}_linkHover(e,t,r){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),t.hover&&t.hover(r,t.text)}_fireUnderlineEvent(e,t){let r=e.range,n=this._bufferService.buffer.ydisp,i=this._createLinkUnderlineEvent(r.start.x-1,r.start.y-n-1,r.end.x,r.end.y-n-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(i)}_linkLeave(e,t,r){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),t.leave&&t.leave(r,t.text)}_linkAtPosition(e,t){let r=e.range.start.y*this._bufferService.cols+e.range.start.x,n=e.range.end.y*this._bufferService.cols+e.range.end.x,i=t.y*this._bufferService.cols+t.x;return r<=i&&i<=n}_positionFromMouseEvent(e,t,r){let n=r.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(n)return{x:n[0],y:n[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,r,n,i){return{x1:e,y1:t,x2:r,y2:n,cols:this._bufferService.cols,fg:i}}};ILe=Qo([yr(1,OLe),yr(2,nx),yr(3,lh),yr(4,MQt)],ILe);function Dkn(e,t){return e.text===t.text&&e.range.start.x===t.range.start.x&&e.range.start.y===t.range.start.y&&e.range.end.x===t.range.end.x&&e.range.end.y===t.range.end.y}var Okn=class extends kkn{constructor(e={}){super(e),this._linkifier=this._register(new pD),this.browser=oJt,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new pD),this._onCursorMove=this._register(new ar),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new ar),this.onKey=this._onKey.event,this._onRender=this._register(new ar),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new ar),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new ar),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new ar),this.onBell=this._onBell.event,this._onFocus=this._register(new ar),this._onBlur=this._register(new ar),this._onA11yCharEmitter=this._register(new ar),this._onA11yTabEmitter=this._register(new ar),this._onWillOpen=this._register(new ar),this._setup(),this._decorationService=this._instantiationService.createInstance(Pkn),this._instantiationService.setService(wW,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(C5n),this._instantiationService.setService(MQt,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(J8e)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(t=>this.refresh(t?.start??0,t?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(t=>this._reportWindowsOptions(t))),this._register(this._inputHandler.onColor(t=>this._handleColorEvent(t))),this._register(zc.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(zc.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(zc.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(zc.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(t=>this._afterResize(t.cols,t.rows))),this._register(Ga(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(let t of e){let r,n="";switch(t.index){case 256:r="foreground",n="10";break;case 257:r="background",n="11";break;case 258:r="cursor",n="12";break;default:r="ansi",n="4;"+t.index}switch(t.type){case 0:let i=Va.toColorRGB(r==="ansi"?this._themeService.colors.ansi[t.index]:this._themeService.colors[r]);this.coreService.triggerDataEvent(`${Ft.ESC}]${n};${xkn(i)}${iJt.ST}`);break;case 1:if(r==="ansi")this._themeService.modifyColors(a=>a.ansi[t.index]=$s.toColor(...t.color));else{let a=r;this._themeService.modifyColors(o=>o[a]=$s.toColor(...t.color))}break;case 2:this._themeService.restoreColor(t.index);break}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(yce,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(Ft.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(Ft.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;let r=Math.min(this.buffer.x,this.cols-1),n=this._renderService.dimensions.css.cell.height,i=t.getWidth(r),a=this._renderService.dimensions.css.cell.width*i,o=this.buffer.y*this._renderService.dimensions.css.cell.height,s=r*this._renderService.dimensions.css.cell.width;this.textarea.style.left=s+"px",this.textarea.style.top=o+"px",this.textarea.style.width=a+"px",this.textarea.style.height=n+"px",this.textarea.style.lineHeight=n+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this._register(bn(this.element,"copy",t=>{this.hasSelection()&&hwn(t,this._selectionService)}));let e=t=>fwn(t,this.textarea,this.coreService,this.optionsService);this._register(bn(this.textarea,"paste",e)),this._register(bn(this.element,"paste",e)),sJt?this._register(bn(this.element,"mousedown",t=>{t.button===2&&xZt(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(bn(this.element,"contextmenu",t=>{xZt(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),WLe&&this._register(bn(this.element,"auxclick",t=>{t.button===1&&CQt(t,this.textarea,this.screenElement)}))}_bindKeys(){this._register(bn(this.textarea,"keyup",e=>this._keyUp(e),!0)),this._register(bn(this.textarea,"keydown",e=>this._keyDown(e),!0)),this._register(bn(this.textarea,"keypress",e=>this._keyPress(e),!0)),this._register(bn(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this._register(bn(this.textarea,"compositionupdate",e=>this._compositionHelper.compositionupdate(e))),this._register(bn(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this._register(bn(this.textarea,"input",e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw new Error("Terminal requires a parent element.");if(e.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService){this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView);return}this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),e.appendChild(this.element);let t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),t.appendChild(this._viewportElement),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._register(bn(this.screenElement,"mousemove",i=>this.updateCursorStyle(i))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement);let r=this.textarea=this._document.createElement("textarea");this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",K8e.get()),uJt||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange("disableStdin",()=>r.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(T5n,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(rx,this._coreBrowserService),this._register(bn(this.textarea,"focus",i=>this._handleTextAreaFocus(i))),this._register(bn(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(TLe,this._document,this._helperContainer),this._instantiationService.setService(bce,this._charSizeService),this._themeService=this._instantiationService.createInstance(_Le),this._instantiationService.setService(mD,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(pce),this._instantiationService.setService(LQt,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(CLe,this.rows,this.screenElement)),this._instantiationService.setService(nx,this._renderService),this._register(this._renderService.onRenderedViewportChange(i=>this._onRender.fire(i))),this.onResize(i=>this._renderService.resize(i.cols,i.rows)),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(vLe,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(SLe),this._instantiationService.setService(OLe,this._mouseService);let n=this._linkifier.value=this._register(this._instantiationService.createInstance(ILe,this.screenElement));this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this._register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this._register(this.onBlur(()=>this._renderService.handleBlur())),this._register(this.onFocus(()=>this._renderService.handleFocus())),this._viewport=this._register(this._instantiationService.createInstance(gLe,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(i=>{super.scrollLines(i,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(wLe,this.element,this.screenElement,n)),this._instantiationService.setService(xwn,this._selectionService),this._register(this._selectionService.onRequestScrollLines(i=>this.scrollLines(i.amount,i.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(i=>this._renderService.handleSelectionChanged(i.start,i.end,i.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(i=>{this.textarea.value=i,this.textarea.focus(),this.textarea.select()})),this._register(zc.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(yLe,this.screenElement)),this._register(bn(this.element,"mousedown",i=>this._selectionService.handleMouseDown(i))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(yce,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",i=>this._handleScreenReaderModeOptionChange(i))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(dce,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",i=>{!this._overviewRulerRenderer&&i&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(dce,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(xLe,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,t=this.element;function r(a){let o=e._mouseService.getMouseReportCoords(a,e.screenElement);if(!o)return!1;let s,l;switch(a.overrideType||a.type){case"mousemove":l=32,a.buttons===void 0?(s=3,a.button!==void 0&&(s=a.button<3?a.button:3)):s=a.buttons&1?0:a.buttons&4?1:a.buttons&2?2:3;break;case"mouseup":l=0,s=a.button<3?a.button:3;break;case"mousedown":l=1,s=a.button<3?a.button:3;break;case"wheel":if(e._customWheelEventHandler&&e._customWheelEventHandler(a)===!1)return!1;let u=a.deltaY;if(u===0||e.coreMouseService.consumeWheelEvent(a,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;l=u<0?0:1,s=4;break;default:return!1}return l===void 0||s===void 0||s>4?!1:e.coreMouseService.triggerMouseEvent({col:o.col,row:o.row,x:o.x,y:o.y,button:s,action:l,ctrl:a.ctrlKey,alt:a.altKey,shift:a.shiftKey})}let n={mouseup:null,wheel:null,mousedrag:null,mousemove:null},i={mouseup:a=>(r(a),a.buttons||(this._document.removeEventListener("mouseup",n.mouseup),n.mousedrag&&this._document.removeEventListener("mousemove",n.mousedrag)),this.cancel(a)),wheel:a=>(r(a),this.cancel(a,!0)),mousedrag:a=>{a.buttons&&r(a)},mousemove:a=>{a.buttons||r(a)}};this._register(this.coreMouseService.onProtocolChange(a=>{a?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(a)),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()),a&8?n.mousemove||(t.addEventListener("mousemove",i.mousemove),n.mousemove=i.mousemove):(t.removeEventListener("mousemove",n.mousemove),n.mousemove=null),a&16?n.wheel||(t.addEventListener("wheel",i.wheel,{passive:!1}),n.wheel=i.wheel):(t.removeEventListener("wheel",n.wheel),n.wheel=null),a&2?n.mouseup||(n.mouseup=i.mouseup):(this._document.removeEventListener("mouseup",n.mouseup),n.mouseup=null),a&4?n.mousedrag||(n.mousedrag=i.mousedrag):(this._document.removeEventListener("mousemove",n.mousedrag),n.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(bn(t,"mousedown",a=>{if(a.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(a)))return r(a),n.mouseup&&this._document.addEventListener("mouseup",n.mouseup),n.mousedrag&&this._document.addEventListener("mousemove",n.mousedrag),this.cancel(a)})),this._register(bn(t,"wheel",a=>{if(!n.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(a)===!1)return!1;if(!this.buffer.hasScrollback){if(a.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(a,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(a,!0);let o=Ft.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(a.deltaY<0?"A":"B");return this.coreService.triggerDataEvent(o,!0),this.cancel(a,!0)}}},{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,t),this.refresh(0,this.rows-1)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){e&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}paste(e){SQt(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");let t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return this._selectionService?this._selectionService.hasSelection:!1}select(e,t,r){this._selectionService.setSelection(e,t,r)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(!(!this._selectionService||!this._selectionService.hasSelection))return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;let t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;!t&&(e.key==="Dead"||e.key==="AltGraph")&&(this._unprocessedDeadKey=!0);let r=Rkn(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),r.type===3||r.type===2){let n=this.rows-1;return this.scrollLines(r.type===2?-n:n),this.cancel(e,!0)}if(r.type===1&&this.selectAll(),this._isThirdLevelShift(this.browser,e)||(r.cancel&&this.cancel(e,!0),!r.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.key.length===1&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)return!0;if(this._unprocessedDeadKey)return this._unprocessedDeadKey=!1,!0;if((r.key===Ft.ETX||r.key===Ft.CR)&&(this.textarea.value=""),this._onKey.fire({key:r.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(r.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)return this.cancel(e,!0);this._keyDownHandled=!0}_isThirdLevelShift(e,t){let r=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState("AltGraph");return t.type==="keypress"?r:r&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,!(this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)&&(Nkn(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(e.which===null||e.which===void 0)t=e.keyCode;else if(e.which!==0&&e.charCode!==0)t=e.which;else return!1;return!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)?!1:(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&e.inputType==="insertText"&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){if(e===this.cols&&t===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,t)}_afterResize(e,t){this._charSizeService?.measure()}clear(){if(!(this.buffer.ybase===0&&this.buffer.y===0)){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(Fs));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(Ft.ESC+"[I"):this.coreService.triggerDataEvent(Ft.ESC+"[O")}_reportWindowsOptions(e){if(this._renderService)switch(e){case 0:let t=this._renderService.dimensions.css.canvas.width.toFixed(0),r=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${Ft.ESC}[4;${r};${t}t`);break;case 1:let n=this._renderService.dimensions.css.cell.width.toFixed(0),i=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${Ft.ESC}[6;${i};${n}t`);break}}cancel(e,t){if(!(!this.options.cancelEvents&&!t))return e.preventDefault(),e.stopPropagation(),!1}};function Nkn(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var Bkn=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){let r={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(r),t.dispose=()=>this._wrappedAddonDispose(r),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let r=0;r<this._addons.length;r++)if(this._addons[r]===e){t=r;break}if(t===-1)throw new Error("Could not dispose an addon that has not been loaded");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}},Fkn=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new lm)}translateToString(e,t,r){return this._line.translateToString(e,t,r)}},xQt=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){let t=this._buffer.lines.get(e);if(t)return new Fkn(t)}getNullCell(){return new lm}},$kn=class extends Dn{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new ar),this.onBufferChange=this._onBufferChange.event,this._normal=new xQt(this._core.buffers.normal,"normal"),this._alternate=new xQt(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}},zkn=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,r=>t(r.toArray()))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,(r,n)=>t(r,n.toArray()))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}},Ukn=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}},Hkn=["cols","rows"],Vy=0,xJt=class extends Dn{constructor(e){super(),this._core=this._register(new Okn(e)),this._addonManager=this._register(new Bkn),this._publicOptions={...this._core.options};let t=n=>this._core.options[n],r=(n,i)=>{this._checkReadonlyOptions(n),this._core.options[n]=i};for(let n in this._core.options){let i={get:t.bind(this,n),set:r.bind(this,n)};Object.defineProperty(this._publicOptions,n,i)}}_checkReadonlyOptions(e){if(Hkn.includes(e))throw new Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new zkn(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new Ukn(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 $kn(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let e=this._core.coreService.decPrivateModes,t="none";switch(this._core.coreMouseService.activeProtocol){case"X10":t="x10";break;case"VT200":t="vt200";break;case"DRAG":t="drag";break;case"ANY":t="any";break}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,synchronizedOutputMode:e.synchronizedOutput,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(let t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,r){this._verifyIntegers(e,t,r),this._core.select(e,t,r)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(`\r
3954
- `,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return K8e.get()},set promptLabel(e){K8e.set(e)},get tooMuchOutput(){return Z8e.get()},set tooMuchOutput(e){Z8e.set(e)}}}_verifyIntegers(...e){for(Vy of e)if(Vy===1/0||isNaN(Vy)||Vy%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(Vy of e)if(Vy&&(Vy===1/0||isNaN(Vy)||Vy%1!==0||Vy<0))throw new Error("This API only accepts positive integers")}};var VLe=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function Wkn(e){try{return!!new URL(e).host}catch{return!1}}function SJt(e,t){let r=e(t),n=e(t+1);return!!r&&!!n&&(n.isWrapped||r.isFull)}function Vkn(e,t){let r=[];for(let n=t;n-t<64;n++){let i=e(n);if(!i||(r.push(i.text),!SJt(e,n)))break}return r}function TJt(e,t,r){let n=t;for(let i of e){if(r<i.length)return{x:r+1,y:n+1};r-=i.length,n++}}function Gkn(e,t,r){let n=r[0],i=TJt(e,t,r.index),a=TJt(e,t,r.index+n.length-1);if(!(!Wkn(n)||!i||!a))return{text:n,range:{start:i,end:a}}}function qkn(e,t,r){let n=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(n)].flatMap(a=>Gkn(e,t,a)??[])}function CJt(e,t,r=VLe){if(!e(t-1))return[];let n=t-1;for(;n>0&&SJt(e,n-1);)n--;return qkn(Vkn(e,n),n,r)}function wJt(e,t){let r=n=>{let i=e.buffer.active.getLine(n);if(!i)return;let a=e.cols,o=i.getCell(a-1);return{text:i.translateToString(!0,0,a),isWrapped:i.isWrapped,isFull:!!o&&o.getChars()!==""&&o.getChars()!==" "}};return{provideLinks(n,i){let a=CJt(r,n,VLe);i(a.map(o=>({range:o.range,text:o.text,activate:t})))}}}function _Jt(e){let t=new xJt({cursorBlink:!0,fontSize:14,fontFamily:"'Cascadia Code', 'Fira Code', Consolas, monospace",theme:{background:"#1e1e1e",foreground:"#d4d4d4"},linkHandler:{activate:(a,o)=>{window.open(o,"_blank")}}}),r=new QXt;t.loadAddon(r);let n=t.registerLinkProvider(wJt(t,(a,o)=>{window.open(o,"_blank")}));t.open(e);let i;try{i=new yZt,i.onContextLoss(()=>{i?.dispose(),i=void 0}),t.loadAddon(i)}catch{i=void 0}return r.fit(),{term:t,fitAddon:r,dispose:()=>{n.dispose(),i?.dispose(),t.dispose()}}}function kJt(e,t,r,n){if(e.type!=="keydown"||!(e.ctrlKey||e.metaKey)||e.shiftKey||e.altKey)return!0;let i=e.key.toLowerCase();return i==="c"&&t.hasSelection()?(e.preventDefault(),r.writeText(t.getSelection()),!1):i==="v"?(e.preventDefault(),r.readText().then(n),!1):!0}function wce(e){return e.type==="keydown"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()==="p"}function EJt(e,t,r,n,i){let a=_Jt(e);a.term.onData(u=>r(t,u)),a.term.attachCustomKeyEventHandler(u=>wce(u)?!1:kJt(u,a.term,navigator.clipboard,h=>a.term.paste(h)));let o=n(t,u=>a.term.write(u)),s=new ResizeObserver(()=>{Lle(e)&&(a.fitAddon.fit(),i(t,a.term.cols,a.term.rows))});return s.observe(e),{handle:a,cleanup:()=>{s.disconnect(),o(),a.dispose()}}}function RJt(e,t,r,n,i,a){let o=(0,EW.useRef)(null);(0,EW.useEffect)(()=>{let s=e.current;if(!s)return;let{handle:l,cleanup:u}=EJt(s,t,n,i,a);return o.current=l,()=>{u(),o.current=null}},[e,t,i,n,a]),(0,EW.useEffect)(()=>{let s=o.current;if(!r||!s)return;let l=setTimeout(()=>{Lle(e.current)&&(s.fitAddon.fit(),s.term.focus(),a(t,s.term.cols,s.term.rows))},50);return()=>clearTimeout(l)},[e,r,t,a])}var LJt=$(G(),1);function PJt({sessionId:e,visible:t,onOutput:r,sendInput:n,sendResize:i}){let a=(0,AJt.useRef)(null);return RJt(a,e,t,n,r,i),(0,LJt.jsx)(Ge,{ref:a,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"}})}var V4=$(G(),1);function MJt({sessions:e,activeId:t,activeLoading:r,onOutput:n,sendInput:i,sendResize:a}){return(0,V4.jsxs)(Ge,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(o=>(0,V4.jsx)(PJt,{sessionId:o.id,visible:o.id===t,onOutput:n,sendInput:i,sendResize:a},o.id)),r&&(0,V4.jsx)(ZXt,{}),e.length===0&&(0,V4.jsx)(Ge,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,V4.jsx)(rt,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var DJt=$(G(),1);function IJt({sessions:e,activeId:t,initialized:r,onOutput:n,sendInput:i,sendResize:a}){let o=e.find(l=>l.id===t),s=o!==void 0&&loe(o,r);return(0,DJt.jsx)(MJt,{sessions:e,activeId:t,activeLoading:s,onOutput:n,sendInput:i,sendResize:a})}var OJt=$(G(),1),NJt=_t((0,OJt.jsx)("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build");var cm=$(G(),1);function BJt({message:e}){return e.role==="tool"?(0,cm.jsx)(jkn,{tool:e.tool,target:e.target}):(0,cm.jsx)(Ykn,{role:e.role,text:e.text})}function jkn({tool:e,target:t}){return(0,cm.jsxs)(Ge,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,cm.jsx)(NJt,{sx:{fontSize:14,color:"text.disabled"}}),(0,cm.jsxs)(rt,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,cm.jsx)(Ge,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,cm.jsxs)(Ge,{component:"span",children:[" ",t]})]})]})}function Ykn({role:e,text:t}){let r=e==="user",n=r?"info.main":"success.main";return(0,cm.jsxs)(Ge,{sx:{mb:1.5,pl:1.5,py:1,pr:1,borderLeft:2,borderColor:n,borderTopRightRadius:1,borderBottomRightRadius:1,bgcolor:r?"action.hover":"transparent"},children:[(0,cm.jsx)(rt,{variant:"caption",sx:{color:n,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,cm.jsx)(rt,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var Yy=$(G(),1);function Xkn(e){let t=new Map;return e.map(r=>{let n=r.role==="tool"?`tool:${r.tool}:${r.target}`:`${r.role}:${r.text.slice(0,40)}`,i=t.get(n)??0;return t.set(n,i+1),{...r,key:`${n}#${i}`}})}function $Jt({messages:e,loading:t}){return t?(0,Yy.jsxs)(Ge,{sx:FJt,children:[(0,Yy.jsx)(ra,{size:20}),(0,Yy.jsx)(rt,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,Yy.jsx)(Ge,{sx:FJt,children:(0,Yy.jsx)(rt,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,Yy.jsx)(Ge,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,Yy.jsx)(Ge,{sx:{maxWidth:820,mx:"auto"},children:Xkn(e).map(r=>(0,Yy.jsx)(BJt,{message:r},r.key))})})}var FJt={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var GLe=$(G(),1);function zJt({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,GLe.jsx)(Ge,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,GLe.jsx)($Jt,{messages:r?t?.messages??[]:[],loading:!r})})}var fC=$(G(),1),Kkn={flex:1,minHeight:0,display:"flex",flexDirection:"column"};function UJt({viewingTranscriptSessionId:e,transcript:t,sendPrDecision:r,lifecycle:n,...i}){let a=lu();if(e!==null)return(0,fC.jsx)(zJt,{sessionId:e,transcript:t});let o=i.sessions.find(s=>s.id===i.activeId);return(0,fC.jsxs)(Ge,{sx:Kkn,children:[a&&o!==void 0&&(0,fC.jsx)(iXt,{session:o,lifecycle:n}),(0,fC.jsx)(KXt,{sessionId:i.activeId,sessions:i.sessions,sendInput:i.sendInput,children:(0,fC.jsx)(qXt,{session:o,sendPrDecision:r,children:(0,fC.jsx)(IJt,{...i})})})]})}var VJt=$(G(),1);function WJt({socket:e}){let t=(0,HJt.useMemo)(()=>({onRetry:e.retrySession,onRestart:e.restartSession,onDismiss:e.dismissSession,onSetAutoRun:e.setAutoRun,onSetAutoAdvance:e.setAutoAdvance}),[e.retrySession,e.restartSession,e.dismissSession,e.setAutoRun,e.setAutoAdvance]);return(0,VJt.jsx)(UJt,{lifecycle:t,sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onOutput:e.onOutput,sendInput:e.sendInput,sendResize:e.sendResize,viewingTranscriptSessionId:e.viewingTranscriptSessionId,transcript:e.transcript,sendPrDecision:e.sendPrDecision})}function qLe(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function GJt(e,t){let r=Math.max(0,e-t),n=Math.floor(r/86400),i=Math.floor(r%86400/3600),a=Math.floor(r%3600/60);return n>0?`${n}d ${i}h`:i>0?`${i}h ${a}m`:`${a}m`}function Zkn(e,t,r,n){let i=qLe(t,r,n);if(i!=null)return e/i}function dC(e,t,r,n){let i=Zkn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var G4={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};var Qkn={ok:"success.main",warn:"warning.main",over:"error.main"};function q4(e){return Qkn[e]}var PW=$(G(),1),Jkn={ok:"success",warn:"warning",over:"error"};function qJt({percentage:e,level:t}){return(0,PW.jsxs)(Ge,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,PW.jsx)(OO,{variant:"determinate",value:Math.min(100,e),color:Jkn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,PW.jsxs)(Ge,{sx:{minWidth:40,textAlign:"right",color:q4(t)},children:[Math.round(e),"%"]})]})}function jJt(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var e4n=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function jLe(e){return e4n.format(e)}var _ce=$(G(),1);function YJt({peak:e}){return(0,_ce.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,_ce.jsx)(Bn,{title:`Cycle started ${jLe(new Date(e.createdAt))}`,children:(0,_ce.jsx)("span",{children:jLe(new Date(e.resetsAt*1e3))})})})}var KJt=$(G(),1);function XJt(){return(0,KJt.jsx)(An,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function ZJt(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${kR(e.tokensUp)} \u2193 ${kR(e.tokensDown)}`}var Rg=$(G(),1);function QJt({peak:e,now:t}){let{label:r,seconds:n,tint:i}=G4[e.window],a=dC(e.usedPercentage,e.resetsAt,n,t);return(0,Rg.jsxs)(km,{sx:o=>({backgroundColor:i?o.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,Rg.jsxs)(Yn,{children:[r,e.resetDetected&&(0,Rg.jsx)(XJt,{})]}),(0,Rg.jsx)(Yn,{sx:{minWidth:160},children:(0,Rg.jsx)(qJt,{percentage:e.usedPercentage,level:a})}),(0,Rg.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:jJt(e)}),(0,Rg.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,Rg.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:ZJt(e)}),(0,Rg.jsx)(YJt,{peak:e})]})}var kce=$(Ae(),1);function yD(e){let[t,r]=(0,kce.useState)(()=>Math.floor(Date.now()/1e3));return(0,kce.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var Zl=$(G(),1);function JJt({peaks:e}){let t=yD(3e4);return(0,Zl.jsx)(i9,{component:ei,children:(0,Zl.jsxs)(fw,{size:"small",children:[(0,Zl.jsx)(a9,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,Zl.jsxs)(km,{children:[(0,Zl.jsx)(Yn,{children:"Window"}),(0,Zl.jsx)(Yn,{children:"Peak usage"}),(0,Zl.jsx)(Yn,{align:"right",children:(0,Zl.jsx)(Bn,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,Zl.jsx)("span",{children:"Avg context"})})}),(0,Zl.jsx)(Yn,{align:"right",children:(0,Zl.jsx)(Bn,{title:"Number of phase readings behind the average.",children:(0,Zl.jsx)("span",{children:"Phases"})})}),(0,Zl.jsx)(Yn,{align:"right",children:"Tokens spent"}),(0,Zl.jsx)(Yn,{align:"right",children:"Cycle reset"})]})}),(0,Zl.jsx)(dw,{children:e.map(r=>(0,Zl.jsx)(QJt,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var vD=$(Ae(),1);function eer(e,t){let r=(0,vD.useRef)(null),[n,i]=(0,vD.useState)();return(0,vD.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var pC=$(G(),1);function ter({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:a,height:o}=eer(e.length,n);return(0,pC.jsxs)(pC.Fragment,{children:[(0,pC.jsx)(Ge,{ref:a,sx:{minHeight:o},children:(0,pC.jsx)(JJt,{peaks:e})}),(0,pC.jsx)(Afe,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var YLe=$(G(),1),t4n=[{value:"all",label:"All"},{value:"five_hour",label:G4.five_hour.label},{value:"seven_day",label:G4.seven_day.label}];function rer({window:e,onChange:t}){return(0,YLe.jsx)(Jd,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter peaks by rate-limit window",children:t4n.map(r=>(0,YLe.jsx)(oc,{value:r.value,children:r.label},r.value))})}var LW=$(Ae(),1);var mC=$(Ae(),1);async function ner(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}function ier(e,t,r){let[n,i]=(0,mC.useState)([]),[a,o]=(0,mC.useState)(0),[s,l]=(0,mC.useState)(!1),[u,h]=(0,mC.useState)(!1),[f,d]=(0,mC.useState)(null);return(0,mC.useEffect)(()=>{let p=!1;return h(!0),ner(e,t,r).then(m=>{p||(i(m.rows),o(m.total),l(!0),h(!1))},m=>{p||(d(m instanceof Error?m:new Error(String(m))),h(!1))}),()=>{p=!0}},[e,t,r]),{rows:n,total:a,loaded:s,fetching:u,error:f}}var XLe=30;function aer(){let[e,t]=(0,LW.useState)(0),[r,n]=(0,LW.useState)("all"),i=ier(e,XLe,r),{total:a}=i;return(0,LW.useEffect)(()=>{if(a===0)return;let s=Math.ceil(a/XLe)-1;e>s&&t(s)},[e,a]),{...i,page:e,setPage:t,window:r,selectWindow:s=>{n(s),t(0)},pageSize:XLe}}var gC=$(G(),1);function oer(){let e=aer(),{window:t,total:r,error:n}=e;if(n)throw n;return(0,gC.jsxs)(Zp,{loading:!e.loaded,title:"Usage history",isEmpty:r===0&&t==="all",emptyMessage:"No usage peaks recorded yet.",children:[(0,gC.jsx)(rer,{window:t,onChange:e.selectWindow}),(0,gC.jsx)(Ge,{sx:{height:4,my:1},children:e.fetching&&(0,gC.jsx)(OO,{})}),t!=="all"&&r===0?(0,gC.jsxs)(rt,{color:"text.secondary",align:"center",sx:{py:6},children:["No ",G4[t].label," usage peaks recorded yet."]}):(0,gC.jsx)(ter,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var qa=$(G(),1);function r4n({socket:e}){return(0,qa.jsx)(EO,{maxWidth:"md",sx:{py:3,px:2},children:(0,qa.jsx)(oNt,{socket:e})})}function ser({socket:e}){return(0,qa.jsx)(Uw,{children:(0,qa.jsxs)(Cl,{element:(0,qa.jsx)(g$t,{socket:e}),children:[(0,qa.jsx)(Cl,{path:"sessions",element:(0,qa.jsx)(WJt,{socket:e})}),(0,qa.jsx)(Cl,{path:"backlog/*",element:(0,qa.jsx)(r4n,{socket:e})}),(0,qa.jsx)(Cl,{path:"news",element:(0,qa.jsx)(VYt,{})}),(0,qa.jsx)(Cl,{path:"usage",element:(0,qa.jsx)(oer,{})}),(0,qa.jsx)(Cl,{path:"backups",element:(0,qa.jsx)(C$t,{})}),(0,qa.jsx)(Cl,{path:"config",element:(0,qa.jsx)(Wzt,{})}),(0,qa.jsx)(Cl,{path:"diff",element:(0,qa.jsx)(dYt,{sessions:e.sessions,sendInput:e.sendInput})}),(0,qa.jsx)(Cl,{path:"file",element:(0,qa.jsx)(zYt,{})}),(0,qa.jsx)(Cl,{path:"*",element:(0,qa.jsx)(Bme,{to:"/sessions",replace:!0})})]})})}var Ice=$(Ae(),1);var Mce=$(Ae(),1);function ler(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var yC=$(G(),1),n4n={display:"flex",gap:1,alignItems:"center",minWidth:0},i4n={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},a4n={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},o4n={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function s4n(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function cer({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,yC.jsx)(xh,{dense:!0,sx:{py:0},children:e.map((i,a)=>{let{dir:o,basename:s}=s4n(i);return(0,yC.jsxs)(Ui,{selected:a===t,onMouseEnter:()=>r(a),onClick:()=>n(i),sx:n4n,children:[(0,yC.jsx)(KI,{path:i}),(0,yC.jsxs)(Ge,{sx:i4n,children:[(0,yC.jsx)(rt,{component:"span",sx:a4n,children:s}),(0,yC.jsx)(rt,{component:"span",color:"text.secondary",sx:o4n,children:o})]})]},i)})})}var Ece=$(G(),1),l4n={maxHeight:420,overflowY:"auto"},c4n={px:2,py:2,fontSize:13};function uer({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Ece.jsx)(Ge,{sx:l4n,children:e?(0,Ece.jsx)(rt,{color:"text.secondary",sx:c4n,children:e}):(0,Ece.jsx)(cer,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var her=$(G(),1);function Rce({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:a}){return(0,her.jsx)(Xa,{autoFocus:a,inputRef:e,value:t,onChange:o=>r(o.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var Ace=$(Ae(),1),fer={files:[],loading:!1,error:!1};function der(e,t){let[r,n]=(0,Ace.useState)(fer);return(0,Ace.useEffect)(()=>{if(!e){n(fer);return}let i=!1;return n(o=>({...o,loading:!0})),(async()=>{try{let o=await fetch(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`);if(!o.ok)throw new Error(`HTTP ${o.status}`);let s=await o.json();if(i)return;n({files:Array.isArray(s.files)?s.files:[],loading:!1,error:!1})}catch{i||n({files:[],loading:!1,error:!0})}})(),()=>{i=!0}},[e,t]),r}var Pce=$(Ae(),1);function Lce(e,t,r,n){let[i,a]=(0,Pce.useState)(0);return(0,Pce.useEffect)(()=>{a(0)},[t]),{highlight:i,setHighlight:a,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&a(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&a(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var MW=$(G(),1),u4n={mt:6,alignSelf:"flex-start"};function per({onClose:e}){let{selectedCwd:t}=Io(),[r,n]=(0,Mce.useState)(""),i=der(t,r),a=aa(),o=(0,Mce.useRef)(null),s=d=>a(`/file?path=${encodeURIComponent(d)}`),{highlight:l,setHighlight:u,onKeyDown:h}=Lce(i.files,r,s,e),f=d=>{s(d),e()};return(0,MW.jsxs)(yh,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:u4n},transition:{onEntered:()=>o.current?.focus()}},children:[(0,MW.jsx)(Rce,{autoFocus:!0,inputRef:o,value:r,onChange:n,onKeyDown:h,placeholder:"Search files by name..."}),(0,MW.jsx)(uer,{message:ler(t,r,i),files:i.files,highlight:l,onHighlight:u,onSelect:f})]})}var ger=$(Ae(),1);var mer=!0;function yer(e){(0,ger.useEffect)(()=>{let t=r=>{wce(r)&&(r.preventDefault(),e())};return globalThis.addEventListener("keydown",t,mer),()=>globalThis.removeEventListener("keydown",t,mer)},[e])}var ber=$(G(),1);function ver(){let[e,t]=(0,Ice.useState)(!1);return yer((0,Ice.useCallback)(()=>t(!0),[])),e?(0,ber.jsx)(per,{onClose:()=>t(!1)}):null}var Dce=$(G(),1);function xer({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Dce.jsx)(Th,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Dce.jsx)(ko,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Dce.jsx)(Mr,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var Oce=$(G(),1);function Ter({reconnecting:e}){return(0,Oce.jsx)(Th,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Oce.jsx)(ko,{severity:"info",variant:"filled",icon:(0,Oce.jsx)(ra,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var ix=$(G(),1);function Ser({socket:e,onViewLaunchedSession:t}){return(0,ix.jsxs)(ix.Fragment,{children:[(0,ix.jsx)(ver,{}),(0,ix.jsx)(Ter,{reconnecting:e.reconnecting}),(0,ix.jsx)(uf,{error:e.error,onClose:e.clearError}),(0,ix.jsx)(xer,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var bD=$(G(),1),h4n=["/sessions","/backlog","/news"];function Cer(){let e=Ts(),t=aa(),r=h4n.findIndex(i=>e.pathname.startsWith(i)),n=i=>{e.pathname!==i&&t(i)};return(0,bD.jsxs)(s9,{value:r===-1?0:r,textColor:"inherit",indicatorColor:"secondary",children:[(0,bD.jsx)(Ax,{label:"Sessions",onClick:()=>n("/sessions")}),(0,bD.jsx)(Ax,{label:"Backlog",onClick:()=>n("/backlog")}),(0,bD.jsx)(Ax,{label:"News",onClick:()=>n("/news")})]})}var Bce=$(Ae(),1),Nce=$(G(),1),f4n={color:"inherit"};function wer({cwd:e}){let[t,r]=(0,Bce.useState)(null);return(0,Bce.useEffect)(()=>{if(!e){r(null);return}let n=!1;return(async()=>{try{let a=await(await fetch(`/api/github-url?cwd=${encodeURIComponent(e)}`)).json();n||r(a?.url??null)}catch{n||r(null)}})(),()=>{n=!0}},[e]),t?(0,Nce.jsx)(Bn,{title:"Open in GitHub",children:(0,Nce.jsx)(Rr,{sx:f4n,onClick:()=>window.open(t,"_blank"),children:(0,Nce.jsx)(Moe,{})})}):null}var ker=$(Ae(),1);var Fce=$(G(),1);function _er({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let a=dC(i,e?.resets_at,t,n),o=e?.resets_at!=null?GJt(e.resets_at,n):r;return(0,Fce.jsxs)(Ge,{component:"span",children:[(0,Fce.jsxs)(Ge,{component:"span",sx:{color:q4(a)},children:[Math.round(i),"%"]})," ",(0,Fce.jsxs)(Ge,{component:"span",sx:{color:"text.secondary"},children:["(",o,")"]})]})}var vC=$(G(),1);function Eer({rateLimits:e}){let t=yD(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(n=>n.window?.used_percentage!=null);return(0,vC.jsx)(vC.Fragment,{children:r.map((n,i)=>(0,vC.jsxs)(ker.Fragment,{children:[i>0?(0,vC.jsx)(Ge,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,vC.jsx)(_er,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}function Rer(e,t,r,n){let i=qLe(t,r,n);if(i==null)return{kind:"unprojectable"};let a=dC(e,t,r,n);return a==="over"?{kind:"over"}:a==="warn"?{kind:"step",level:"over",pct:100*i}:{kind:"step",level:"warn",pct:75*i}}var Ag=$(G(),1);function Aer({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let a=dC(t,r,n,i),o=Rer(t,r,n,i);return(0,Ag.jsxs)(Ge,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,Ag.jsx)(Ge,{component:"span",sx:{minWidth:18},children:e}),(0,Ag.jsxs)(Ge,{component:"span",sx:{color:q4(a)},children:[Math.round(t),"%"]}),o.kind==="step"?(0,Ag.jsxs)(Ag.Fragment,{children:[(0,Ag.jsx)(Ge,{component:"span",sx:{opacity:.6},children:"\u2192"}),(0,Ag.jsxs)(Ge,{component:"span",sx:{color:q4(o.level)},children:[Math.round(o.pct),"%"]})]}):(0,Ag.jsx)(Ge,{component:"span",sx:{opacity:.6},children:o.kind==="over"?"already over":"no projection yet"})]})}function Per(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var IW=$(G(),1),KLe="Claude account usage (5h / 7d windows) \u2014 view history";function Ler({rateLimits:e}){let t=yD(3e4);return(0,IW.jsxs)(Ge,{sx:{fontFamily:"monospace",fontSize:12},children:[Per(e).map(r=>(0,IW.jsx)(Aer,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label)),(0,IW.jsx)(Ge,{sx:{mt:.5,opacity:.6},children:KLe})]})}var DW=$(G(),1),d4n={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13};function p4n(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Mer({rateLimits:e}){let t=p4n(e);return(0,DW.jsx)(Bn,{title:t?(0,DW.jsx)(Ler,{rateLimits:e}):KLe,children:(0,DW.jsx)(Ao,{component:Mm,to:"/usage",underline:"hover",color:"inherit",sx:d4n,children:t?(0,DW.jsx)(Eer,{rateLimits:e}):"Usage"})})}var Ier=$(G(),1),Der=_t((0,Ier.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh");var ox=$(Ae(),1);var xD={target:"both",label:"Restart daemon",message:"This restarts the sessions daemon and the web server, then reloads the page once the server is back."};function Oer(e){return fetch(`/api/restart?target=${e}`,{method:"POST"})}var ax=$(Ae(),1);var m4n="/api/session-layout";async function g4n(){try{return(await fetch(m4n,{cache:"no-store"})).ok}catch{return!1}}async function Ner(e){let t=0;for(;!e();){if(t=await g4n()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function y4n(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function Ber(e,t,r){let n=(0,ax.useRef)(y4n()),i=(0,ax.useRef)(r);i.current=r,(0,ax.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,Ner(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let a=(0,ax.useCallback)(()=>{n.current.abandoned=!0},[]),o=(0,ax.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,ax.useEffect)(()=>a,[a]),{arm:o,abandon:a}}var v4n=15e3;function TD(e,t,r){let[n,i]=(0,ox.useState)(!1),[a,o]=(0,ox.useState)(null),s=(0,ox.useRef)(void 0),{arm:l,abandon:u}=Ber(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,ox.useEffect)(()=>()=>clearTimeout(s.current),[]);let h=(0,ox.useCallback)(async()=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),o("Web server did not come back")},v4n);try{if(!(await Oer(e)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),o("Failed to restart web server")}},[e,l,u]);return{pending:n,error:a,clearError:()=>o(null),restart:h}}var Pg=$(G(),1),b4n={color:"inherit",mr:1.5};function Fer({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=TD("webserver",e);return(0,Pg.jsxs)(Pg.Fragment,{children:[(0,Pg.jsx)(Bn,{title:"Restart web server",children:(0,Pg.jsx)("span",{children:(0,Pg.jsx)(Rr,{sx:b4n,disabled:t,onClick:i,children:t?(0,Pg.jsx)(ra,{size:24}):(0,Pg.jsx)(Der,{})})})}),(0,Pg.jsx)(uf,{error:r,onClose:n})]})}var SD=$(Ae(),1);var $ce=$(Ae(),1);var zce=$(G(),1);function $er({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let a=(0,$ce.useRef)(null);return(0,$ce.useEffect)(()=>{r&&a.current?.scrollIntoView({block:"nearest"})},[r]),(0,zce.jsxs)(Ui,{ref:a,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:[OW(e),LS(e)&&(0,zce.jsx)(wS,{})]})}var ZLe=$(G(),1);function zer({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,ZLe.jsx)(xh,{dense:!0,children:e.map((a,o)=>(0,ZLe.jsx)($er,{cwd:a,selected:a===t,highlighted:o===r,onHover:()=>n(o),onSelect:()=>i(a)},a))})}var NW=$(G(),1);function OW(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var x4n={...OS};function Uer({repos:e,selected:t,onSelect:r,close:n}){let[i,a]=(0,SD.useState)(""),o=(0,SD.useRef)(null);(0,SD.useEffect)(()=>{o.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:h,onKeyDown:f}=Lce(l,s,r,n);return(0,NW.jsxs)(ei,{elevation:4,sx:x4n,children:[(0,NW.jsx)(Rce,{inputRef:o,value:i,onChange:a,onKeyDown:f,placeholder:"Filter repos..."}),(0,NW.jsx)(zer,{repos:l,selected:t,highlight:u,onHighlight:h,onSelect:p=>{r(p),n()}})]})}var CD=$(G(),1);function T4n(e){return e?LS(e)?(0,CD.jsxs)("span",{style:{display:"flex",flexGrow:1,alignItems:"center",justifyContent:"space-between",gap:6,minWidth:0},children:[OW(e),(0,CD.jsx)(wS,{})]}):OW(e):"Select repo..."}function Her({repos:e,selected:t,onSelect:r}){return(0,CD.jsx)(Ay,{label:T4n(t),children:n=>(0,CD.jsx)(Uer,{repos:e,selected:t,onSelect:r,close:n})})}var Wer=$(Ae(),1);var QLe=$(G(),1);function Uce({disabled:e,onSubmit:t,label:r="prompt",allowEmpty:n=!1}){let[i,a]=(0,Wer.useState)("");return(0,QLe.jsx)(Ay,{label:r,disabled:e,children:o=>(0,QLe.jsx)(gI,{value:i,onChange:a,onSubmit:()=>{!n&&!i.trim()||(t(i),a(""),o())}})})}var j4=$(G(),1),S4n={textTransform:"none",fontSize:11,fontWeight:600};function Ver({onSelect:e,disabled:t=!1,children:r}){return(0,j4.jsxs)(j4.Fragment,{children:[TAe.filter(n=>n.nav&&n.prompt).map(n=>(0,j4.jsx)(Uce,{label:n.label,allowEmpty:!0,disabled:t,onSubmit:i=>e(n.value,i)},n.value)),r,TAe.filter(n=>n.nav&&!n.prompt).map(n=>(0,j4.jsx)(Mr,{size:"small",variant:"outlined",disabled:t,onClick:()=>e(n.value),sx:S4n,children:n.label},n.value))]})}var JLe=$(Ae(),1);var Xy=$(G(),1),Ger={"& .MuiFormControlLabel-label":{fontSize:12}};function C4n({value:e,onChange:t}){return(0,Xy.jsxs)(Sfe,{row:!0,value:e,onChange:r=>t(r.target.value),children:[(0,Xy.jsx)(Kd,{value:"claude",control:(0,Xy.jsx)(pq,{size:"small"}),label:"claude",sx:Ger}),(0,Xy.jsx)(Kd,{value:"pi",control:(0,Xy.jsx)(pq,{size:"small"}),label:"pi",sx:Ger})]})}function qer({cwd:e,disabled:t,onCreate:r,onCreatePi:n}){let{exposePiActions:i}=Kae(),[a,o]=(0,JLe.useState)(""),[s,l]=(0,JLe.useState)("claude");return(0,Xy.jsx)(Ay,{label:"prompt",disabled:t,children:u=>(0,Xy.jsx)(gI,{value:a,onChange:o,header:i?(0,Xy.jsx)(C4n,{value:s,onChange:l}):void 0,onSubmit:()=>{(s==="pi"?n:r)(a,e),o(""),l("claude"),u()}})})}var Y4=$(G(),1);function jer({cwd:e,disabled:t,onCreate:r,onCreateDesign:n,onCreatePi:i}){return(0,Y4.jsxs)(Y4.Fragment,{children:[(0,Y4.jsx)(qer,{cwd:e,disabled:t,onCreate:r,onCreatePi:i}),(0,Y4.jsx)(Uce,{label:"design",allowEmpty:!0,disabled:t,onSubmit:a=>n(a,e)})]})}var etr=$(Ae(),1);var BW=$(Ae(),1);function Hce(e){let[t,r]=(0,BW.useState)([]),[n,i]=(0,BW.useState)(!0);return(0,BW.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),fetch(`/api/pr-list?cwd=${encodeURIComponent(e)}`).then(o=>o.json()).then(o=>{a||(r(Array.isArray(o?.prs)?o.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e]),{prs:t,loading:n}}var Md=$(G(),1);function Xer({cwd:e,onPick:t}){let{prs:r,loading:n}=Hce(e);return(0,Md.jsx)(ei,{elevation:4,sx:{...OS,left:"auto",width:320},children:n?(0,Md.jsx)(Yer,{text:"Loading open PRs\u2026"}):r.length===0?(0,Md.jsx)(Yer,{text:"No open PRs"}):(0,Md.jsx)(xh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,Md.jsx)(w4n,{pr:i,onPick:t},i.number))})})}function w4n({pr:e,onPick:t}){return(0,Md.jsx)(Ui,{onMouseDown:r=>r.preventDefault(),onClick:()=>t(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,Md.jsxs)(lr,{spacing:.25,sx:{minWidth:0},children:[(0,Md.jsx)(rt,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,Md.jsxs)(rt,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",c2(e.createdAt)]})]})})}function Yer({text:e}){return(0,Md.jsx)(Ge,{sx:{p:1.5},children:(0,Md.jsx)(rt,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var Zer=$(G(),1);function Ker({cwd:e,onPick:t}){return(0,Zer.jsx)(Xer,{cwd:e,onPick:t})}var Qer=$(Ae(),1);var Id=$(G(),1);function Jer({pr:e,onSelect:t,onCancel:r}){let[n,i]=(0,Qer.useState)(ZU);return(0,Id.jsxs)(yh,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,Id.jsxs)(Xd,{sx:{fontSize:15},children:["Review #",e.number,": ",e.title]}),(0,Id.jsx)(Yd,{sx:{px:0},children:(0,Id.jsxs)(xh,{children:[Ioe.map(({label:a,args:o})=>(0,Id.jsx)(Ui,{onClick:()=>t([...o,...Doe(n)]),children:a},a)),(0,Id.jsx)(bl,{}),(0,Id.jsx)(Ooe,{value:n,onChange:i}),(0,Id.jsx)(bl,{}),(0,Id.jsx)(Ui,{onClick:()=>t(["review-pr-comments"]),children:"Address Comments"})]})}),(0,Id.jsx)(jd,{children:(0,Id.jsx)(Mr,{onClick:r,children:"Cancel"})})]})}var bC=$(G(),1);function ttr({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=Hce(e),[a,o]=(0,etr.useState)(null);return i||n.length===0?null:(0,bC.jsxs)(bC.Fragment,{children:[(0,bC.jsx)(Ay,{label:"review",disabled:t,children:s=>(0,bC.jsx)(Ker,{cwd:e,onPick:l=>{o(l),s()}})}),a&&(0,bC.jsx)(Jer,{pr:a,onSelect:s=>{r(a,s),o(null)},onCancel:()=>o(null)})]})}var wD=$(G(),1);function rtr({onStartRun:e,cwd:t}){let r=Uoe(t);return!t||r.length===0?null:(0,wD.jsx)(Ay,{label:"server",children:n=>(0,wD.jsx)(ei,{elevation:4,sx:{...OS,left:"auto",width:200},children:(0,wD.jsx)(xh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,wD.jsx)(Ui,{onMouseDown:a=>a.preventDefault(),onClick:()=>{e(i.name,t),n()},sx:{py:.75},children:(0,wD.jsx)(rt,{sx:{fontSize:13},children:i.name})},i.name))})})})}var X4=$(G(),1);function ntr({onCreate:e,onCreateDesign:t,onCreatePi:r,onCreateAssist:n,onStartRun:i}){let{selectedCwd:a}=Io(),o=!a;return(0,X4.jsxs)(lr,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:[(0,X4.jsxs)(Ver,{disabled:o,onSelect:(s,l)=>FBt(s,a,n,()=>{},l),children:[(0,X4.jsx)(jer,{cwd:a,disabled:o,onCreate:e,onCreateDesign:t,onCreatePi:r}),(0,X4.jsx)(ttr,{cwd:a,disabled:o,onSelect:(s,l)=>n([...l,String(s.number)],a,Noe(s))})]}),(0,X4.jsx)(rtr,{onStartRun:i,cwd:a})]})}var um=$(G(),1),_4n={minHeight:48,pl:1,pr:14},k4n={width:240,ml:2};function itr({socket:e,selection:t}){return(0,um.jsxs)(pw,{variant:"dense",disableGutters:!0,sx:_4n,children:[(0,um.jsx)(Fer,{reconnecting:e.reconnecting}),(0,um.jsx)(Cer,{}),(0,um.jsx)(Ge,{sx:k4n,children:(0,um.jsx)(Her,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd})}),(0,um.jsxs)(Ge,{sx:{display:"flex",ml:1,mr:2},children:[(0,um.jsx)($oe,{cwd:t.selectedCwd}),(0,um.jsx)(wer,{cwd:t.selectedCwd})]}),(0,um.jsx)(ntr,{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreatePi:e.createPiSession,onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,um.jsx)(Mer,{rateLimits:e.rateLimits})]})}var Gce=$(Ae(),1);var atr=$(G(),1),otr=_t((0,atr.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt");var str=$(G(),1),ltr=_t((0,str.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4");var ctr=$(G(),1),utr=_t((0,ctr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7");var eMe=$(G(),1);function htr({mode:e}){return e==="dark"?(0,eMe.jsx)(utr,{fontSize:"small"}):(0,eMe.jsx)(ltr,{fontSize:"small"})}var uh=$(G(),1);function ftr({mode:e,onToggleColorMode:t,onRestart:r,onUpdate:n}){return[(0,uh.jsxs)(Ui,{onClick:t,children:[(0,uh.jsx)(BO,{children:(0,uh.jsx)(htr,{mode:e})}),(0,uh.jsx)($O,{children:"Toggle dark mode"})]},"color-mode"),(0,uh.jsx)(bl,{},"restart-divider"),(0,uh.jsxs)(Ui,{onClick:r,children:[(0,uh.jsx)(BO,{children:(0,uh.jsx)(_oe,{fontSize:"small"})}),(0,uh.jsx)($O,{children:xD.label})]},"restart"),(0,uh.jsxs)(Ui,{onClick:n,children:[(0,uh.jsx)(BO,{children:(0,uh.jsx)(otr,{fontSize:"small"})}),(0,uh.jsx)($O,{children:"Update assist"})]},"update")]}var K4=$(G(),1);function dtr({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:a}=TD(xD.target,e);return(0,K4.jsxs)(K4.Fragment,{children:[(0,K4.jsx)(Oo,{title:xD.label,message:xD.message,confirmLabel:"Restart",busy:r,onConfirm:()=>{a()},onCancel:t}),(0,K4.jsx)(uf,{error:n,onClose:i})]})}var mtr=$(G(),1);function ptr({onConfirm:e,onClose:t}){return(0,mtr.jsx)(Oo,{title:"Update assist",message:"This starts a new session running 'assist update'. Its output will appear in the terminal.",confirmLabel:"Update",onConfirm:()=>{e(),t()},onCancel:t})}var Z4=$(G(),1);function gtr({restarting:e,reconnecting:t,onCloseRestart:r,updating:n,onCloseUpdate:i}){let{launchAssist:a,armUpdateReload:o}=dp();return(0,Z4.jsxs)(Z4.Fragment,{children:[e&&(0,Z4.jsx)(dtr,{reconnecting:t,onClose:r}),n&&(0,Z4.jsx)(ptr,{onConfirm:()=>{o(),a(["update"])},onClose:i})]})}var ytr=$(G(),1),vtr=_t((0,ytr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var btr=$(G(),1),xtr=_t((0,btr.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var Wce=$(G(),1);function Ttr(){let e=aa();return(0,Wce.jsx)(Bn,{title:"Config",children:(0,Wce.jsx)(Rr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:()=>e("/config"),children:(0,Wce.jsx)(xtr,{fontSize:"small"})})})}var tMe=$(G(),1),Str=_t([(0,tMe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,tMe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var FW="0.524.0";var Vce=$(Ae(),1),rMe=(0,Vce.createContext)(null);function Ctr(){return(0,Vce.useContext)(rMe)}var xC=$(G(),1);function wtr(){let e=Ctr();return FW?(0,xC.jsxs)(xC.Fragment,{children:[(0,xC.jsxs)(rt,{variant:"caption",sx:{opacity:.4,userSelect:"none",lineHeight:1},children:["v",FW]}),e&&e!==FW&&(0,xC.jsx)(Bn,{title:`Daemon is running v${e}, but this page was served by v${FW}. Restart the daemon to match.`,children:(0,xC.jsx)(Str,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})]}):null}var Q4=$(G(),1);function _tr({open:e,onOpen:t}){return(0,Q4.jsxs)(Ge,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,Q4.jsx)(wtr,{}),(0,Q4.jsx)(Ttr,{}),(0,Q4.jsx)(Rr,{onClick:r=>t(r.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,Q4.jsx)(vtr,{fontSize:"small"})})]})}var TC=$(G(),1);function ktr({mode:e,toggle:t,reconnecting:r}){let[n,i]=(0,Gce.useState)(null),[a,o]=(0,Gce.useState)(!1),[s,l]=(0,Gce.useState)(!1),u=!!n,h=()=>i(null);return(0,TC.jsxs)(TC.Fragment,{children:[(0,TC.jsx)(_tr,{open:u,onOpen:i}),(0,TC.jsx)(Zd,{anchorEl:n,open:u,onClose:h,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:ftr({mode:e,onToggleColorMode:()=>{t(),h()},onRestart:()=>{h(),o(!0)},onUpdate:()=>{h(),l(!0)}})}),(0,TC.jsx)(gtr,{restarting:a,reconnecting:r,onCloseRestart:()=>o(!1),updating:s,onCloseUpdate:()=>l(!1)})]})}var Atr=$(Ae(),1);var Rtr=$(G(),1);function Etr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:a}=e.existing,o=Xp(i),s=a?` on port ${a}`:"",l=o?` in ${o}`:"";return(0,Rtr.jsx)(Oo,{title:"Replace running server?",message:`"${n}" is already serving${s}${l}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var qce=$(G(),1);function Ptr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:a,startRun:o,discardSession:s}=e,l=(0,Atr.useMemo)(()=>({onStop:a,onStart:o,onDiscard:s}),[a,o,s]),u=()=>{r&&(r.runName?o(r.runName,r.cwd,!0,r.launchedFrom):r.sessionId&&i(r.sessionId,!0),n())};return(0,qce.jsxs)(gAe.Provider,{value:l,children:[t,r&&(0,qce.jsx)(Etr,{conflict:r,onConfirm:u,onCancel:n})]})}var J4=$(Ae(),1);function Ltr(e,t){let r=new Set,n=[];for(let i of t){if(i.cwdMissing)continue;let a=_S(i),o=t4(i);!a||!o||r.has(a)||(r.add(a),n.push(o))}return e&&!r.has(noe(e,t))&&n.unshift(e),n}function Mtr(e,t){let[r,n]=(0,J4.useState)(e);(0,J4.useEffect)(()=>{e&&!r&&n(e)},[e,r]);let i=(0,J4.useMemo)(()=>Ltr(e,t),[e,t]);return(0,J4.useMemo)(()=>({repos:i,selectedCwd:r,setSelectedCwd:n}),[i,r])}var Yce=$(Ae(),1);var SC=$(Ae(),1);var Itr=$(Ae(),1),jce="assist:reloaded-after-update";function Dtr(e){(0,Itr.useEffect)(()=>{globalThis.sessionStorage?.getItem(jce)&&(globalThis.sessionStorage.removeItem(jce),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}var Lg=$(Ae(),1);function Otr(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function Ntr(e,t){let[r,n]=(0,Lg.useState)(!1),[i,a]=(0,Lg.useState)(!1),o=(0,Lg.useRef)(!1),s=(0,Lg.useRef)(e);s.current=e;let l=(0,Lg.useRef)(new Set),u=(0,Lg.useCallback)(()=>{o.current=!1,a(!1),l.current=new Set(s.current.filter(Otr).map(h=>h.id)),n(!0)},[]);return(0,Lg.useEffect)(()=>{if(!r||i)return;if(t){o.current=!0;return}if(!o.current)return;e.some(f=>Otr(f)&&!l.current.has(f.id))&&a(!0)},[r,i,t,e]),{arm:u,completed:i}}function Btr(e,t,r,n){let{arm:i,completed:a}=Ntr(e,t),o=(0,SC.useRef)(!1),s=(0,SC.useCallback)(()=>{globalThis.sessionStorage?.setItem(jce,"1")},[]),{error:l,restart:u}=TD("webserver",t,s);return Dtr(r),(0,SC.useEffect)(()=>{l&&n(l)},[l,n]),(0,SC.useEffect)(()=>{!a||o.current||(o.current=!0,u())},[a,u]),{armUpdateReload:(0,SC.useCallback)(()=>{o.current=!1,i()},[i])}}function Ftr(e){let{armUpdateReload:t}=Btr(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,Yce.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,t]),n=aa(),i=(0,Yce.useCallback)(a=>{e.selectSession(a),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var $tr=$(Ae(),1);function Xce(e,t,r){if(!e)return;let n=t.find(a=>a.id===e);if(n)return t4(n);let i=r.find(a=>a.sessionId===e);return i&&t4(i)}function ztr(e,t,r,n){let i=Xce(e,t,r);(0,$tr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var Kce=$(Ae(),1);function Utr(e,t){let r=(0,Kce.useRef)(new Map);(0,Kce.useEffect)(()=>{let n=new Set;for(let{id:i,status:a}of e)n.add(i),r.current.get(i)!==a&&(r.current.set(i,a),console.debug(`[sessions] render session ${i} status=${a}`),t({type:"ui-status",sessionId:i,status:a}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var Wtr=$(Ae(),1);function Htr(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session")};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r}}return null}function Vtr(e,t){return(0,Wtr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=Htr(r);i&&t(i)},[e,t])}var Ky=$(Ae(),1);function Gtr(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r})}function qtr(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,design:!0})}function jtr(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,harness:"pi"})}function Ytr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function Xtr(e){return(t,r,n)=>e({type:"resume",sessionId:t,cwd:r,name:n})}function Ktr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function Ztr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function Qtr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function Jtr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function err(e){return t=>e({type:"stop",sessionId:t})}function trr(e){return(t,r,n,i)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i})}function rrr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function nrr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function irr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function arr(e){return(t,r)=>e({type:"input",sessionId:t,data:r})}function orr(e){return(t,r,n)=>e({type:"resize",sessionId:t,cols:r,rows:n})}function srr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function lrr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var e3=$(Ae(),1);function crr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t})}function urr(e){return{createSession:(0,e3.useMemo)(()=>Gtr(e),[e]),createSessionInStream:(0,e3.useMemo)(()=>crr(e),[e]),createDesignSession:(0,e3.useMemo)(()=>qtr(e),[e]),createPiSession:(0,e3.useMemo)(()=>jtr(e),[e]),createAssistSession:(0,e3.useMemo)(()=>Ytr(e),[e]),resumeSession:(0,e3.useMemo)(()=>Xtr(e),[e])}}var $W=$(Ae(),1);function hrr(e,t){let r=(0,$W.useCallback)((o,s)=>{Ktr(e,t.current)(o,s)},[e,t]),n=(0,$W.useCallback)(o=>{Ztr(e,t.current)(o)},[e,t]),i=(0,$W.useCallback)(o=>{Qtr(e,t.current)(o)},[e,t]),a=(0,$W.useCallback)(o=>{Jtr(e,t.current)(o)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:a}}function frr(e,t,r){let n={...urr(e),sendInput:(0,Ky.useMemo)(()=>arr(e),[e]),sendResize:(0,Ky.useMemo)(()=>orr(e),[e]),sendPrDecision:(0,Ky.useMemo)(()=>lrr(e),[e]),setAutoRun:(0,Ky.useMemo)(()=>rrr(e),[e]),setAutoAdvance:(0,Ky.useMemo)(()=>nrr(e),[e]),setStarred:(0,Ky.useMemo)(()=>irr(e),[e]),stopSession:(0,Ky.useMemo)(()=>err(e),[e]),startRun:(0,Ky.useMemo)(()=>trr(e),[e])},i=(0,Ky.useMemo)(()=>srr(t.current,r.current),[t,r]);return{...n,...hrr(e,t),onOutput:i}}var Zce=$(Ae(),1);function drr(e,t,r){let n=(0,Zce.useCallback)(o=>{r(o),e({type:"fetch-transcript",sessionId:o})},[e,r]),i=(0,Zce.useCallback)(()=>{r(null)},[r]),a=(0,Zce.useCallback)(o=>{r(null),t(o)},[t,r]);return{viewTranscript:n,clearTranscript:i,selectSession:a}}var Mg=$(Ae(),1);var mrr=$(Ae(),1);function prr(e,t,r=null){return t!==null?e.some(n=>n.id===t)?t:e[0]?.id??null:r&&e.some(n=>n.id===r)?r:e[0]?.id??null}function grr(e,t,r){let n=Ts().pathname,i=n.startsWith("/backlog")||n.startsWith("/usage");(0,mrr.useEffect)(()=>{if(i){t(null);return}t(a=>prr(e,a,r))},[e,t,r,i])}var nMe=$(Ae(),1);function yrr(){let[e,t]=(0,nMe.useState)(null),[r,n]=(0,nMe.useState)(null);return{daemonActiveId:e,setDaemonActiveId:t,daemonVersion:r,setDaemonVersion:n}}var t3=$(Ae(),1);function vrr(e,t){if(!t.some(n=>e.has(n)))return e;let r=new Set(e);for(let n of t)r.delete(n);return r}function brr(e,t){let r=[];for(let n of t){let i=e.get(n.id);i!==void 0&&i!==n.startedAt&&r.push(n.id)}return r}function xrr(){let[e,t]=(0,t3.useState)(new Set),r=(0,t3.useRef)(new Map),n=(0,t3.useCallback)(a=>{t(o=>o.has(a)?o:new Set(o).add(a))},[]),i=(0,t3.useCallback)(a=>{let o=brr(r.current,a);r.current=new Map(a.map(s=>[s.id,s.startedAt])),o.length&&t(s=>vrr(s,o))},[]);return{initialized:e,markInitialized:n,syncSessions:i}}var CC=$(Ae(),1);function Trr(){let[e,t]=(0,CC.useState)(null),[r,n]=(0,CC.useState)(null),[i,a]=(0,CC.useState)(null),o=(0,CC.useCallback)(()=>t(null),[]),s=(0,CC.useCallback)(()=>n(null),[]),l=(0,CC.useCallback)(()=>a(null),[]);return{error:e,setError:t,clearError:o,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:a,clearServerConflict:l}}var Zy=$(Ae(),1);function Srr(e,t){return[...e,{...t,windows:LS(t.cwd),status:"launching"}]}function Qce(e){return e.find(t=>t.status==="launching")}function Crr(e){let t=Qce(e);return t?e.filter(r=>r.id!==t.id):e}function wrr(e,t){let r=Qce(e);return r?iMe(e,r.id,t):e}function iMe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function _rr(e,t){return e.filter(r=>r.id!==t)}var krr=$(Ae(),1);var E4n=6e4,R4n="Launch timed out \u2014 the session did not start.";function Err(e,t){(0,krr.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(a=>iMe(a,i.id,R4n)),Math.max(0,E4n-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Rrr(){let[e,t]=(0,Zy.useState)([]),r=(0,Zy.useRef)([]),n=(0,Zy.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,Zy.useCallback)(l=>{n(u=>Srr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),a=(0,Zy.useCallback)(()=>{let l=Qce(r.current);return n(Crr),l?.named?l.title:void 0},[n]),o=(0,Zy.useCallback)(l=>n(u=>wrr(u,l)),[n]),s=(0,Zy.useCallback)(l=>n(u=>_rr(u,l)),[n]);return Err(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:a,failPendingLaunch:o,dismissPendingLaunch:s}}var Arr=$(Ae(),1);function Prr(e,t){return(0,Arr.useCallback)(r=>{e(r),t(r)},[e,t])}var wC=$(Ae(),1);function Lrr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function Mrr(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function Irr(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function Drr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom})}function Orr(e,t){let r=new Set(t.map(i=>i.id)),n=null;for(let i of Object.values(e))r.has(i)&&(n=i);return n}function Nrr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd);let n=e.active??{};t.setDaemonActiveId(Orr(n,r))}function Brr(e,t){switch(e.type){case"sessions":Nrr(e,t);break;case"created":Mrr(e,t);break;case"history":t.setHistory(e.sessions);break;case"transcript":t.setTranscript({sessionId:e.sessionId,messages:e.messages});break;case"hello":t.setDaemonVersion(e.version);break;case"error":{let r=e.message;t.setError(r),t.failPendingLaunch(r);break}case"run-conflict":Drr(e,t);break;case"limits":t.setRateLimits(e.rateLimits);break;case"clear":Lrr(e,t);break;case"output":Irr(e,t);break}}function Frr(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",n=new WebSocket(`${r}//${location.host}/ws`);return n.onopen=()=>{t.onOpen?.(),n.send(JSON.stringify({type:"hello"})),n.send(JSON.stringify({type:"history"}))},n.onmessage=i=>{Brr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function $rr(e,t,r,n){let i=!1,a,o=0,s=!1,l=()=>{i||t(Frr(e,{onOpen:()=>{s&&r(),s=!1,n(!1),o=0},onClose:()=>{if(i)return;s=!0,n(!0);let u=Math.min(300*2**o,2e3);o+=1,a=setTimeout(l,u)}}))};return l(),()=>{i=!0,a&&clearTimeout(a)}}function zrr(e){let t=(0,wC.useRef)(null),[r,n]=(0,wC.useState)(!1),{handleSessions:i,markInitialized:a,buffers:o,handlers:s}=e;(0,wC.useEffect)(()=>{let u=()=>{o.current?.clear();let f=s.current;if(f)for(let d of f.values())d("\x1Bc")},h=$rr({...e,setSessions:i},f=>{t.current=f},u,n);return()=>{h(),t.current?.close()}},[i,a,o,s]);let l=(0,wC.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function Urr(){let[e,t]=(0,Mg.useState)([]),[r,n]=(0,Mg.useState)([]),[i,a]=(0,Mg.useState)(null),o=yrr(),[s,l]=(0,Mg.useState)(null),[u,h]=(0,Mg.useState)(null),[f,d]=(0,Mg.useState)(""),p=Trr(),m=Rrr(),[g,y]=(0,Mg.useState)(null),{initialized:v,markInitialized:b,syncSessions:x}=xrr(),C=(0,Mg.useRef)(new Map),S=(0,Mg.useRef)(new Map),w=Prr(x,t),{wsRef:_,requestHistory:k,reconnecting:L}=zrr({handleSessions:w,setHistory:n,setActiveId:a,...o,setTranscript:l,setViewingTranscriptSessionId:h,setCurrentCwd:d,...p,...m,setRateLimits:y,markInitialized:b,buffers:C,handlers:S});return grr(e,a,o.daemonActiveId),{sessions:e,history:r,activeId:i,setActiveId:a,...o,transcript:s,viewingTranscriptSessionId:u,setViewingTranscriptSessionId:h,currentCwd:f,...p,...m,rateLimits:g,initialized:v,wsRef:_,buffers:C,handlers:S,requestHistory:k,reconnecting:L}}function Hrr(){let e=Urr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:a,sessions:o}=e,s=Vtr(t,i),l=frr(s,r,n);ztr(a,o,e.history,s),Utr(o,s);let u=drr(s,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...l,...u}}var Wrr=$(Ae(),1);function Vrr(e,t,r,n){let i=Xce(e,t,r);(0,Wrr.useEffect)(()=>{i&&n(i)},[i,n])}var Jce=$(Ae(),1);function Grr(){let[e,t]=(0,Jce.useState)(!0);return(0,Jce.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/session-layout")).json();r||t(!!i?.topBar)}catch{t(!0)}})(),()=>{r=!0}},[]),e}function qrr(){let e=Hrr(),t=Mtr(e.currentCwd,e.history);Vrr(e.activeId,e.sessions,e.history,t.setSelectedCwd);let{launch:r,viewLaunchedSession:n}=Ftr(e),i=Grr();return{socket:e,selection:t,launch:r,viewLaunchedSession:n,topBar:i}}var Dd=$(G(),1),A4n={zIndex:e=>e.zIndex.drawer+1},P4n={minHeight:48};function jrr({mode:e,toggle:t}){let{socket:r,selection:n,launch:i,viewLaunchedSession:a,topBar:o}=qrr();return(0,Dd.jsx)(lAe.Provider,{value:o,children:(0,Dd.jsx)(xN.Provider,{value:n,children:(0,Dd.jsxs)(Qme.Provider,{value:i,children:[(0,Dd.jsx)(rMe.Provider,{value:r.daemonVersion,children:(0,Dd.jsx)(ktr,{mode:e,toggle:t,reconnecting:r.reconnecting})}),(0,Dd.jsx)(bhe,{position:"fixed",elevation:1,sx:A4n,children:(0,Dd.jsx)(itr,{socket:r,selection:n})}),(0,Dd.jsx)(pw,{variant:"dense",sx:P4n}),(0,Dd.jsx)(Ptr,{socket:r,children:(0,Dd.jsx)(ser,{socket:r})}),(0,Dd.jsx)(Ser,{socket:r,onViewLaunchedSession:a})]})})})}var Yrr=$(Ae(),1);function Xrr(){let[e,t]=(0,Yrr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var _C=$(G(),1),L4n={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function M4n(){let{mode:e,toggle:t}=Xrr(),r=(0,Zrr.useMemo)(()=>$g({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:L4n}),[e]);return(0,_C.jsxs)(jV,{theme:r,children:[(0,_C.jsx)(NG,{}),(0,_C.jsx)(jrr,{mode:e,toggle:t})]})}var I4n=Vme([{path:"*",element:(0,_C.jsx)(M4n,{})}]);function D4n(){return(0,_C.jsx)(Nme,{router:I4n})}var Krr=document.getElementById("app");Krr&&(0,Qrr.createRoot)(Krr).render((0,_C.jsx)(D4n,{}));})();
3954
+ `,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return K8e.get()},set promptLabel(e){K8e.set(e)},get tooMuchOutput(){return Z8e.get()},set tooMuchOutput(e){Z8e.set(e)}}}_verifyIntegers(...e){for(Vy of e)if(Vy===1/0||isNaN(Vy)||Vy%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(Vy of e)if(Vy&&(Vy===1/0||isNaN(Vy)||Vy%1!==0||Vy<0))throw new Error("This API only accepts positive integers")}};var VLe=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function Wkn(e){try{return!!new URL(e).host}catch{return!1}}function SJt(e,t){let r=e(t),n=e(t+1);return!!r&&!!n&&(n.isWrapped||r.isFull)}function Vkn(e,t){let r=[];for(let n=t;n-t<64;n++){let i=e(n);if(!i||(r.push(i.text),!SJt(e,n)))break}return r}function TJt(e,t,r){let n=t;for(let i of e){if(r<i.length)return{x:r+1,y:n+1};r-=i.length,n++}}function Gkn(e,t,r){let n=r[0],i=TJt(e,t,r.index),a=TJt(e,t,r.index+n.length-1);if(!(!Wkn(n)||!i||!a))return{text:n,range:{start:i,end:a}}}function qkn(e,t,r){let n=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(n)].flatMap(a=>Gkn(e,t,a)??[])}function CJt(e,t,r=VLe){if(!e(t-1))return[];let n=t-1;for(;n>0&&SJt(e,n-1);)n--;return qkn(Vkn(e,n),n,r)}function wJt(e,t){let r=n=>{let i=e.buffer.active.getLine(n);if(!i)return;let a=e.cols,o=i.getCell(a-1);return{text:i.translateToString(!0,0,a),isWrapped:i.isWrapped,isFull:!!o&&o.getChars()!==""&&o.getChars()!==" "}};return{provideLinks(n,i){let a=CJt(r,n,VLe);i(a.map(o=>({range:o.range,text:o.text,activate:t})))}}}function _Jt(e){let t=new xJt({cursorBlink:!0,fontSize:14,fontFamily:"'Cascadia Code', 'Fira Code', Consolas, monospace",theme:{background:"#1e1e1e",foreground:"#d4d4d4"},linkHandler:{activate:(a,o)=>{window.open(o,"_blank")}}}),r=new QXt;t.loadAddon(r);let n=t.registerLinkProvider(wJt(t,(a,o)=>{window.open(o,"_blank")}));t.open(e);let i;try{i=new yZt,i.onContextLoss(()=>{i?.dispose(),i=void 0}),t.loadAddon(i)}catch{i=void 0}return r.fit(),{term:t,fitAddon:r,dispose:()=>{n.dispose(),i?.dispose(),t.dispose()}}}function kJt(e,t,r,n){if(e.type!=="keydown"||!(e.ctrlKey||e.metaKey)||e.shiftKey||e.altKey)return!0;let i=e.key.toLowerCase();return i==="c"&&t.hasSelection()?(e.preventDefault(),r.writeText(t.getSelection()),!1):i==="v"?(e.preventDefault(),r.readText().then(n),!1):!0}function wce(e){return e.type==="keydown"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()==="p"}function EJt(e,t,r,n,i){let a=_Jt(e);a.term.onData(u=>r(t,u)),a.term.attachCustomKeyEventHandler(u=>wce(u)?!1:kJt(u,a.term,navigator.clipboard,h=>a.term.paste(h)));let o=n(t,u=>a.term.write(u)),s=new ResizeObserver(()=>{Lle(e)&&(a.fitAddon.fit(),i(t,a.term.cols,a.term.rows))});return s.observe(e),{handle:a,cleanup:()=>{s.disconnect(),o(),a.dispose()}}}function RJt(e,t,r,n,i,a){let o=(0,EW.useRef)(null);(0,EW.useEffect)(()=>{let s=e.current;if(!s)return;let{handle:l,cleanup:u}=EJt(s,t,n,i,a);return o.current=l,()=>{u(),o.current=null}},[e,t,i,n,a]),(0,EW.useEffect)(()=>{let s=o.current;if(!r||!s)return;let l=setTimeout(()=>{Lle(e.current)&&(s.fitAddon.fit(),s.term.focus(),a(t,s.term.cols,s.term.rows))},50);return()=>clearTimeout(l)},[e,r,t,a])}var LJt=$(G(),1);function PJt({sessionId:e,visible:t,onOutput:r,sendInput:n,sendResize:i}){let a=(0,AJt.useRef)(null);return RJt(a,e,t,n,r,i),(0,LJt.jsx)(Ge,{ref:a,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"}})}var V4=$(G(),1);function MJt({sessions:e,activeId:t,activeLoading:r,onOutput:n,sendInput:i,sendResize:a}){return(0,V4.jsxs)(Ge,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(o=>(0,V4.jsx)(PJt,{sessionId:o.id,visible:o.id===t,onOutput:n,sendInput:i,sendResize:a},o.id)),r&&(0,V4.jsx)(ZXt,{}),e.length===0&&(0,V4.jsx)(Ge,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,V4.jsx)(rt,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var DJt=$(G(),1);function IJt({sessions:e,activeId:t,initialized:r,onOutput:n,sendInput:i,sendResize:a}){let o=e.find(l=>l.id===t),s=o!==void 0&&loe(o,r);return(0,DJt.jsx)(MJt,{sessions:e,activeId:t,activeLoading:s,onOutput:n,sendInput:i,sendResize:a})}var OJt=$(G(),1),NJt=_t((0,OJt.jsx)("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build");var cm=$(G(),1);function BJt({message:e}){return e.role==="tool"?(0,cm.jsx)(jkn,{tool:e.tool,target:e.target}):(0,cm.jsx)(Ykn,{role:e.role,text:e.text})}function jkn({tool:e,target:t}){return(0,cm.jsxs)(Ge,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,cm.jsx)(NJt,{sx:{fontSize:14,color:"text.disabled"}}),(0,cm.jsxs)(rt,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,cm.jsx)(Ge,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,cm.jsxs)(Ge,{component:"span",children:[" ",t]})]})]})}function Ykn({role:e,text:t}){let r=e==="user",n=r?"info.main":"success.main";return(0,cm.jsxs)(Ge,{sx:{mb:1.5,pl:1.5,py:1,pr:1,borderLeft:2,borderColor:n,borderTopRightRadius:1,borderBottomRightRadius:1,bgcolor:r?"action.hover":"transparent"},children:[(0,cm.jsx)(rt,{variant:"caption",sx:{color:n,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,cm.jsx)(rt,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var Yy=$(G(),1);function Xkn(e){let t=new Map;return e.map(r=>{let n=r.role==="tool"?`tool:${r.tool}:${r.target}`:`${r.role}:${r.text.slice(0,40)}`,i=t.get(n)??0;return t.set(n,i+1),{...r,key:`${n}#${i}`}})}function $Jt({messages:e,loading:t}){return t?(0,Yy.jsxs)(Ge,{sx:FJt,children:[(0,Yy.jsx)(ra,{size:20}),(0,Yy.jsx)(rt,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,Yy.jsx)(Ge,{sx:FJt,children:(0,Yy.jsx)(rt,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,Yy.jsx)(Ge,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,Yy.jsx)(Ge,{sx:{maxWidth:820,mx:"auto"},children:Xkn(e).map(r=>(0,Yy.jsx)(BJt,{message:r},r.key))})})}var FJt={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var GLe=$(G(),1);function zJt({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,GLe.jsx)(Ge,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,GLe.jsx)($Jt,{messages:r?t?.messages??[]:[],loading:!r})})}var fC=$(G(),1),Kkn={flex:1,minHeight:0,display:"flex",flexDirection:"column"};function UJt({viewingTranscriptSessionId:e,transcript:t,sendPrDecision:r,lifecycle:n,...i}){let a=lu();if(e!==null)return(0,fC.jsx)(zJt,{sessionId:e,transcript:t});let o=i.sessions.find(s=>s.id===i.activeId);return(0,fC.jsxs)(Ge,{sx:Kkn,children:[a&&o!==void 0&&(0,fC.jsx)(iXt,{session:o,lifecycle:n}),(0,fC.jsx)(KXt,{sessionId:i.activeId,sessions:i.sessions,sendInput:i.sendInput,children:(0,fC.jsx)(qXt,{session:o,sendPrDecision:r,children:(0,fC.jsx)(IJt,{...i})})})]})}var VJt=$(G(),1);function WJt({socket:e}){let t=(0,HJt.useMemo)(()=>({onRetry:e.retrySession,onRestart:e.restartSession,onDismiss:e.dismissSession,onSetAutoRun:e.setAutoRun,onSetAutoAdvance:e.setAutoAdvance}),[e.retrySession,e.restartSession,e.dismissSession,e.setAutoRun,e.setAutoAdvance]);return(0,VJt.jsx)(UJt,{lifecycle:t,sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onOutput:e.onOutput,sendInput:e.sendInput,sendResize:e.sendResize,viewingTranscriptSessionId:e.viewingTranscriptSessionId,transcript:e.transcript,sendPrDecision:e.sendPrDecision})}function qLe(e,t,r){if(e==null)return;let n=Math.max(0,e-r),i=Math.max(0,t-n)/t;if(!(i<.05))return i}function GJt(e,t){let r=Math.max(0,e-t),n=Math.floor(r/86400),i=Math.floor(r%86400/3600),a=Math.floor(r%3600/60);return n>0?`${n}d ${i}h`:i>0?`${i}h ${a}m`:`${a}m`}function Zkn(e,t,r,n){let i=qLe(t,r,n);if(i!=null)return e/i}function dC(e,t,r,n){let i=Zkn(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var G4={five_hour:{label:"5h",seconds:18e3},seven_day:{label:"7d",seconds:604800,tint:{light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.1)"}}};var Qkn={ok:"success.main",warn:"warning.main",over:"error.main"};function q4(e){return Qkn[e]}var PW=$(G(),1),Jkn={ok:"success",warn:"warning",over:"error"};function qJt({percentage:e,level:t}){return(0,PW.jsxs)(Ge,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,PW.jsx)(OO,{variant:"determinate",value:Math.min(100,e),color:Jkn[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,PW.jsxs)(Ge,{sx:{minWidth:40,textAlign:"right",color:q4(t)},children:[Math.round(e),"%"]})]})}function jJt(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var e4n=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function jLe(e){return e4n.format(e)}var _ce=$(G(),1);function YJt({peak:e}){return(0,_ce.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,_ce.jsx)(Bn,{title:`Cycle started ${jLe(new Date(e.createdAt))}`,children:(0,_ce.jsx)("span",{children:jLe(new Date(e.resetsAt*1e3))})})})}var KJt=$(G(),1);function XJt(){return(0,KJt.jsx)(An,{label:"reset",size:"small",color:"warning",variant:"outlined",title:"Quota reset mid-cycle \u2014 this is the peak reached before the reset.",sx:{ml:1}})}function ZJt(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${kR(e.tokensUp)} \u2193 ${kR(e.tokensDown)}`}var Rg=$(G(),1);function QJt({peak:e,now:t}){let{label:r,seconds:n,tint:i}=G4[e.window],a=dC(e.usedPercentage,e.resetsAt,n,t);return(0,Rg.jsxs)(km,{sx:o=>({backgroundColor:i?o.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,Rg.jsxs)(Yn,{children:[r,e.resetDetected&&(0,Rg.jsx)(XJt,{})]}),(0,Rg.jsx)(Yn,{sx:{minWidth:160},children:(0,Rg.jsx)(qJt,{percentage:e.usedPercentage,level:a})}),(0,Rg.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:jJt(e)}),(0,Rg.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,Rg.jsx)(Yn,{align:"right",sx:{whiteSpace:"nowrap"},children:ZJt(e)}),(0,Rg.jsx)(YJt,{peak:e})]})}var kce=$(Ae(),1);function yD(e){let[t,r]=(0,kce.useState)(()=>Math.floor(Date.now()/1e3));return(0,kce.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var Zl=$(G(),1);function JJt({peaks:e}){let t=yD(3e4);return(0,Zl.jsx)(i9,{component:ei,children:(0,Zl.jsxs)(fw,{size:"small",children:[(0,Zl.jsx)(a9,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,Zl.jsxs)(km,{children:[(0,Zl.jsx)(Yn,{children:"Window"}),(0,Zl.jsx)(Yn,{children:"Peak usage"}),(0,Zl.jsx)(Yn,{align:"right",children:(0,Zl.jsx)(Bn,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,Zl.jsx)("span",{children:"Avg context"})})}),(0,Zl.jsx)(Yn,{align:"right",children:(0,Zl.jsx)(Bn,{title:"Number of phase readings behind the average.",children:(0,Zl.jsx)("span",{children:"Phases"})})}),(0,Zl.jsx)(Yn,{align:"right",children:"Tokens spent"}),(0,Zl.jsx)(Yn,{align:"right",children:"Cycle reset"})]})}),(0,Zl.jsx)(dw,{children:e.map(r=>(0,Zl.jsx)(QJt,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var vD=$(Ae(),1);function eer(e,t){let r=(0,vD.useRef)(null),[n,i]=(0,vD.useState)();return(0,vD.useLayoutEffect)(()=>{e===t&&r.current&&i(r.current.offsetHeight)},[e,t]),{ref:r,height:n}}var pC=$(G(),1);function ter({rows:e,total:t,page:r,pageSize:n,onPageChange:i}){let{ref:a,height:o}=eer(e.length,n);return(0,pC.jsxs)(pC.Fragment,{children:[(0,pC.jsx)(Ge,{ref:a,sx:{minHeight:o},children:(0,pC.jsx)(JJt,{peaks:e})}),(0,pC.jsx)(Afe,{component:"div",count:t,page:r,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(s,l)=>i(l)})]})}var YLe=$(G(),1),t4n=[{value:"all",label:"All"},{value:"five_hour",label:G4.five_hour.label},{value:"seven_day",label:G4.seven_day.label}];function rer({window:e,onChange:t}){return(0,YLe.jsx)(Jd,{size:"small",exclusive:!0,value:e,onChange:(r,n)=>n&&t(n),"aria-label":"Filter peaks by rate-limit window",children:t4n.map(r=>(0,YLe.jsx)(oc,{value:r.value,children:r.label},r.value))})}var LW=$(Ae(),1);var mC=$(Ae(),1);async function ner(e,t,r){let n=new URLSearchParams({page:String(e),pageSize:String(t)});r!=="all"&&n.set("window",r);let i=await fetch(`/api/usage/history?${n}`);if(!i.ok)throw new Error(`Failed to load usage history (HTTP ${i.status}).`);return i.json()}function ier(e,t,r){let[n,i]=(0,mC.useState)([]),[a,o]=(0,mC.useState)(0),[s,l]=(0,mC.useState)(!1),[u,h]=(0,mC.useState)(!1),[f,d]=(0,mC.useState)(null);return(0,mC.useEffect)(()=>{let p=!1;return h(!0),ner(e,t,r).then(m=>{p||(i(m.rows),o(m.total),l(!0),h(!1))},m=>{p||(d(m instanceof Error?m:new Error(String(m))),h(!1))}),()=>{p=!0}},[e,t,r]),{rows:n,total:a,loaded:s,fetching:u,error:f}}var XLe=30;function aer(){let[e,t]=(0,LW.useState)(0),[r,n]=(0,LW.useState)("all"),i=ier(e,XLe,r),{total:a}=i;return(0,LW.useEffect)(()=>{if(a===0)return;let s=Math.ceil(a/XLe)-1;e>s&&t(s)},[e,a]),{...i,page:e,setPage:t,window:r,selectWindow:s=>{n(s),t(0)},pageSize:XLe}}var gC=$(G(),1);function oer(){let e=aer(),{window:t,total:r,error:n}=e;if(n)throw n;return(0,gC.jsxs)(Zp,{loading:!e.loaded,title:"Usage history",isEmpty:r===0&&t==="all",emptyMessage:"No usage peaks recorded yet.",children:[(0,gC.jsx)(rer,{window:t,onChange:e.selectWindow}),(0,gC.jsx)(Ge,{sx:{height:4,my:1},children:e.fetching&&(0,gC.jsx)(OO,{})}),t!=="all"&&r===0?(0,gC.jsxs)(rt,{color:"text.secondary",align:"center",sx:{py:6},children:["No ",G4[t].label," usage peaks recorded yet."]}):(0,gC.jsx)(ter,{rows:e.rows,total:r,page:e.page,pageSize:e.pageSize,onPageChange:e.setPage})]})}var qa=$(G(),1);function r4n({socket:e}){return(0,qa.jsx)(EO,{maxWidth:"md",sx:{py:3,px:2},children:(0,qa.jsx)(oNt,{socket:e})})}function ser({socket:e}){return(0,qa.jsx)(Uw,{children:(0,qa.jsxs)(Cl,{element:(0,qa.jsx)(g$t,{socket:e}),children:[(0,qa.jsx)(Cl,{path:"sessions",element:(0,qa.jsx)(WJt,{socket:e})}),(0,qa.jsx)(Cl,{path:"backlog/*",element:(0,qa.jsx)(r4n,{socket:e})}),(0,qa.jsx)(Cl,{path:"news",element:(0,qa.jsx)(VYt,{})}),(0,qa.jsx)(Cl,{path:"usage",element:(0,qa.jsx)(oer,{})}),(0,qa.jsx)(Cl,{path:"backups",element:(0,qa.jsx)(C$t,{})}),(0,qa.jsx)(Cl,{path:"config",element:(0,qa.jsx)(Wzt,{})}),(0,qa.jsx)(Cl,{path:"diff",element:(0,qa.jsx)(dYt,{sessions:e.sessions,sendInput:e.sendInput})}),(0,qa.jsx)(Cl,{path:"file",element:(0,qa.jsx)(zYt,{})}),(0,qa.jsx)(Cl,{path:"*",element:(0,qa.jsx)(Bme,{to:"/sessions",replace:!0})})]})})}var Ice=$(Ae(),1);var Mce=$(Ae(),1);function ler(e,t,r){if(!e)return"Select a repo to search files.";if(r.error)return"Couldn't search files in this repo.";if(!(r.files.length>0||r.loading))return t?"No matching files.":"No files in this repo."}var yC=$(G(),1),n4n={display:"flex",gap:1,alignItems:"center",minWidth:0},i4n={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},a4n={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},o4n={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function s4n(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function cer({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,yC.jsx)(xh,{dense:!0,sx:{py:0},children:e.map((i,a)=>{let{dir:o,basename:s}=s4n(i);return(0,yC.jsxs)(Ui,{selected:a===t,onMouseEnter:()=>r(a),onClick:()=>n(i),sx:n4n,children:[(0,yC.jsx)(KI,{path:i}),(0,yC.jsxs)(Ge,{sx:i4n,children:[(0,yC.jsx)(rt,{component:"span",sx:a4n,children:s}),(0,yC.jsx)(rt,{component:"span",color:"text.secondary",sx:o4n,children:o})]})]},i)})})}var Ece=$(G(),1),l4n={maxHeight:420,overflowY:"auto"},c4n={px:2,py:2,fontSize:13};function uer({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Ece.jsx)(Ge,{sx:l4n,children:e?(0,Ece.jsx)(rt,{color:"text.secondary",sx:c4n,children:e}):(0,Ece.jsx)(cer,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var her=$(G(),1);function Rce({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:a}){return(0,her.jsx)(Xa,{autoFocus:a,inputRef:e,value:t,onChange:o=>r(o.target.value),onKeyDown:n,placeholder:i,size:"small",fullWidth:!0,slotProps:{input:{sx:{fontSize:12}}},sx:{p:.5}})}var Ace=$(Ae(),1),fer={files:[],loading:!1,error:!1};function der(e,t){let[r,n]=(0,Ace.useState)(fer);return(0,Ace.useEffect)(()=>{if(!e){n(fer);return}let i=!1;return n(o=>({...o,loading:!0})),(async()=>{try{let o=await fetch(`/api/files?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`);if(!o.ok)throw new Error(`HTTP ${o.status}`);let s=await o.json();if(i)return;n({files:Array.isArray(s.files)?s.files:[],loading:!1,error:!1})}catch{i||n({files:[],loading:!1,error:!0})}})(),()=>{i=!0}},[e,t]),r}var Pce=$(Ae(),1);function Lce(e,t,r,n){let[i,a]=(0,Pce.useState)(0);return(0,Pce.useEffect)(()=>{a(0)},[t]),{highlight:i,setHighlight:a,onKeyDown:s=>{let l=e.length;if(s.key==="ArrowDown")s.preventDefault(),l>0&&a(u=>(u+1)%l);else if(s.key==="ArrowUp")s.preventDefault(),l>0&&a(u=>(u-1+l)%l);else if(s.key==="Enter"){s.preventDefault();let u=e[i];u&&(r(u),n())}else s.key==="Escape"&&(s.preventDefault(),n())}}}var MW=$(G(),1),u4n={mt:6,alignSelf:"flex-start"};function per({onClose:e}){let{selectedCwd:t}=Io(),[r,n]=(0,Mce.useState)(""),i=der(t,r),a=aa(),o=(0,Mce.useRef)(null),s=d=>a(`/file?path=${encodeURIComponent(d)}`),{highlight:l,setHighlight:u,onKeyDown:h}=Lce(i.files,r,s,e),f=d=>{s(d),e()};return(0,MW.jsxs)(yh,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:u4n},transition:{onEntered:()=>o.current?.focus()}},children:[(0,MW.jsx)(Rce,{autoFocus:!0,inputRef:o,value:r,onChange:n,onKeyDown:h,placeholder:"Search files by name..."}),(0,MW.jsx)(uer,{message:ler(t,r,i),files:i.files,highlight:l,onHighlight:u,onSelect:f})]})}var ger=$(Ae(),1);var mer=!0;function yer(e){(0,ger.useEffect)(()=>{let t=r=>{wce(r)&&(r.preventDefault(),e())};return globalThis.addEventListener("keydown",t,mer),()=>globalThis.removeEventListener("keydown",t,mer)},[e])}var ber=$(G(),1);function ver(){let[e,t]=(0,Ice.useState)(!1);return yer((0,Ice.useCallback)(()=>t(!0),[])),e?(0,ber.jsx)(per,{onClose:()=>t(!1)}):null}var Dce=$(G(),1);function xer({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Dce.jsx)(Th,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Dce.jsx)(ko,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Dce.jsx)(Mr,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var Oce=$(G(),1);function Ter({reconnecting:e}){return(0,Oce.jsx)(Th,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Oce.jsx)(ko,{severity:"info",variant:"filled",icon:(0,Oce.jsx)(ra,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var ix=$(G(),1);function Ser({socket:e,onViewLaunchedSession:t}){return(0,ix.jsxs)(ix.Fragment,{children:[(0,ix.jsx)(ver,{}),(0,ix.jsx)(Ter,{reconnecting:e.reconnecting}),(0,ix.jsx)(uf,{error:e.error,onClose:e.clearError}),(0,ix.jsx)(xer,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var bD=$(G(),1),h4n=["/sessions","/backlog","/news"];function Cer(){let e=Ts(),t=aa(),r=h4n.findIndex(i=>e.pathname.startsWith(i)),n=i=>{e.pathname!==i&&t(i)};return(0,bD.jsxs)(s9,{value:r===-1?0:r,textColor:"inherit",indicatorColor:"secondary",children:[(0,bD.jsx)(Ax,{label:"Sessions",onClick:()=>n("/sessions")}),(0,bD.jsx)(Ax,{label:"Backlog",onClick:()=>n("/backlog")}),(0,bD.jsx)(Ax,{label:"News",onClick:()=>n("/news")})]})}var Bce=$(Ae(),1),Nce=$(G(),1),f4n={color:"inherit"};function wer({cwd:e}){let[t,r]=(0,Bce.useState)(null);return(0,Bce.useEffect)(()=>{if(!e){r(null);return}let n=!1;return(async()=>{try{let a=await(await fetch(`/api/github-url?cwd=${encodeURIComponent(e)}`)).json();n||r(a?.url??null)}catch{n||r(null)}})(),()=>{n=!0}},[e]),t?(0,Nce.jsx)(Bn,{title:"Open in GitHub",children:(0,Nce.jsx)(Rr,{sx:f4n,onClick:()=>window.open(t,"_blank"),children:(0,Nce.jsx)(Moe,{})})}):null}var ker=$(Ae(),1);var Fce=$(G(),1);function _er({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let a=dC(i,e?.resets_at,t,n),o=e?.resets_at!=null?GJt(e.resets_at,n):r;return(0,Fce.jsxs)(Ge,{component:"span",children:[(0,Fce.jsxs)(Ge,{component:"span",sx:{color:q4(a)},children:[Math.round(i),"%"]})," ",(0,Fce.jsxs)(Ge,{component:"span",sx:{color:"text.secondary"},children:["(",o,")"]})]})}var vC=$(G(),1);function Eer({rateLimits:e}){let t=yD(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(n=>n.window?.used_percentage!=null);return(0,vC.jsx)(vC.Fragment,{children:r.map((n,i)=>(0,vC.jsxs)(ker.Fragment,{children:[i>0?(0,vC.jsx)(Ge,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,vC.jsx)(_er,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}function Rer(e,t,r,n){let i=qLe(t,r,n);if(i==null)return{kind:"unprojectable"};let a=dC(e,t,r,n);return a==="over"?{kind:"over"}:a==="warn"?{kind:"step",level:"over",pct:100*i}:{kind:"step",level:"warn",pct:75*i}}var Ag=$(G(),1);function Aer({label:e,pct:t,resetsAt:r,windowSeconds:n,now:i}){let a=dC(t,r,n,i),o=Rer(t,r,n,i);return(0,Ag.jsxs)(Ge,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[(0,Ag.jsx)(Ge,{component:"span",sx:{minWidth:18},children:e}),(0,Ag.jsxs)(Ge,{component:"span",sx:{color:q4(a)},children:[Math.round(t),"%"]}),o.kind==="step"?(0,Ag.jsxs)(Ag.Fragment,{children:[(0,Ag.jsx)(Ge,{component:"span",sx:{opacity:.6},children:"\u2192"}),(0,Ag.jsxs)(Ge,{component:"span",sx:{color:q4(o.level)},children:[Math.round(o.pct),"%"]})]}):(0,Ag.jsx)(Ge,{component:"span",sx:{opacity:.6},children:o.kind==="over"?"already over":"no projection yet"})]})}function Per(e){return[{label:"5h",window:e.five_hour,windowSeconds:18e3},{label:"7d",window:e.seven_day,windowSeconds:604800}].flatMap(t=>t.window?.used_percentage==null?[]:[{label:t.label,pct:t.window.used_percentage,resetsAt:t.window.resets_at,windowSeconds:t.windowSeconds}])}var IW=$(G(),1),KLe="Claude account usage (5h / 7d windows) \u2014 view history";function Ler({rateLimits:e}){let t=yD(3e4);return(0,IW.jsxs)(Ge,{sx:{fontFamily:"monospace",fontSize:12},children:[Per(e).map(r=>(0,IW.jsx)(Aer,{label:r.label,pct:r.pct,resetsAt:r.resetsAt,windowSeconds:r.windowSeconds,now:t},r.label)),(0,IW.jsx)(Ge,{sx:{mt:.5,opacity:.6},children:KLe})]})}var DW=$(G(),1),d4n={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13};function p4n(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Mer({rateLimits:e}){let t=p4n(e);return(0,DW.jsx)(Bn,{title:t?(0,DW.jsx)(Ler,{rateLimits:e}):KLe,children:(0,DW.jsx)(Ao,{component:Mm,to:"/usage",underline:"hover",color:"inherit",sx:d4n,children:t?(0,DW.jsx)(Eer,{rateLimits:e}):"Usage"})})}var Ier=$(G(),1),Der=_t((0,Ier.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh");var ox=$(Ae(),1);var xD={target:"both",label:"Restart daemon",message:"This restarts the sessions daemon and the web server, then reloads the page once the server is back."};function Oer(e){return fetch(`/api/restart?target=${e}`,{method:"POST"})}var ax=$(Ae(),1);var m4n="/api/session-layout";async function g4n(){try{return(await fetch(m4n,{cache:"no-store"})).ok}catch{return!1}}async function Ner(e){let t=0;for(;!e();){if(t=await g4n()?t+1:0,t>=2)return!e();await new Promise(r=>setTimeout(r,300))}return!1}function y4n(){return{sawDisconnect:!1,waiting:!1,abandoned:!0}}function Ber(e,t,r){let n=(0,ax.useRef)(y4n()),i=(0,ax.useRef)(r);i.current=r,(0,ax.useEffect)(()=>{let s=n.current;if(!(!e||s.abandoned)){if(t){s.sawDisconnect=!0;return}!s.sawDisconnect||s.waiting||(s.waiting=!0,Ner(()=>s.abandoned).then(l=>{l&&i.current()}))}},[e,t]);let a=(0,ax.useCallback)(()=>{n.current.abandoned=!0},[]),o=(0,ax.useCallback)(()=>{n.current.abandoned=!0,n.current={sawDisconnect:!1,waiting:!1,abandoned:!1}},[]);return(0,ax.useEffect)(()=>a,[a]),{arm:o,abandon:a}}var v4n=15e3;function TD(e,t,r){let[n,i]=(0,ox.useState)(!1),[a,o]=(0,ox.useState)(null),s=(0,ox.useRef)(void 0),{arm:l,abandon:u}=Ber(n,t,()=>{clearTimeout(s.current),r?.(),globalThis.location.reload()});(0,ox.useEffect)(()=>()=>clearTimeout(s.current),[]);let h=(0,ox.useCallback)(async()=>{i(!0),l(),s.current=setTimeout(()=>{u(),i(!1),o("Web server did not come back")},v4n);try{if(!(await Oer(e)).ok)throw new Error("restart failed")}catch{u(),clearTimeout(s.current),i(!1),o("Failed to restart web server")}},[e,l,u]);return{pending:n,error:a,clearError:()=>o(null),restart:h}}var Pg=$(G(),1),b4n={color:"inherit",mr:1.5};function Fer({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=TD("webserver",e);return(0,Pg.jsxs)(Pg.Fragment,{children:[(0,Pg.jsx)(Bn,{title:"Restart web server",children:(0,Pg.jsx)("span",{children:(0,Pg.jsx)(Rr,{sx:b4n,disabled:t,onClick:i,children:t?(0,Pg.jsx)(ra,{size:24}):(0,Pg.jsx)(Der,{})})})}),(0,Pg.jsx)(uf,{error:r,onClose:n})]})}var SD=$(Ae(),1);var $ce=$(Ae(),1);var zce=$(G(),1);function $er({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let a=(0,$ce.useRef)(null);return(0,$ce.useEffect)(()=>{r&&a.current?.scrollIntoView({block:"nearest"})},[r]),(0,zce.jsxs)(Ui,{ref:a,selected:t,title:e,onClick:i,onMouseEnter:n,sx:{fontSize:12,display:"flex",justifyContent:"space-between",gap:1,...r&&{bgcolor:"action.hover"}},children:[OW(e),LS(e)&&(0,zce.jsx)(wS,{})]})}var ZLe=$(G(),1);function zer({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,ZLe.jsx)(xh,{dense:!0,children:e.map((a,o)=>(0,ZLe.jsx)($er,{cwd:a,selected:a===t,highlighted:o===r,onHover:()=>n(o),onSelect:()=>i(a)},a))})}var NW=$(G(),1);function OW(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var x4n={...OS};function Uer({repos:e,selected:t,onSelect:r,close:n}){let[i,a]=(0,SD.useState)(""),o=(0,SD.useRef)(null);(0,SD.useEffect)(()=>{o.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:h,onKeyDown:f}=Lce(l,s,r,n);return(0,NW.jsxs)(ei,{elevation:4,sx:x4n,children:[(0,NW.jsx)(Rce,{inputRef:o,value:i,onChange:a,onKeyDown:f,placeholder:"Filter repos..."}),(0,NW.jsx)(zer,{repos:l,selected:t,highlight:u,onHighlight:h,onSelect:p=>{r(p),n()}})]})}var CD=$(G(),1);function T4n(e){return e?LS(e)?(0,CD.jsxs)("span",{style:{display:"flex",flexGrow:1,alignItems:"center",justifyContent:"space-between",gap:6,minWidth:0},children:[OW(e),(0,CD.jsx)(wS,{})]}):OW(e):"Select repo..."}function Her({repos:e,selected:t,onSelect:r}){return(0,CD.jsx)(Ay,{label:T4n(t),children:n=>(0,CD.jsx)(Uer,{repos:e,selected:t,onSelect:r,close:n})})}var Wer=$(Ae(),1);var QLe=$(G(),1);function Uce({disabled:e,onSubmit:t,label:r="prompt",allowEmpty:n=!1}){let[i,a]=(0,Wer.useState)("");return(0,QLe.jsx)(Ay,{label:r,disabled:e,children:o=>(0,QLe.jsx)(gI,{value:i,onChange:a,onSubmit:()=>{!n&&!i.trim()||(t(i),a(""),o())}})})}var j4=$(G(),1),S4n={textTransform:"none",fontSize:11,fontWeight:600};function Ver({onSelect:e,disabled:t=!1,children:r}){return(0,j4.jsxs)(j4.Fragment,{children:[TAe.filter(n=>n.nav&&n.prompt).map(n=>(0,j4.jsx)(Uce,{label:n.label,allowEmpty:!0,disabled:t,onSubmit:i=>e(n.value,i)},n.value)),r,TAe.filter(n=>n.nav&&!n.prompt).map(n=>(0,j4.jsx)(Mr,{size:"small",variant:"outlined",disabled:t,onClick:()=>e(n.value),sx:S4n,children:n.label},n.value))]})}var JLe=$(Ae(),1);var Xy=$(G(),1),Ger={"& .MuiFormControlLabel-label":{fontSize:12}};function C4n({value:e,onChange:t}){return(0,Xy.jsxs)(Sfe,{row:!0,value:e,onChange:r=>t(r.target.value),children:[(0,Xy.jsx)(Kd,{value:"claude",control:(0,Xy.jsx)(pq,{size:"small"}),label:"claude",sx:Ger}),(0,Xy.jsx)(Kd,{value:"pi",control:(0,Xy.jsx)(pq,{size:"small"}),label:"pi",sx:Ger})]})}function qer({cwd:e,disabled:t,onCreate:r,onCreatePi:n}){let{exposePiActions:i}=Kae(),[a,o]=(0,JLe.useState)(""),[s,l]=(0,JLe.useState)("claude");return(0,Xy.jsx)(Ay,{label:"prompt",disabled:t,children:u=>(0,Xy.jsx)(gI,{value:a,onChange:o,header:i?(0,Xy.jsx)(C4n,{value:s,onChange:l}):void 0,onSubmit:()=>{(s==="pi"?n:r)(a,e),o(""),l("claude"),u()}})})}var Y4=$(G(),1);function jer({cwd:e,disabled:t,onCreate:r,onCreateDesign:n,onCreatePi:i}){return(0,Y4.jsxs)(Y4.Fragment,{children:[(0,Y4.jsx)(qer,{cwd:e,disabled:t,onCreate:r,onCreatePi:i}),(0,Y4.jsx)(Uce,{label:"design",allowEmpty:!0,disabled:t,onSubmit:a=>n(a,e)})]})}var etr=$(Ae(),1);var BW=$(Ae(),1);function Hce(e){let[t,r]=(0,BW.useState)([]),[n,i]=(0,BW.useState)(!0);return(0,BW.useEffect)(()=>{if(!e){r([]),i(!1);return}let a=!1;return i(!0),fetch(`/api/pr-list?cwd=${encodeURIComponent(e)}`).then(o=>o.json()).then(o=>{a||(r(Array.isArray(o?.prs)?o.prs:[]),i(!1))}).catch(()=>{a||(r([]),i(!1))}),()=>{a=!0}},[e]),{prs:t,loading:n}}var Md=$(G(),1);function Xer({cwd:e,onPick:t}){let{prs:r,loading:n}=Hce(e);return(0,Md.jsx)(ei,{elevation:4,sx:{...OS,left:"auto",width:320},children:n?(0,Md.jsx)(Yer,{text:"Loading open PRs\u2026"}):r.length===0?(0,Md.jsx)(Yer,{text:"No open PRs"}):(0,Md.jsx)(xh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,Md.jsx)(w4n,{pr:i,onPick:t},i.number))})})}function w4n({pr:e,onPick:t}){return(0,Md.jsx)(Ui,{onMouseDown:r=>r.preventDefault(),onClick:()=>t(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,Md.jsxs)(lr,{spacing:.25,sx:{minWidth:0},children:[(0,Md.jsx)(rt,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,Md.jsxs)(rt,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",c2(e.createdAt)]})]})})}function Yer({text:e}){return(0,Md.jsx)(Ge,{sx:{p:1.5},children:(0,Md.jsx)(rt,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var Zer=$(G(),1);function Ker({cwd:e,onPick:t}){return(0,Zer.jsx)(Xer,{cwd:e,onPick:t})}var Qer=$(Ae(),1);var Id=$(G(),1);function Jer({pr:e,onSelect:t,onCancel:r}){let[n,i]=(0,Qer.useState)(ZU);return(0,Id.jsxs)(yh,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,Id.jsxs)(Xd,{sx:{fontSize:15},children:["Review #",e.number,": ",e.title]}),(0,Id.jsx)(Yd,{sx:{px:0},children:(0,Id.jsxs)(xh,{children:[Ioe.map(({label:a,args:o})=>(0,Id.jsx)(Ui,{onClick:()=>t([...o,...Doe(n)]),children:a},a)),(0,Id.jsx)(bl,{}),(0,Id.jsx)(Ooe,{value:n,onChange:i}),(0,Id.jsx)(bl,{}),(0,Id.jsx)(Ui,{onClick:()=>t(["review-pr-comments"]),children:"Address Comments"})]})}),(0,Id.jsx)(jd,{children:(0,Id.jsx)(Mr,{onClick:r,children:"Cancel"})})]})}var bC=$(G(),1);function ttr({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=Hce(e),[a,o]=(0,etr.useState)(null);return i||n.length===0?null:(0,bC.jsxs)(bC.Fragment,{children:[(0,bC.jsx)(Ay,{label:"review",disabled:t,children:s=>(0,bC.jsx)(Ker,{cwd:e,onPick:l=>{o(l),s()}})}),a&&(0,bC.jsx)(Jer,{pr:a,onSelect:s=>{r(a,s),o(null)},onCancel:()=>o(null)})]})}var wD=$(G(),1);function rtr({onStartRun:e,cwd:t}){let r=Uoe(t);return!t||r.length===0?null:(0,wD.jsx)(Ay,{label:"server",children:n=>(0,wD.jsx)(ei,{elevation:4,sx:{...OS,left:"auto",width:200},children:(0,wD.jsx)(xh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,wD.jsx)(Ui,{onMouseDown:a=>a.preventDefault(),onClick:()=>{e(i.name,t),n()},sx:{py:.75},children:(0,wD.jsx)(rt,{sx:{fontSize:13},children:i.name})},i.name))})})})}var X4=$(G(),1);function ntr({onCreate:e,onCreateDesign:t,onCreatePi:r,onCreateAssist:n,onStartRun:i}){let{selectedCwd:a}=Io(),o=!a;return(0,X4.jsxs)(lr,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:[(0,X4.jsxs)(Ver,{disabled:o,onSelect:(s,l)=>FBt(s,a,n,()=>{},l),children:[(0,X4.jsx)(jer,{cwd:a,disabled:o,onCreate:e,onCreateDesign:t,onCreatePi:r}),(0,X4.jsx)(ttr,{cwd:a,disabled:o,onSelect:(s,l)=>n([...l,String(s.number)],a,Noe(s))})]}),(0,X4.jsx)(rtr,{onStartRun:i,cwd:a})]})}var um=$(G(),1),_4n={minHeight:48,pl:1,pr:14},k4n={width:240,ml:2};function itr({socket:e,selection:t}){return(0,um.jsxs)(pw,{variant:"dense",disableGutters:!0,sx:_4n,children:[(0,um.jsx)(Fer,{reconnecting:e.reconnecting}),(0,um.jsx)(Cer,{}),(0,um.jsx)(Ge,{sx:k4n,children:(0,um.jsx)(Her,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd})}),(0,um.jsxs)(Ge,{sx:{display:"flex",ml:1,mr:2},children:[(0,um.jsx)($oe,{cwd:t.selectedCwd}),(0,um.jsx)(wer,{cwd:t.selectedCwd})]}),(0,um.jsx)(ntr,{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreatePi:e.createPiSession,onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,um.jsx)(Mer,{rateLimits:e.rateLimits})]})}var Gce=$(Ae(),1);var atr=$(G(),1),otr=_t((0,atr.jsx)("path",{d:"m12 16.5 4-4h-3v-9h-2v9H8zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2"}),"SystemUpdateAlt");var str=$(G(),1),ltr=_t((0,str.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4");var ctr=$(G(),1),utr=_t((0,ctr.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7");var eMe=$(G(),1);function htr({mode:e}){return e==="dark"?(0,eMe.jsx)(utr,{fontSize:"small"}):(0,eMe.jsx)(ltr,{fontSize:"small"})}var uh=$(G(),1);function ftr({mode:e,onToggleColorMode:t,onRestart:r,onUpdate:n}){return[(0,uh.jsxs)(Ui,{onClick:t,children:[(0,uh.jsx)(BO,{children:(0,uh.jsx)(htr,{mode:e})}),(0,uh.jsx)($O,{children:"Toggle dark mode"})]},"color-mode"),(0,uh.jsx)(bl,{},"restart-divider"),(0,uh.jsxs)(Ui,{onClick:r,children:[(0,uh.jsx)(BO,{children:(0,uh.jsx)(_oe,{fontSize:"small"})}),(0,uh.jsx)($O,{children:xD.label})]},"restart"),(0,uh.jsxs)(Ui,{onClick:n,children:[(0,uh.jsx)(BO,{children:(0,uh.jsx)(otr,{fontSize:"small"})}),(0,uh.jsx)($O,{children:"Update assist"})]},"update")]}var K4=$(G(),1);function dtr({reconnecting:e,onClose:t}){let{pending:r,error:n,clearError:i,restart:a}=TD(xD.target,e);return(0,K4.jsxs)(K4.Fragment,{children:[(0,K4.jsx)(Oo,{title:xD.label,message:xD.message,confirmLabel:"Restart",busy:r,onConfirm:()=>{a()},onCancel:t}),(0,K4.jsx)(uf,{error:n,onClose:i})]})}var mtr=$(G(),1);function ptr({onConfirm:e,onClose:t}){return(0,mtr.jsx)(Oo,{title:"Update assist",message:"This starts a new session running 'assist update'. Its output will appear in the terminal.",confirmLabel:"Update",onConfirm:()=>{e(),t()},onCancel:t})}var Z4=$(G(),1);function gtr({restarting:e,reconnecting:t,onCloseRestart:r,updating:n,onCloseUpdate:i}){let{launchAssist:a,armUpdateReload:o}=dp();return(0,Z4.jsxs)(Z4.Fragment,{children:[e&&(0,Z4.jsx)(dtr,{reconnecting:t,onClose:r}),n&&(0,Z4.jsx)(ptr,{onConfirm:()=>{o(),a(["update"])},onClose:i})]})}var ytr=$(G(),1),vtr=_t((0,ytr.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var btr=$(G(),1),xtr=_t((0,btr.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var Wce=$(G(),1);function Ttr(){let e=aa();return(0,Wce.jsx)(Bn,{title:"Config",children:(0,Wce.jsx)(Rr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:()=>e("/config"),children:(0,Wce.jsx)(xtr,{fontSize:"small"})})})}var tMe=$(G(),1),Str=_t([(0,tMe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,tMe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var FW="0.526.0";var Vce=$(Ae(),1),rMe=(0,Vce.createContext)(null);function Ctr(){return(0,Vce.useContext)(rMe)}var xC=$(G(),1);function wtr(){let e=Ctr();return FW?(0,xC.jsxs)(xC.Fragment,{children:[(0,xC.jsxs)(rt,{variant:"caption",sx:{opacity:.4,userSelect:"none",lineHeight:1},children:["v",FW]}),e&&e!==FW&&(0,xC.jsx)(Bn,{title:`Daemon is running v${e}, but this page was served by v${FW}. Restart the daemon to match.`,children:(0,xC.jsx)(Str,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})]}):null}var Q4=$(G(),1);function _tr({open:e,onOpen:t}){return(0,Q4.jsxs)(Ge,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,Q4.jsx)(wtr,{}),(0,Q4.jsx)(Ttr,{}),(0,Q4.jsx)(Rr,{onClick:r=>t(r.currentTarget),size:"small",sx:{color:"inherit"},"aria-label":"Open menu","aria-haspopup":"true","aria-expanded":e?"true":void 0,children:(0,Q4.jsx)(vtr,{fontSize:"small"})})]})}var TC=$(G(),1);function ktr({mode:e,toggle:t,reconnecting:r}){let[n,i]=(0,Gce.useState)(null),[a,o]=(0,Gce.useState)(!1),[s,l]=(0,Gce.useState)(!1),u=!!n,h=()=>i(null);return(0,TC.jsxs)(TC.Fragment,{children:[(0,TC.jsx)(_tr,{open:u,onOpen:i}),(0,TC.jsx)(Zd,{anchorEl:n,open:u,onClose:h,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:ftr({mode:e,onToggleColorMode:()=>{t(),h()},onRestart:()=>{h(),o(!0)},onUpdate:()=>{h(),l(!0)}})}),(0,TC.jsx)(gtr,{restarting:a,reconnecting:r,onCloseRestart:()=>o(!1),updating:s,onCloseUpdate:()=>l(!1)})]})}var Atr=$(Ae(),1);var Rtr=$(G(),1);function Etr({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:a}=e.existing,o=Xp(i),s=a?` on port ${a}`:"",l=o?` in ${o}`:"";return(0,Rtr.jsx)(Oo,{title:"Replace running server?",message:`"${n}" is already serving${s}${l}. Replace it \u2014 stop the running server and start this one?`,confirmLabel:"Replace",confirmColor:"error",onConfirm:t,onCancel:r})}var qce=$(G(),1);function Ptr({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:a,startRun:o,discardSession:s}=e,l=(0,Atr.useMemo)(()=>({onStop:a,onStart:o,onDiscard:s}),[a,o,s]),u=()=>{r&&(r.runName?o(r.runName,r.cwd,!0,r.launchedFrom):r.sessionId&&i(r.sessionId,!0),n())};return(0,qce.jsxs)(gAe.Provider,{value:l,children:[t,r&&(0,qce.jsx)(Etr,{conflict:r,onConfirm:u,onCancel:n})]})}var J4=$(Ae(),1);function Ltr(e,t){let r=new Set,n=[];for(let i of t){if(i.cwdMissing)continue;let a=_S(i),o=t4(i);!a||!o||r.has(a)||(r.add(a),n.push(o))}return e&&!r.has(noe(e,t))&&n.unshift(e),n}function Mtr(e,t){let[r,n]=(0,J4.useState)(e);(0,J4.useEffect)(()=>{e&&!r&&n(e)},[e,r]);let i=(0,J4.useMemo)(()=>Ltr(e,t),[e,t]);return(0,J4.useMemo)(()=>({repos:i,selectedCwd:r,setSelectedCwd:n}),[i,r])}var Yce=$(Ae(),1);var SC=$(Ae(),1);var Itr=$(Ae(),1),jce="assist:reloaded-after-update";function Dtr(e){(0,Itr.useEffect)(()=>{globalThis.sessionStorage?.getItem(jce)&&(globalThis.sessionStorage.removeItem(jce),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}var Lg=$(Ae(),1);function Otr(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function Ntr(e,t){let[r,n]=(0,Lg.useState)(!1),[i,a]=(0,Lg.useState)(!1),o=(0,Lg.useRef)(!1),s=(0,Lg.useRef)(e);s.current=e;let l=(0,Lg.useRef)(new Set),u=(0,Lg.useCallback)(()=>{o.current=!1,a(!1),l.current=new Set(s.current.filter(Otr).map(h=>h.id)),n(!0)},[]);return(0,Lg.useEffect)(()=>{if(!r||i)return;if(t){o.current=!0;return}if(!o.current)return;e.some(f=>Otr(f)&&!l.current.has(f.id))&&a(!0)},[r,i,t,e]),{arm:u,completed:i}}function Btr(e,t,r,n){let{arm:i,completed:a}=Ntr(e,t),o=(0,SC.useRef)(!1),s=(0,SC.useCallback)(()=>{globalThis.sessionStorage?.setItem(jce,"1")},[]),{error:l,restart:u}=TD("webserver",t,s);return Dtr(r),(0,SC.useEffect)(()=>{l&&n(l)},[l,n]),(0,SC.useEffect)(()=>{!a||o.current||(o.current=!0,u())},[a,u]),{armUpdateReload:(0,SC.useCallback)(()=>{o.current=!1,i()},[i])}}function Ftr(e){let{armUpdateReload:t}=Btr(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,Yce.useMemo)(()=>({launchAssist:e.createAssistSession,launchAgentInStream:e.createSessionInStream,armUpdateReload:t}),[e.createAssistSession,e.createSessionInStream,t]),n=aa(),i=(0,Yce.useCallback)(a=>{e.selectSession(a),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var $tr=$(Ae(),1);function Xce(e,t,r){if(!e)return;let n=t.find(a=>a.id===e);if(n)return t4(n);let i=r.find(a=>a.sessionId===e);return i&&t4(i)}function ztr(e,t,r,n){let i=Xce(e,t,r);(0,$tr.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var Kce=$(Ae(),1);function Utr(e,t){let r=(0,Kce.useRef)(new Map);(0,Kce.useEffect)(()=>{let n=new Set;for(let{id:i,status:a}of e)n.add(i),r.current.get(i)!==a&&(r.current.set(i,a),console.debug(`[sessions] render session ${i} status=${a}`),t({type:"ui-status",sessionId:i,status:a}));for(let i of r.current.keys())n.has(i)||r.current.delete(i)},[e,t])}var Wtr=$(Ae(),1);function Htr(e){let t=e;if(t.type==="create")return{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session")};if(t.type==="create-assist"){let r=t.title?.trim();return{cwd:t.cwd,title:r||"New session",named:!!r}}return null}function Vtr(e,t){return(0,Wtr.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=Htr(r);i&&t(i)},[e,t])}var Ky=$(Ae(),1);function Gtr(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r})}function qtr(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,design:!0})}function jtr(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,harness:"pi"})}function Ytr(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,...n})}function Xtr(e){return(t,r,n)=>e({type:"resume",sessionId:t,cwd:r,name:n})}function Ktr(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function Ztr(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function Qtr(e,t){return r=>{e({type:"dismiss",sessionId:r}),t.delete(r)}}function Jtr(e,t){return r=>{e({type:"discard",sessionId:r}),t.delete(r)}}function err(e){return t=>e({type:"stop",sessionId:t})}function trr(e){return(t,r,n,i)=>e({type:"create-run",runName:t,cwd:r,replace:n,launchedFrom:i})}function rrr(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function nrr(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function irr(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function arr(e){return(t,r)=>e({type:"input",sessionId:t,data:r})}function orr(e){return(t,r,n)=>e({type:"resize",sessionId:t,cols:r,rows:n})}function srr(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function lrr(e){return(t,r,n,i)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,...i})}var e3=$(Ae(),1);function crr(e){return(t,r,n)=>e({type:"create",prompt:r||void 0,cwd:n,joinSessionId:t})}function urr(e){return{createSession:(0,e3.useMemo)(()=>Gtr(e),[e]),createSessionInStream:(0,e3.useMemo)(()=>crr(e),[e]),createDesignSession:(0,e3.useMemo)(()=>qtr(e),[e]),createPiSession:(0,e3.useMemo)(()=>jtr(e),[e]),createAssistSession:(0,e3.useMemo)(()=>Ytr(e),[e]),resumeSession:(0,e3.useMemo)(()=>Xtr(e),[e])}}var $W=$(Ae(),1);function hrr(e,t){let r=(0,$W.useCallback)((o,s)=>{Ktr(e,t.current)(o,s)},[e,t]),n=(0,$W.useCallback)(o=>{Ztr(e,t.current)(o)},[e,t]),i=(0,$W.useCallback)(o=>{Qtr(e,t.current)(o)},[e,t]),a=(0,$W.useCallback)(o=>{Jtr(e,t.current)(o)},[e,t]);return{retrySession:r,restartSession:n,dismissSession:i,discardSession:a}}function frr(e,t,r){let n={...urr(e),sendInput:(0,Ky.useMemo)(()=>arr(e),[e]),sendResize:(0,Ky.useMemo)(()=>orr(e),[e]),sendPrDecision:(0,Ky.useMemo)(()=>lrr(e),[e]),setAutoRun:(0,Ky.useMemo)(()=>rrr(e),[e]),setAutoAdvance:(0,Ky.useMemo)(()=>nrr(e),[e]),setStarred:(0,Ky.useMemo)(()=>irr(e),[e]),stopSession:(0,Ky.useMemo)(()=>err(e),[e]),startRun:(0,Ky.useMemo)(()=>trr(e),[e])},i=(0,Ky.useMemo)(()=>srr(t.current,r.current),[t,r]);return{...n,...hrr(e,t),onOutput:i}}var Zce=$(Ae(),1);function drr(e,t,r){let n=(0,Zce.useCallback)(o=>{r(o),e({type:"fetch-transcript",sessionId:o})},[e,r]),i=(0,Zce.useCallback)(()=>{r(null)},[r]),a=(0,Zce.useCallback)(o=>{r(null),t(o)},[t,r]);return{viewTranscript:n,clearTranscript:i,selectSession:a}}var Mg=$(Ae(),1);var mrr=$(Ae(),1);function prr(e,t,r=null){return t!==null?e.some(n=>n.id===t)?t:e[0]?.id??null:r&&e.some(n=>n.id===r)?r:e[0]?.id??null}function grr(e,t,r){let n=Ts().pathname,i=n.startsWith("/backlog")||n.startsWith("/usage");(0,mrr.useEffect)(()=>{if(i){t(null);return}t(a=>prr(e,a,r))},[e,t,r,i])}var nMe=$(Ae(),1);function yrr(){let[e,t]=(0,nMe.useState)(null),[r,n]=(0,nMe.useState)(null);return{daemonActiveId:e,setDaemonActiveId:t,daemonVersion:r,setDaemonVersion:n}}var t3=$(Ae(),1);function vrr(e,t){if(!t.some(n=>e.has(n)))return e;let r=new Set(e);for(let n of t)r.delete(n);return r}function brr(e,t){let r=[];for(let n of t){let i=e.get(n.id);i!==void 0&&i!==n.startedAt&&r.push(n.id)}return r}function xrr(){let[e,t]=(0,t3.useState)(new Set),r=(0,t3.useRef)(new Map),n=(0,t3.useCallback)(a=>{t(o=>o.has(a)?o:new Set(o).add(a))},[]),i=(0,t3.useCallback)(a=>{let o=brr(r.current,a);r.current=new Map(a.map(s=>[s.id,s.startedAt])),o.length&&t(s=>vrr(s,o))},[]);return{initialized:e,markInitialized:n,syncSessions:i}}var CC=$(Ae(),1);function Trr(){let[e,t]=(0,CC.useState)(null),[r,n]=(0,CC.useState)(null),[i,a]=(0,CC.useState)(null),o=(0,CC.useCallback)(()=>t(null),[]),s=(0,CC.useCallback)(()=>n(null),[]),l=(0,CC.useCallback)(()=>a(null),[]);return{error:e,setError:t,clearError:o,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:a,clearServerConflict:l}}var Zy=$(Ae(),1);function Srr(e,t){return[...e,{...t,windows:LS(t.cwd),status:"launching"}]}function Qce(e){return e.find(t=>t.status==="launching")}function Crr(e){let t=Qce(e);return t?e.filter(r=>r.id!==t.id):e}function wrr(e,t){let r=Qce(e);return r?iMe(e,r.id,t):e}function iMe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function _rr(e,t){return e.filter(r=>r.id!==t)}var krr=$(Ae(),1);var E4n=6e4,R4n="Launch timed out \u2014 the session did not start.";function Err(e,t){(0,krr.useEffect)(()=>{let r=e.filter(i=>i.status==="launching");if(r.length===0)return;let n=r.map(i=>setTimeout(()=>t(a=>iMe(a,i.id,R4n)),Math.max(0,E4n-(Date.now()-i.startedAt))));return()=>n.forEach(clearTimeout)},[e,t])}function Rrr(){let[e,t]=(0,Zy.useState)([]),r=(0,Zy.useRef)([]),n=(0,Zy.useCallback)(l=>{r.current=l(r.current),t(r.current)},[]),i=(0,Zy.useCallback)(l=>{n(u=>Srr(u,{id:crypto.randomUUID(),startedAt:Date.now(),...l}))},[n]),a=(0,Zy.useCallback)(()=>{let l=Qce(r.current);return n(Crr),l?.named?l.title:void 0},[n]),o=(0,Zy.useCallback)(l=>n(u=>wrr(u,l)),[n]),s=(0,Zy.useCallback)(l=>n(u=>_rr(u,l)),[n]);return Err(e,n),{pendingLaunches:e,addPendingLaunch:i,resolvePendingLaunch:a,failPendingLaunch:o,dismissPendingLaunch:s}}var Arr=$(Ae(),1);function Prr(e,t){return(0,Arr.useCallback)(r=>{e(r),t(r)},[e,t])}var wC=$(Ae(),1);function Lrr(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function Mrr(e,t){let r=e.sessionId,n=t.resolvePendingLaunch();t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:n?`Started ${n}`:"New session started",sessionId:r})}function Irr(e,t){let r=e.sessionId,n=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,n+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function Drr(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId,launchedFrom:e.launchedFrom})}function Orr(e,t){let r=new Set(t.map(i=>i.id)),n=null;for(let i of Object.values(e))r.has(i)&&(n=i);return n}function Nrr(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd);let n=e.active??{};t.setDaemonActiveId(Orr(n,r))}function Brr(e,t){switch(e.type){case"sessions":Nrr(e,t);break;case"created":Mrr(e,t);break;case"history":t.setHistory(e.sessions);break;case"transcript":t.setTranscript({sessionId:e.sessionId,messages:e.messages});break;case"hello":t.setDaemonVersion(e.version);break;case"error":{let r=e.message;t.setError(r),t.failPendingLaunch(r);break}case"run-conflict":Drr(e,t);break;case"limits":t.setRateLimits(e.rateLimits);break;case"clear":Lrr(e,t);break;case"output":Irr(e,t);break}}function Frr(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",n=new WebSocket(`${r}//${location.host}/ws`);return n.onopen=()=>{t.onOpen?.(),n.send(JSON.stringify({type:"hello"})),n.send(JSON.stringify({type:"history"}))},n.onmessage=i=>{Brr(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function $rr(e,t,r,n){let i=!1,a,o=0,s=!1,l=()=>{i||t(Frr(e,{onOpen:()=>{s&&r(),s=!1,n(!1),o=0},onClose:()=>{if(i)return;s=!0,n(!0);let u=Math.min(300*2**o,2e3);o+=1,a=setTimeout(l,u)}}))};return l(),()=>{i=!0,a&&clearTimeout(a)}}function zrr(e){let t=(0,wC.useRef)(null),[r,n]=(0,wC.useState)(!1),{handleSessions:i,markInitialized:a,buffers:o,handlers:s}=e;(0,wC.useEffect)(()=>{let u=()=>{o.current?.clear();let f=s.current;if(f)for(let d of f.values())d("\x1Bc")},h=$rr({...e,setSessions:i},f=>{t.current=f},u,n);return()=>{h(),t.current?.close()}},[i,a,o,s]);let l=(0,wC.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function Urr(){let[e,t]=(0,Mg.useState)([]),[r,n]=(0,Mg.useState)([]),[i,a]=(0,Mg.useState)(null),o=yrr(),[s,l]=(0,Mg.useState)(null),[u,h]=(0,Mg.useState)(null),[f,d]=(0,Mg.useState)(""),p=Trr(),m=Rrr(),[g,y]=(0,Mg.useState)(null),{initialized:v,markInitialized:b,syncSessions:x}=xrr(),C=(0,Mg.useRef)(new Map),S=(0,Mg.useRef)(new Map),w=Prr(x,t),{wsRef:_,requestHistory:k,reconnecting:L}=zrr({handleSessions:w,setHistory:n,setActiveId:a,...o,setTranscript:l,setViewingTranscriptSessionId:h,setCurrentCwd:d,...p,...m,setRateLimits:y,markInitialized:b,buffers:C,handlers:S});return grr(e,a,o.daemonActiveId),{sessions:e,history:r,activeId:i,setActiveId:a,...o,transcript:s,viewingTranscriptSessionId:u,setViewingTranscriptSessionId:h,currentCwd:f,...p,...m,rateLimits:g,initialized:v,wsRef:_,buffers:C,handlers:S,requestHistory:k,reconnecting:L}}function Hrr(){let e=Urr(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:a,sessions:o}=e,s=Vtr(t,i),l=frr(s,r,n);ztr(a,o,e.history,s),Utr(o,s);let u=drr(s,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...l,...u}}var Wrr=$(Ae(),1);function Vrr(e,t,r,n){let i=Xce(e,t,r);(0,Wrr.useEffect)(()=>{i&&n(i)},[i,n])}var Jce=$(Ae(),1);function Grr(){let[e,t]=(0,Jce.useState)(!0);return(0,Jce.useEffect)(()=>{let r=!1;return(async()=>{try{let i=await(await fetch("/api/session-layout")).json();r||t(!!i?.topBar)}catch{t(!0)}})(),()=>{r=!0}},[]),e}function qrr(){let e=Hrr(),t=Mtr(e.currentCwd,e.history);Vrr(e.activeId,e.sessions,e.history,t.setSelectedCwd);let{launch:r,viewLaunchedSession:n}=Ftr(e),i=Grr();return{socket:e,selection:t,launch:r,viewLaunchedSession:n,topBar:i}}var Dd=$(G(),1),A4n={zIndex:e=>e.zIndex.drawer+1},P4n={minHeight:48};function jrr({mode:e,toggle:t}){let{socket:r,selection:n,launch:i,viewLaunchedSession:a,topBar:o}=qrr();return(0,Dd.jsx)(lAe.Provider,{value:o,children:(0,Dd.jsx)(xN.Provider,{value:n,children:(0,Dd.jsxs)(Qme.Provider,{value:i,children:[(0,Dd.jsx)(rMe.Provider,{value:r.daemonVersion,children:(0,Dd.jsx)(ktr,{mode:e,toggle:t,reconnecting:r.reconnecting})}),(0,Dd.jsx)(bhe,{position:"fixed",elevation:1,sx:A4n,children:(0,Dd.jsx)(itr,{socket:r,selection:n})}),(0,Dd.jsx)(pw,{variant:"dense",sx:P4n}),(0,Dd.jsx)(Ptr,{socket:r,children:(0,Dd.jsx)(ser,{socket:r})}),(0,Dd.jsx)(Ser,{socket:r,onViewLaunchedSession:a})]})})})}var Yrr=$(Ae(),1);function Xrr(){let[e,t]=(0,Yrr.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(n=>{let i=n==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var _C=$(G(),1),L4n={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function M4n(){let{mode:e,toggle:t}=Xrr(),r=(0,Zrr.useMemo)(()=>$g({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:L4n}),[e]);return(0,_C.jsxs)(jV,{theme:r,children:[(0,_C.jsx)(NG,{}),(0,_C.jsx)(jrr,{mode:e,toggle:t})]})}var I4n=Vme([{path:"*",element:(0,_C.jsx)(M4n,{})}]);function D4n(){return(0,_C.jsx)(Nme,{router:I4n})}var Krr=document.getElementById("app");Krr&&(0,Qrr.createRoot)(Krr).render((0,_C.jsx)(D4n,{}));})();
3955
3955
  /*! Bundled license information:
3956
3956
 
3957
3957
  react/cjs/react.production.js:
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { Command } from "commander";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "@staff0rd/assist",
9
- version: "0.524.0",
9
+ version: "0.526.0",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -521,6 +521,7 @@ var assistConfigShape = {
521
521
  }).optional(),
522
522
  worktree: z3.strictObject({
523
523
  enabled: z3.boolean().default(false),
524
+ watcher: z3.boolean().default(false),
524
525
  trunk: z3.boolean().default(false),
525
526
  includeDrafts: z3.boolean().default(false),
526
527
  root: z3.string().optional(),
@@ -4252,6 +4253,11 @@ var sessionsConfigHelp = [
4252
4253
  setter: "assist config set worktree.enabled true -g --repo",
4253
4254
  note: "opt in per repo: spill concurrent sessions into adjacent <clone>-N worktrees (default off)"
4254
4255
  },
4256
+ {
4257
+ key: "worktree.watcher",
4258
+ setter: "assist config set worktree.watcher true -g --repo",
4259
+ note: "a backlog run also starts one starred claude session in the clone running /watch, so the built version stays current while the run works in its worktree; requires worktree.enabled and a /watch command in the repo (default off)"
4260
+ },
4255
4261
  {
4256
4262
  key: "worktree.trunk",
4257
4263
  setter: "assist config set worktree.trunk true -g --repo",
@@ -19959,15 +19965,12 @@ function cloneHead(clone) {
19959
19965
  }
19960
19966
 
19961
19967
  // src/commands/sessions/daemon/worktree/createWorktree.ts
19962
- function createWorktree(clone, strategy, boundTreeRoots2) {
19968
+ function createWorktree(clone, strategy, boundTreeRoots2, preferredPath) {
19963
19969
  const base = strategy.root ? expandTilde2(strategy.root) : dirname25(clone);
19964
19970
  const registered = new Set(listWorktreePaths(clone));
19965
19971
  const branches = new Set(listLocalBranches(clone));
19966
- const path71 = nextWorktreePath(
19967
- clone,
19968
- base,
19969
- (candidate) => registered.has(candidate) || existsSync45(candidate) || boundTreeRoots2.has(candidate) || branches.has(basename14(candidate))
19970
- );
19972
+ const isTaken = (candidate) => registered.has(candidate) || existsSync45(candidate) || boundTreeRoots2.has(candidate) || branches.has(basename14(candidate));
19973
+ const path71 = preferredPath && !isTaken(preferredPath) ? preferredPath : nextWorktreePath(clone, base, isTaken);
19971
19974
  const start3 = worktreeStartPoint(clone, strategy.trunk);
19972
19975
  gitSync(clone, [
19973
19976
  "worktree",
@@ -20055,6 +20058,7 @@ function wouldDisturbWorkInProgress(clone, forCheckout) {
20055
20058
  // src/commands/sessions/daemon/worktree/worktreeConfigFor.ts
20056
20059
  var DISABLED = {
20057
20060
  enabled: false,
20061
+ watcher: false,
20058
20062
  trunk: false,
20059
20063
  includeDrafts: false,
20060
20064
  install: true,
@@ -20069,6 +20073,15 @@ function worktreeConfigFor(cwd) {
20069
20073
  }
20070
20074
  }
20071
20075
 
20076
+ // src/commands/sessions/daemon/worktree/forcedSpillReason.ts
20077
+ function forcedSpillReason(clone, trunk, options2) {
20078
+ if (options2.replacesTree)
20079
+ return `resumed session spilled out of the clone ${clone}: its worktree ${options2.replacesTree} is gone`;
20080
+ if (trunk === true && options2.commits === true)
20081
+ return `committing session spilled out of the clone ${clone}: worktree.trunk is on, so a commit here would land on the local mainline`;
20082
+ return void 0;
20083
+ }
20084
+
20072
20085
  // src/commands/sessions/daemon/worktree/allocateTree.ts
20073
20086
  function allocateTree(requestedCwd, boundTreeRoots2, options2 = {}) {
20074
20087
  if (!requestedCwd)
@@ -20080,22 +20093,18 @@ function allocateTree(requestedCwd, boundTreeRoots2, options2 = {}) {
20080
20093
  return { cwd: requestedCwd, kind: "primary", created: false };
20081
20094
  const clone = mainWorktree(repoRoot2) ?? repoRoot2;
20082
20095
  const reuse = { ...options2, includeDrafts: cfg.includeDrafts };
20083
- if (mustLeaveTrunk(cfg.trunk, options2))
20084
- daemonLog(
20085
- `committing session spilled out of the clone ${clone}: worktree.trunk is on, so a commit here would land on the local mainline`
20086
- );
20096
+ const forcedSpill = forcedSpillReason(clone, cfg.trunk, options2);
20097
+ if (forcedSpill) daemonLog(forcedSpill);
20087
20098
  else if (reusesClone(clone, boundTreeRoots2, reuse))
20088
20099
  return { cwd: clone, kind: "primary", created: false, clone };
20089
20100
  const path71 = createWorktree(
20090
20101
  clone,
20091
20102
  { root: cfg.root, trunk: cfg.trunk },
20092
- boundTreeRoots2
20103
+ boundTreeRoots2,
20104
+ options2.replacesTree
20093
20105
  );
20094
20106
  return { cwd: path71, kind: "worktree", created: true, clone };
20095
20107
  }
20096
- function mustLeaveTrunk(trunk, options2) {
20097
- return trunk === true && options2.commits === true;
20098
- }
20099
20108
  function keptInPlace(cwd) {
20100
20109
  daemonLog(
20101
20110
  `session kept in ${cwd}: launched against work already checked out there`
@@ -20142,9 +20151,11 @@ var persistedSessionSchema = z8.object({
20142
20151
  assistArgs: z8.array(z8.string()).optional(),
20143
20152
  activity: activitySchema.optional(),
20144
20153
  starred: z8.boolean().optional(),
20154
+ watcher: z8.boolean().optional(),
20145
20155
  autoRun: z8.boolean().optional(),
20146
20156
  autoAdvance: z8.boolean().optional(),
20147
20157
  reviewStarted: z8.boolean().optional(),
20158
+ launchedFrom: z8.string().optional(),
20148
20159
  undurable: z8.object({ reason: z8.string(), removesTree: z8.boolean().optional() }).optional()
20149
20160
  });
20150
20161
 
@@ -20169,9 +20180,11 @@ function toPersistedSession(session) {
20169
20180
  assistArgs: session.assistArgs,
20170
20181
  activity: session.activity,
20171
20182
  starred: session.starred,
20183
+ watcher: session.watcher,
20172
20184
  autoRun: session.autoRun,
20173
20185
  autoAdvance: session.autoAdvance,
20174
20186
  reviewStarted: session.reviewStarted,
20187
+ launchedFrom: session.launchedFrom,
20175
20188
  undurable: session.undurable
20176
20189
  };
20177
20190
  }
@@ -29594,7 +29607,7 @@ function requestDrain(socket, lines2) {
29594
29607
  }
29595
29608
 
29596
29609
  // src/commands/sessions/daemon/runDaemon.ts
29597
- import { mkdirSync as mkdirSync28 } from "fs";
29610
+ import { mkdirSync as mkdirSync29 } from "fs";
29598
29611
 
29599
29612
  // src/commands/sessions/daemon/createAutoExit.ts
29600
29613
  var DEFAULT_GRACE_MS = 6e4;
@@ -29714,6 +29727,7 @@ function toSessionInfo(session) {
29714
29727
  autoRun,
29715
29728
  autoAdvance,
29716
29729
  starred,
29730
+ watcher,
29717
29731
  design,
29718
29732
  pendingPrPreview,
29719
29733
  undurable
@@ -29735,6 +29749,7 @@ function toSessionInfo(session) {
29735
29749
  autoRun,
29736
29750
  autoAdvance,
29737
29751
  starred,
29752
+ watcher,
29738
29753
  design,
29739
29754
  pendingPrPreview,
29740
29755
  undurable
@@ -29938,6 +29953,8 @@ function buildArgs3(opts) {
29938
29953
  if (opts.design) {
29939
29954
  base.push("--append-system-prompt", readDesignSystemPrompt());
29940
29955
  base.push("--permission-mode", "auto");
29956
+ } else if (opts.auto) {
29957
+ base.push("--permission-mode", "auto");
29941
29958
  }
29942
29959
  if (opts.resumeSessionId) {
29943
29960
  return opts.prompt ? [...base, "--resume", opts.resumeSessionId, opts.prompt] : [...base, "--resume", opts.resumeSessionId];
@@ -31930,9 +31947,11 @@ function restoreBase(id, persisted) {
31930
31947
  assistArgs: persisted.assistArgs,
31931
31948
  initialPrompt: persisted.initialPrompt,
31932
31949
  starred: persisted.starred,
31950
+ watcher: persisted.watcher,
31933
31951
  autoRun: persisted.autoRun,
31934
31952
  autoAdvance: restoredAutoAdvance(id, persisted),
31935
- reviewStarted: persisted.reviewStarted
31953
+ reviewStarted: persisted.reviewStarted,
31954
+ launchedFrom: persisted.launchedFrom
31936
31955
  };
31937
31956
  }
31938
31957
 
@@ -31973,6 +31992,22 @@ function logDroppedSession(persisted, error) {
31973
31992
  );
31974
31993
  }
31975
31994
 
31995
+ // src/commands/sessions/daemon/remapLaunchedFrom.ts
31996
+ function remapLaunchedFrom(sessions, restoredIds) {
31997
+ for (const session of sessions.values()) {
31998
+ const persistedLauncherId = session.launchedFrom;
31999
+ if (persistedLauncherId == null) continue;
32000
+ const restoredLauncherId = restoredIds.get(persistedLauncherId);
32001
+ session.launchedFrom = restoredLauncherId === session.id ? void 0 : restoredLauncherId;
32002
+ logRemap(session, persistedLauncherId);
32003
+ }
32004
+ }
32005
+ function logRemap(session, persistedLauncherId) {
32006
+ daemonLog(
32007
+ session.launchedFrom ? `session ${session.id} relinked to launcher ${persistedLauncherId} -> ${session.launchedFrom}` : `session ${session.id} launcher ${persistedLauncherId} was not restored; left at the top level`
32008
+ );
32009
+ }
32010
+
31976
32011
  // src/commands/sessions/daemon/errorSession.ts
31977
32012
  function errorSession(id, persisted, error) {
31978
32013
  return {
@@ -32147,9 +32182,11 @@ function restoreOne(persisted, spawner, sessions) {
32147
32182
  try {
32148
32183
  const id = spawner.spawn((sid) => restoreSession(sid, persisted));
32149
32184
  logUnresumable(persisted.name, id, sessions.get(id));
32185
+ return id;
32150
32186
  } catch (error) {
32151
32187
  const reason4 = logRestoreError(persisted, error);
32152
32188
  spawnErrorCard(persisted, spawner, reason4);
32189
+ return void 0;
32153
32190
  }
32154
32191
  }
32155
32192
  function spawnErrorCard(persisted, spawner, reason4) {
@@ -32177,12 +32214,15 @@ function logRestoreError(persisted, error) {
32177
32214
  function restoreAll(spawner, sessions) {
32178
32215
  const persisted = loadPersistedSessions();
32179
32216
  const cap = sessionLimits.maxRestore();
32217
+ const restoredIds = /* @__PURE__ */ new Map();
32180
32218
  const names = persisted.slice(0, cap).map((entry) => {
32181
- restoreOne(entry, spawner, sessions);
32219
+ const id = restoreOne(entry, spawner, sessions);
32220
+ if (entry.id != null && id != null) restoredIds.set(entry.id, id);
32182
32221
  return entry.name;
32183
32222
  });
32184
32223
  for (const over of persisted.slice(cap))
32185
32224
  deferOne(over, spawner.recoveryCard, cap);
32225
+ remapLaunchedFrom(sessions, restoredIds);
32186
32226
  return names;
32187
32227
  }
32188
32228
  function deferOne(persisted, spawnRecoveryCard, cap) {
@@ -32577,6 +32617,14 @@ function startReusedRunPty(session, assistArgs, itemId2, hold, clients, onStatus
32577
32617
  return true;
32578
32618
  }
32579
32619
 
32620
+ // src/commands/sessions/daemon/worktree/isBacklogRunArgs.ts
32621
+ var ITEM_ID = /^a?\d+$/;
32622
+ function isBacklogRunArgs(args) {
32623
+ const [command, subcommand, ...rest] = args;
32624
+ if (command !== "backlog" || subcommand !== "run") return false;
32625
+ return rest.some((arg) => ITEM_ID.test(arg));
32626
+ }
32627
+
32580
32628
  // src/commands/sessions/daemon/worktree/isPrCheckoutArgs.ts
32581
32629
  var CHECKOUT_COMMANDS = /* @__PURE__ */ new Set(["review", "review-pr-comments"]);
32582
32630
  function isPrCheckoutArgs(args) {
@@ -32586,12 +32634,8 @@ function isPrCheckoutArgs(args) {
32586
32634
  }
32587
32635
 
32588
32636
  // src/commands/sessions/daemon/worktree/isCommittingArgs.ts
32589
- var ITEM_ID = /^a?\d+$/;
32590
32637
  function isCommittingArgs(args) {
32591
- if (isPrCheckoutArgs(args)) return true;
32592
- const [command, subcommand, ...rest] = args;
32593
- if (command !== "backlog" || subcommand !== "run") return false;
32594
- return rest.some((arg) => ITEM_ID.test(arg));
32638
+ return isPrCheckoutArgs(args) || isBacklogRunArgs(args);
32595
32639
  }
32596
32640
 
32597
32641
  // src/commands/sessions/daemon/worktree/boundTreeRoots.ts
@@ -33474,6 +33518,9 @@ function addAgentToStream(ctx, targetId, prompt, harness) {
33474
33518
  return spawnIntoStream(ctx, joinable.session, prompt, harness);
33475
33519
  }
33476
33520
 
33521
+ // src/commands/sessions/daemon/worktree/spawnInTree.ts
33522
+ import { existsSync as existsSync77 } from "fs";
33523
+
33477
33524
  // src/commands/sessions/daemon/createAssistSession.ts
33478
33525
  function createAssistSession(id, assistArgs, cwd, meta, holdPty) {
33479
33526
  const startedAt = Date.now();
@@ -33499,7 +33546,7 @@ function createAssistSession(id, assistArgs, cwd, meta, holdPty) {
33499
33546
  }
33500
33547
 
33501
33548
  // src/commands/sessions/daemon/resumeSession.ts
33502
- function resumeSession(id, sessionId, cwd, name) {
33549
+ function resumeSession(id, sessionId, cwd, name, holdPty) {
33503
33550
  const startedAt = Date.now();
33504
33551
  return {
33505
33552
  id,
@@ -33510,7 +33557,10 @@ function resumeSession(id, sessionId, cwd, name) {
33510
33557
  runningMs: 0,
33511
33558
  runningSince: null,
33512
33559
  waitingSince: startedAt,
33513
- pty: spawnClaude2({ resumeSessionId: sessionId, cwd, sessionId: id }),
33560
+ ...startOrHoldPty(
33561
+ () => spawnClaude2({ resumeSessionId: sessionId, cwd, sessionId: id }),
33562
+ holdPty
33563
+ ),
33514
33564
  scrollback: "",
33515
33565
  cwd,
33516
33566
  /* why: bind the card to the conversation it is resuming so a daemon restart
@@ -33529,6 +33579,128 @@ function allocateAndBind(ctx, cwd, create, options2 = {}) {
33529
33579
  return id;
33530
33580
  }
33531
33581
 
33582
+ // src/commands/sessions/daemon/createWatcherSession.ts
33583
+ import { randomUUID as randomUUID11 } from "crypto";
33584
+ var WATCH_PROMPT = "/watch";
33585
+ function createWatcherSession(id, cwd) {
33586
+ const claudeSessionId = randomUUID11();
33587
+ return {
33588
+ ...sessionBase(id, "running"),
33589
+ name: `Session ${id}`,
33590
+ commandType: "claude",
33591
+ pty: spawnClaude2({
33592
+ prompt: WATCH_PROMPT,
33593
+ cwd,
33594
+ sessionId: id,
33595
+ claudeSessionId,
33596
+ auto: true
33597
+ }),
33598
+ cwd,
33599
+ claudeSessionId,
33600
+ initialPrompt: WATCH_PROMPT,
33601
+ starred: true,
33602
+ watcher: true
33603
+ };
33604
+ }
33605
+
33606
+ // src/commands/sessions/daemon/worktree/ensureWatcher.ts
33607
+ function ensureWatcher(ctx, cwd) {
33608
+ if (!cwd) return void 0;
33609
+ const repoRoot2 = findRepoRoot(cwd) ?? cwd;
33610
+ const cfg = worktreeConfigFor(repoRoot2);
33611
+ if (!cfg.enabled || cfg.watcher !== true) return void 0;
33612
+ const clone = mainWorktree(repoRoot2) ?? repoRoot2;
33613
+ const live = liveWatcherFor(ctx.sessions, clone);
33614
+ if (live) {
33615
+ daemonLog(
33616
+ `no watcher spawned for the clone ${clone}: session ${live.id} is already watching it (${live.status})`
33617
+ );
33618
+ return void 0;
33619
+ }
33620
+ const id = allocateAndBind(
33621
+ ctx,
33622
+ clone,
33623
+ (sid, resolvedCwd) => createWatcherSession(sid, resolvedCwd ?? clone),
33624
+ { inPlace: true }
33625
+ );
33626
+ daemonLog(
33627
+ `spawned watcher session ${id} running /watch in the clone ${clone}`
33628
+ );
33629
+ return id;
33630
+ }
33631
+ function liveWatcherFor(sessions, clone) {
33632
+ for (const session of sessions.values())
33633
+ if (session.watcher === true && session.cwd === clone && session.status !== "stopped" && session.status !== "error")
33634
+ return session;
33635
+ return void 0;
33636
+ }
33637
+
33638
+ // src/commands/sessions/daemon/worktree/resumeInReplacementTree.ts
33639
+ import { existsSync as existsSync76 } from "fs";
33640
+
33641
+ // src/commands/sessions/daemon/worktree/carryTranscriptToTree.ts
33642
+ import { copyFileSync as copyFileSync2, existsSync as existsSync75, mkdirSync as mkdirSync28 } from "fs";
33643
+ import { join as join78 } from "path";
33644
+ function carryTranscriptToTree(claudeSessionId, fromCwd, toCwd) {
33645
+ const dir = projectDirForCwd(toCwd);
33646
+ if (dir === projectDirForCwd(fromCwd)) {
33647
+ daemonLog(
33648
+ `transcript ${claudeSessionId} already lives in ${dir}: resuming in the original worktree path`
33649
+ );
33650
+ return;
33651
+ }
33652
+ const dest = join78(dir, `${claudeSessionId}.jsonl`);
33653
+ if (existsSync75(dest)) {
33654
+ daemonLog(`transcript ${claudeSessionId} already present in ${dir}`);
33655
+ return;
33656
+ }
33657
+ const source = findTranscriptPathSync(fromCwd, claudeSessionId);
33658
+ if (!source) {
33659
+ daemonLog(
33660
+ `transcript ${claudeSessionId} not found under ${projectDirForCwd(fromCwd)}: resuming in ${toCwd} without it`
33661
+ );
33662
+ return;
33663
+ }
33664
+ try {
33665
+ mkdirSync28(dir, { recursive: true });
33666
+ copyFileSync2(source, dest);
33667
+ daemonLog(
33668
+ `transcript ${source} copied to ${dest} so ${toCwd} can resume it`
33669
+ );
33670
+ } catch (error) {
33671
+ daemonLog(
33672
+ `transcript ${claudeSessionId} could not be copied to ${dir}: ${error instanceof Error ? error.message : String(error)}`
33673
+ );
33674
+ }
33675
+ }
33676
+
33677
+ // src/commands/sessions/daemon/worktree/resumeInReplacementTree.ts
33678
+ function resumeInReplacementTree(ctx, claudeSessionId, missingCwd, name) {
33679
+ const clone = cloneForReapedTree(missingCwd);
33680
+ daemonLog(
33681
+ `resuming ${claudeSessionId}: its tree ${missingCwd} is gone, allocating from clone ${clone}`
33682
+ );
33683
+ return allocateAndBind(
33684
+ ctx,
33685
+ clone,
33686
+ (id, resolvedCwd, holdUntilSeeded) => {
33687
+ const cwd = resolvedCwd ?? clone;
33688
+ carryTranscriptToTree(claudeSessionId, missingCwd, cwd);
33689
+ daemonLog(`session ${id} resuming ${claudeSessionId} in ${cwd}`);
33690
+ return resumeSession(id, claudeSessionId, cwd, name, holdUntilSeeded);
33691
+ },
33692
+ { replacesTree: missingCwd }
33693
+ );
33694
+ }
33695
+ function cloneForReapedTree(missingCwd) {
33696
+ const clone = worktreeAttributionIncludingReaped(missingCwd)?.clone;
33697
+ if (!clone || !existsSync76(clone))
33698
+ throw new Error(
33699
+ `working directory no longer exists and no clone is recorded to re-allocate from: ${missingCwd}`
33700
+ );
33701
+ return clone;
33702
+ }
33703
+
33532
33704
  // src/commands/sessions/daemon/worktree/spawnInTree.ts
33533
33705
  function spawnInTree(ctx, prompt, cwd, design, harness, inPlace) {
33534
33706
  return allocateAndBind(
@@ -33539,7 +33711,7 @@ function spawnInTree(ctx, prompt, cwd, design, harness, inPlace) {
33539
33711
  );
33540
33712
  }
33541
33713
  function spawnAssistInTree(ctx, assistArgs, cwd, meta) {
33542
- return allocateAndBind(
33714
+ const id = allocateAndBind(
33543
33715
  ctx,
33544
33716
  cwd,
33545
33717
  (sid, resolvedCwd, holdUntilSeeded) => createAssistSession(sid, assistArgs, resolvedCwd, meta, holdUntilSeeded),
@@ -33550,9 +33722,14 @@ function spawnAssistInTree(ctx, assistArgs, cwd, meta) {
33550
33722
  inPlace: meta?.inPlace
33551
33723
  }
33552
33724
  );
33725
+ if (isBacklogRunArgs(assistArgs)) ensureWatcher(ctx, cwd);
33726
+ return id;
33553
33727
  }
33554
33728
  function resumeInTree(ctx, sessionId, cwd, name) {
33729
+ if (!existsSync77(cwd))
33730
+ return resumeInReplacementTree(ctx, sessionId, cwd, name);
33555
33731
  const id = ctx.spawnWith((sid) => resumeSession(sid, sessionId, cwd, name));
33732
+ daemonLog(`session ${id} resuming ${sessionId} in ${cwd}`);
33556
33733
  bindResumedWorktree(ctx.sessions.get(id), cwd, ctx.notify);
33557
33734
  return id;
33558
33735
  }
@@ -33871,9 +34048,9 @@ function safeParse2(line) {
33871
34048
  }
33872
34049
 
33873
34050
  // src/commands/sessions/daemon/repoDirExists.ts
33874
- import { existsSync as existsSync75 } from "fs";
34051
+ import { existsSync as existsSync78 } from "fs";
33875
34052
  function repoDirExists(cwd) {
33876
- return existsSync75(toGitCwd(cwd));
34053
+ return existsSync78(toGitCwd(cwd));
33877
34054
  }
33878
34055
 
33879
34056
  // src/commands/sessions/daemon/withRepoGroups.ts
@@ -34174,7 +34351,7 @@ async function recoverFromAddrInUse(server, manager, checkAutoExit) {
34174
34351
 
34175
34352
  // src/commands/sessions/daemon/runDaemon.ts
34176
34353
  async function runDaemon() {
34177
- mkdirSync28(daemonPaths.dir, { recursive: true });
34354
+ mkdirSync29(daemonPaths.dir, { recursive: true });
34178
34355
  daemonLog(
34179
34356
  `starting (reason: ${process.env.ASSIST_DAEMON_SPAWN_REASON ?? "manual"})`
34180
34357
  );
@@ -34433,9 +34610,9 @@ function buildLimitsSegment(rateLimits) {
34433
34610
 
34434
34611
  // src/commands/readGitBranch.ts
34435
34612
  import { readFileSync as readFileSync54, statSync as statSync14 } from "fs";
34436
- import { isAbsolute as isAbsolute4, join as join78, resolve as resolve21 } from "path";
34613
+ import { isAbsolute as isAbsolute4, join as join79, resolve as resolve21 } from "path";
34437
34614
  function resolveGitDir(cwd) {
34438
- const dotGit = join78(cwd, ".git");
34615
+ const dotGit = join79(cwd, ".git");
34439
34616
  let stat4;
34440
34617
  try {
34441
34618
  stat4 = statSync14(dotGit);
@@ -34465,7 +34642,7 @@ function readGitBranch(cwd) {
34465
34642
  }
34466
34643
  let head;
34467
34644
  try {
34468
- head = readFileSync54(join78(gitDir, "HEAD"), "utf8");
34645
+ head = readFileSync54(join79(gitDir, "HEAD"), "utf8");
34469
34646
  } catch {
34470
34647
  return null;
34471
34648
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.524.0",
3
+ "version": "0.526.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {