@staff0rd/assist 0.445.0 → 0.447.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
@@ -130,8 +130,8 @@ Backlog item ids are written and displayed in an `a`-prefixed form (e.g. item 55
130
130
  - `assist backlog [--dir <path>]` - Open the backlog tab in the web dashboard (same as `backlog web`). `--dir` overrides the directory used to resolve the current repository's git origin
131
131
  - `assist backlog list [--status <type>] [-a, --all] [--all-repos] [-v]` - List backlog items with status icons (alias: `ls`). Defaults to the current repository's todo/in-progress items; `--all` includes done/wontdo, `--all-repos` lists items across all repositories. Also available as the top-level shortcut `assist list` / `assist ls` with the same flags
132
132
  - `assist backlog add` - Add a new backlog item interactively (prompts for type: story/bug)
133
- - `assist backlog add --name <n> --type <t> --desc <d> --ac <criterion...>` - Add a backlog item from CLI options (used by `/draft`)
134
- - `assist backlog propose --json <file|->` - Review a complete agent-authored backlog item before it is created, from a JSON payload read from a file or stdin (`name`, `type`, `description`, `acceptanceCriteria`). In a web session it slides the rendered item into the preview pane and blocks: approval writes the item (including a bug's default `Fix` phase and any configured sub-tasks) and prints its id, while rejection exits non-zero with the reviewer's reason and each inline comment so the caller can revise and re-propose. Outside a web session it prints the rendered item and creates it. Used by `/bug`; the payload is strict, so an unknown key is an error. See [docs/backlog-item-preview.md](docs/backlog-item-preview.md)
133
+ - `assist backlog add --name <n> --type <t> --desc <d> --ac <criterion...>` - Add a backlog item from CLI options
134
+ - `assist backlog propose --json <file|->` - Review a complete agent-authored backlog item before it is created, from a JSON payload read from a file or stdin (`name`, `type`, `description`, `acceptanceCriteria`, and `phases` of `{ name, tasks, manualChecks }`). In a web session it slides the rendered item — plan included — into the preview pane and blocks: approval writes the item and every phase in order (plus any configured sub-tasks, and a bug's default `Fix` phase when no phases were given) and prints its id, while rejection exits non-zero with the reviewer's reason and each inline comment so the caller can revise and re-propose. Outside a web session it prints the rendered item and creates it. Used by `/draft` and `/bug`; the payload is strict, so an unknown key is an error. See [docs/backlog-item-preview.md](docs/backlog-item-preview.md)
135
135
  - `assist backlog add-phase <id> <name> --task <t...> [--manual-check <c...>] [--position <pos>]` - Add a phase (appends by default; `--position` inserts at a 1-indexed position)
136
136
  - `assist backlog add-subtask <id> --title <t> [--desc <d>]` - Add a sub-task (status `todo`) to a backlog item. Sub-tasks listed under the `subtasks` key (each `title` and optional `description`) in `assist.yml` and `~/.assist.yml` are auto-applied to every newly created item (stories and bugs); the global and project lists are combined
137
137
  - `assist backlog edit-subtask <id> <idx> [--title <t>] [--desc <d>] [--status <s>]` - Edit a sub-task by its 1-based index from `backlog show`; updates any combination of title, description, and status (omitted fields are left unchanged). `--desc` supports Markdown and `\n` line breaks (pass `--desc ""` to clear it); `--status` must be one of `todo`, `in-progress`, `done`
@@ -309,6 +309,8 @@ From WSL, the selector can also surface and drive Windows-host repos (requires `
309
309
  - `sessions.windowsDaemonHost` / `sessions.windowsDaemonPort` — where the WSL daemon reaches the native Windows daemon (defaults `127.0.0.1` / `51764`; set the host to the Windows IP on WSL2 NAT-mode networking).
310
310
  - `sessions.windowsVersionCheck` — how the WSL↔Windows daemon handshake reacts to a protocol-version mismatch: `block` (default) refuses creates and auto-heals the host, `warn` logs and proceeds anyway, `off` skips the check. Use `warn`/`off` to keep working across an unfixable version gap.
311
311
 
312
+ - `sessions.includeCommittedChanges` — when true (`assist config set sessions.includeCommittedChanges true -g`), the session card's change counts and the `/diff` view span the whole branch — `git diff` against `git merge-base HEAD <default branch>` — instead of only uncommitted work, so the change link survives the agent committing. Defaults to false; a silent no-op on the default branch, on detached HEAD, or when no default-branch ref resolves.
313
+
312
314
  A `run:` entry in `assist.yml` flagged `server: true` (with an optional display-only `port:`) is treated as a singleton **dev server**: at most one may be live per normalised git remote (`getCurrentOrigin`), i.e. across a clone and all its sibling clones of the same repo. Every session card for a repo that defines a `server: true` run shows a **▶ start** button (surfaced by `GET /api/server-runs?cwd=`); clicking it sends `create-run`. The daemon enforces the singleton on `create-run` (and on relaunch via retry) — if a server run is already live for that remote it rejects with a conflict instead of starting a second one that would collide on the port. The web UI turns that conflict into a "replace running server?" prompt; confirming stops the old server and starts the new one, declining leaves it untouched. The serving session's own card shows a `serving :<port>` chip and a **⏹ stop** button (stop leaves a relaunchable card rather than dismissing it), and the slot frees automatically whenever that session stops, exits, or is killed. Non-`server` runs (`build`, `test`, …) are unconstrained.
313
315
 
314
316
  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). Two per-repo flags control it, both **default off**:
@@ -24,7 +24,16 @@ Ask one question at a time. Wait for the user's response before asking the next.
24
24
 
25
25
  ## Step 3: Propose the item
26
26
 
27
- Once you have enough context, propose a complete backlog item. Show it to the user in a readable format:
27
+ Where the review happens depends on whether this is a web session — check it once:
28
+
29
+ ```
30
+ echo "${ASSIST_SESSION:-0}"
31
+ ```
32
+
33
+ - **`1` (web session):** do NOT print the item in the terminal. Skip straight to Step 5 — `assist backlog propose` slides the whole item, plan included, into the web UI preview pane, where the user approves it, rejects it, or leaves inline comments on specific lines. That pane is the review gate.
34
+ - **anything else:** show the user the item in chat as below, iterate (Step 4), then save.
35
+
36
+ Either way you compose the same content, so draft it before you call `propose`:
28
37
 
29
38
  **Name:** (concise title)
30
39
  **Type:** story or bug
@@ -83,27 +92,39 @@ Most phases should NOT have manual checks. Only add `manualChecks` to a phase wh
83
92
 
84
93
  ## Step 4: Iterate
85
94
 
86
- Ask the user if they want to change anything. Iterate until they confirm.
95
+ In a web session, skip this step — the preview pane handles it.
87
96
 
88
- ## Step 5: Save
97
+ Otherwise, ask the user if they want to change anything. Iterate until they confirm.
89
98
 
90
- Once confirmed, create the item and its phases via CLI commands.
99
+ ## Step 5: Save
91
100
 
92
- First, add the item and capture the id it prints:
101
+ Propose the item and capture the id it prints. Use `propose`, not `assist backlog add` plus `add-phase` — `propose` is the reviewed path for an agent-authored item, and it writes the item and every phase on a single approval:
93
102
 
94
103
  ```
95
- assist backlog add --name "Item name" --type story --desc "$(printf '## Background\n\nShort paragraph.\n\n## Goal\n\n- Bullet one\n- Bullet two')" --ac "criterion 1" --ac "criterion 2" 2>&1
104
+ cat <<'JSON' | assist backlog propose --json - 2>&1
105
+ {
106
+ "name": "Item name",
107
+ "type": "story",
108
+ "description": "## Background\n\nShort paragraph.\n\n## Goal\n\n- Bullet one\n- Bullet two",
109
+ "acceptanceCriteria": ["criterion 1", "criterion 2"],
110
+ "phases": [
111
+ { "name": "Phase one name", "tasks": ["Task 1", "Task 2"] },
112
+ { "name": "Phase two name", "tasks": ["Task 1"], "manualChecks": ["optional check"] }
113
+ ]
114
+ }
115
+ JSON
96
116
  ```
97
117
 
98
- Pass the description as real markdown with line breaks preserved (use `printf` or a quoted heredoc so `\n` becomes actual newlines, not the literal `\n` characters).
118
+ The payload is strict JSON — an unknown key is an error. `\n` inside the `description` string is a JSON escape and becomes a real newline, which is what the markdown rendering needs. Each phase needs at least one task; omit `manualChecks` for the phases that don't need any (most of them).
99
119
 
100
- Note the created item id from the output — you'll pass it to the done signal below.
120
+ In a web session this blocks until the user decides in the preview pane:
101
121
 
102
- Then add each phase:
122
+ - **Approved** — the item and all of its phases are created, and the item id is printed.
123
+ - **Rejected** — the command exits non-zero and prints the reason plus every inline comment with the excerpt it was left on. Do not retry verbatim: address each comment — including ones about the plan — then call `propose` again with the revised payload. Repeat until it is approved.
103
124
 
104
- ```
105
- assist backlog add-phase a<id> "Phase name" --task "Task 1" --task "Task 2" --manual-check "optional check" 2>&1
106
- ```
125
+ Outside a web session the rendered item is printed and created straight away.
126
+
127
+ Note the created item id from the output — you'll pass it to the done signal below.
107
128
 
108
129
  ### Associate an external tracker
109
130
 
@@ -3935,7 +3935,7 @@ ${h.join(`
3935
3935
  `)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),JRe&&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=wUt(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=QRe(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,-J6e),J6e),t/=J6e,t/Math.abs(t)+Math.round(t*(sgn-1)))}shouldForceSelection(e){return bae?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(),lgn)}_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&&!(bae&&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<cgn&&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=Jmn(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,d=0,f=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&&(d++,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&&(f+=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?(d++,v++):x>1&&(p+=x-1,l+=x-1),l++,v++}}l++;let m=s+u-h+f,g=Math.min(this._bufferService.cols,l-s+h+d-f-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=wUt(r,this._bufferService.cols)}};DRe=Vo([ur(3,Ju),ur(4,A4),ur(5,VRe),ur(6,eh),ur(7,Sb),ur(8,Tb)],DRe);var CUt=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={}}},_Ut=class{constructor(){this._color=new CUt,this._css=new CUt}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()}},ol=Object.freeze((()=>{let e=[So.toColor("#2e3436"),So.toColor("#cc0000"),So.toColor("#4e9a06"),So.toColor("#c4a000"),So.toColor("#3465a4"),So.toColor("#75507b"),So.toColor("#06989a"),So.toColor("#d3d7cf"),So.toColor("#555753"),So.toColor("#ef2929"),So.toColor("#8ae234"),So.toColor("#fce94f"),So.toColor("#729fcf"),So.toColor("#ad7fa8"),So.toColor("#34e2e2"),So.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:Os.toCss(n,i,a),rgba:Os.toRgba(n,i,a)})}for(let r=0;r<24;r++){let n=8+r*10;e.push({css:Os.toCss(n,n,n),rgba:Os.toRgba(n,n,n)})}return e})()),w4=So.toColor("#ffffff"),Fz=So.toColor("#000000"),kUt=So.toColor("#ffffff"),EUt=Fz,Iz={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117},dgn=w4,ORe=class extends Pn{constructor(e){super(),this._optionsService=e,this._contrastCache=new _Ut,this._halfContrastCache=new _Ut,this._onChangeColors=this._register(new tr),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:w4,background:Fz,cursor:kUt,cursorAccent:EUt,selectionForeground:void 0,selectionBackgroundTransparent:Iz,selectionBackgroundOpaque:Wa.blend(Fz,Iz),selectionInactiveBackgroundTransparent:Iz,selectionInactiveBackgroundOpaque:Wa.blend(Fz,Iz),scrollbarSliderBackground:Wa.opacity(w4,.2),scrollbarSliderHoverBackground:Wa.opacity(w4,.4),scrollbarSliderActiveBackground:Wa.opacity(w4,.5),overviewRulerBorder:w4,ansi:ol.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=sa(e.foreground,w4),t.background=sa(e.background,Fz),t.cursor=Wa.blend(t.background,sa(e.cursor,kUt)),t.cursorAccent=Wa.blend(t.background,sa(e.cursorAccent,EUt)),t.selectionBackgroundTransparent=sa(e.selectionBackground,Iz),t.selectionBackgroundOpaque=Wa.blend(t.background,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundTransparent=sa(e.selectionInactiveBackground,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundOpaque=Wa.blend(t.background,t.selectionInactiveBackgroundTransparent),t.selectionForeground=e.selectionForeground?sa(e.selectionForeground,xUt):void 0,t.selectionForeground===xUt&&(t.selectionForeground=void 0),Wa.isOpaque(t.selectionBackgroundTransparent)&&(t.selectionBackgroundTransparent=Wa.opacity(t.selectionBackgroundTransparent,.3)),Wa.isOpaque(t.selectionInactiveBackgroundTransparent)&&(t.selectionInactiveBackgroundTransparent=Wa.opacity(t.selectionInactiveBackgroundTransparent,.3)),t.scrollbarSliderBackground=sa(e.scrollbarSliderBackground,Wa.opacity(t.foreground,.2)),t.scrollbarSliderHoverBackground=sa(e.scrollbarSliderHoverBackground,Wa.opacity(t.foreground,.4)),t.scrollbarSliderActiveBackground=sa(e.scrollbarSliderActiveBackground,Wa.opacity(t.foreground,.5)),t.overviewRulerBorder=sa(e.overviewRulerBorder,dgn),t.ansi=ol.slice(),t.ansi[0]=sa(e.black,ol[0]),t.ansi[1]=sa(e.red,ol[1]),t.ansi[2]=sa(e.green,ol[2]),t.ansi[3]=sa(e.yellow,ol[3]),t.ansi[4]=sa(e.blue,ol[4]),t.ansi[5]=sa(e.magenta,ol[5]),t.ansi[6]=sa(e.cyan,ol[6]),t.ansi[7]=sa(e.white,ol[7]),t.ansi[8]=sa(e.brightBlack,ol[8]),t.ansi[9]=sa(e.brightRed,ol[9]),t.ansi[10]=sa(e.brightGreen,ol[10]),t.ansi[11]=sa(e.brightYellow,ol[11]),t.ansi[12]=sa(e.brightBlue,ol[12]),t.ansi[13]=sa(e.brightMagenta,ol[13]),t.ansi[14]=sa(e.brightCyan,ol[14]),t.ansi[15]=sa(e.brightWhite,ol[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]=sa(e.extendedAnsi[n],ol[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()}}};ORe=Vo([ur(0,eh)],ORe);function sa(e,t){if(e!==void 0)try{return So.toColor(e)}catch{}return t}var fgn=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)}},pgn=class{constructor(){this._services=new fgn,this._services.set(WRe,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){let r=Dfn(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)}},mgn={trace:0,debug:1,info:2,warn:3,error:4,off:5},ggn="xterm.js: ",NRe=class extends Pn{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),ygn=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=mgn[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?"":ggn)+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)}};NRe=Vo([ur(0,eh)],NRe);var ygn,RUt=class extends Pn{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this._register(new tr),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new tr),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new tr),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}},On=3,Ds=Object.freeze(new Xz),rae=0,eRe=2,zz=class HHt{constructor(t,r,n=!1){this.isWrapped=n,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(t*On);let i=r||Up.fromCharData([0,QUt,1,0]);for(let a=0;a<t;++a)this.setCell(a,i);this.length=t}get(t){let r=this._data[t*On+0],n=r&2097151;return[this._data[t*On+1],r&2097152?this._combined[t]:n?hS(n):"",r>>22,r&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):n]}set(t,r){this._data[t*On+1]=r[0],r[1].length>1?(this._combined[t]=r[1],this._data[t*On+0]=t|2097152|r[2]<<22):this._data[t*On+0]=r[1].charCodeAt(0)|r[2]<<22}getWidth(t){return this._data[t*On+0]>>22}hasWidth(t){return this._data[t*On+0]&12582912}getFg(t){return this._data[t*On+1]}getBg(t){return this._data[t*On+2]}hasContent(t){return this._data[t*On+0]&4194303}getCodePoint(t){let r=this._data[t*On+0];return r&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):r&2097151}isCombined(t){return this._data[t*On+0]&2097152}getString(t){let r=this._data[t*On+0];return r&2097152?this._combined[t]:r&2097151?hS(r&2097151):""}isProtected(t){return this._data[t*On+2]&536870912}loadCell(t,r){return rae=t*On,r.content=this._data[rae+0],r.fg=this._data[rae+1],r.bg=this._data[rae+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*On+0]=r.content,this._data[t*On+1]=r.fg,this._data[t*On+2]=r.bg}setCellFromCodepoint(t,r,n,i){i.bg&268435456&&(this._extendedAttrs[t]=i.extended),this._data[t*On+0]=r|n<<22,this._data[t*On+1]=i.fg,this._data[t*On+2]=i.bg}addCodepointToCell(t,r,n){let i=this._data[t*On+0];i&2097152?this._combined[t]+=hS(r):i&2097151?(this._combined[t]=hS(i&2097151)+hS(r),i&=-2097152,i|=2097152):i=r|1<<22,n&&(i&=-12582913,i|=n<<22),this._data[t*On+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 Up;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 Up;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*eRe<this._data.buffer.byteLength;let n=t*On;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*eRe<this._data.buffer.byteLength}cleanupMemory(){if(this._data.length*4*eRe<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 HHt(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*On+0]&4194303)return t+(this._data[t*On+0]>>22);return 0}getNoBgTrimmedLength(){for(let t=this.length-1;t>=0;--t)if(this._data[t*On+0]&4194303||this._data[t*On+2]&50331648)return t+(this._data[t*On+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<On;u++)this._data[(n+l)*On+u]=o[(r+l)*On+u];o[(r+l)*On+2]&268435456&&(this._extendedAttrs[n+l]=t._extendedAttrs[r+l])}else for(let l=0;l<i;l++){for(let u=0;u<On;u++)this._data[(n+l)*On+u]=o[(r+l)*On+u];o[(r+l)*On+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*On+0],s=o&2097151,l=o&2097152?this._combined[r]:s?hS(s):dS;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 vgn(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 d=0,f=Yz(h,d,t),p=1,m=0;for(;p<h.length;){let y=Yz(h,p,t),v=y-m,b=r-f,x=Math.min(v,b);h[d].copyCellsFrom(h[p],m,f,x,!1),f+=x,f===r&&(d++,f=0),m+=x,m===y&&(p++,m=0),f===0&&d!==0&&h[d-1].getWidth(r-1)===2&&(h[d].copyCellsFrom(h[d-1],r-1,f++,1,!1),h[d-1].setCell(r-1,i))}h[d].replaceCells(f,r,i);let g=0;for(let y=h.length-1;y>0&&(y>d||h[y].getTrimmedLength()===0);y--)g++;g>0&&(o.push(s+h.length-g),o.push(g)),s+=h.length-1}return o}function bgn(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 xgn(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 Tgn(e,t,r){let n=[],i=e.map((l,u)=>Yz(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=Yz(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 Yz(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 GHt=class WHt{constructor(t){this.line=t,this.isDisposed=!1,this._disposables=[],this._id=WHt._nextId++,this._onDispose=this.register(new tr),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),E4(this._disposables),this._disposables.length=0)}register(t){return this._disposables.push(t),t}};GHt._nextId=1;var Sgn=GHt,ll={},C4=ll.B;ll[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"};ll.A={"#":"\xA3"};ll.B=void 0;ll[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"};ll.C=ll[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"};ll.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"};ll.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"};ll.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"};ll.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"};ll.E=ll[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"};ll.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"};ll.H=ll[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"};ll["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"};var AUt=4294967295,PUt=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=Ds.clone(),this.savedCharset=C4,this.markers=[],this._nullCell=Up.fromCharData([0,QUt,1,0]),this._whitespaceCell=Up.fromCharData([0,dS,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new xae,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new RUt(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 fae),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 fae),this._whitespaceCell}getBlankLine(e,t){return new zz(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>AUt?AUt:t}fillViewportRows(e){if(this.lines.length===0){e===void 0&&(e=Ds);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 RUt(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){let r=this.getNullCell(Ds),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 zz(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 zz(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=vgn(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(Ds),r);if(n.length>0){let i=bgn(this.lines,n);xgn(this.lines,i.layout),this._reflowLargerAdjustViewport(e,t,i.countRemoved)}}_reflowLargerAdjustViewport(e,t,r){let n=this.getNullCell(Ds),i=r;for(;i-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new zz(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(Ds),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=Tgn(l,this._cols,e),d=h.length-l.length,f;this.ybase===0&&this.y!==this.lines.length-1?f=Math.max(0,this.y-this.lines.maxLength+d):f=Math.max(0,this.lines.length-this.lines.maxLength+d);let p=[];for(let x=0;x<d;x++){let S=this.getBlankLine(Ds,!0);p.push(S)}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-d-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 S=Math.max(y,0);v=Yz(l,S,this._cols)}}for(let x=0;x<l.length;x++)h[x]<e&&l[x].setCell(h[x],n);let b=d-f;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+d,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,d=i[h];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+a);let f=0;for(let g=Math.min(this.lines.maxLength-1,l+a-1);g>=0;g--)if(d&&d.start>u+f){for(let y=d.newLines.length-1;y>=0;y--)this.lines.set(g--,d.newLines[y]);g++,o.push({index:u+1,amount:d.newLines.length}),f+=d.newLines.length,d=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 Sgn(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)}},wgn=class extends Pn{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this._register(new tr),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 PUt(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new PUt(!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)}},VHt=2,qHt=1,BRe=class extends Pn{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new tr),this.onResize=this._onResize.event,this._onScroll=this._register(new tr),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,VHt),this.rows=Math.max(e.rawOptions.rows||0,qHt),this.buffers=this._register(new wgn(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))}};BRe=Vo([ur(0,eh)],BRe);var _M={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:bae,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRuler:{}},Cgn=["normal","bold","100","200","300","400","500","600","700","800","900"],_gn=class extends Pn{constructor(e){super(),this._onOptionChange=this._register(new tr),this.onOptionChange=this._onOptionChange.event;let t={..._M};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(Va(()=>{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 _M))throw new Error(`No option with key "${r}"`);return this.rawOptions[r]},t=(r,n)=>{if(!(r in _M))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=_M[e]),!kgn(t))throw new Error(`"${t}" is not a valid value for ${e}`);break;case"wordSeparator":t||(t=_M[e]);break;case"fontWeight":case"fontWeightBold":if(typeof t=="number"&&1<=t&&t<=1e3)break;t=Cgn.includes(t)?t:_M[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 kgn(e){return e==="block"||e==="underline"||e==="bar"}function Uz(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]&&Uz(e[n],t-1);return r}var LUt=Object.freeze({insertMode:!1}),MUt=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),$Re=class extends Pn{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 tr),this.onData=this._onData.event,this._onUserInput=this._register(new tr),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new tr),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new tr),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=Uz(LUt),this.decPrivateModes=Uz(MUt)}reset(){this.modes=Uz(LUt),this.decPrivateModes=Uz(MUt)}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))}};$Re=Vo([ur(0,Ju),ur(1,nHt),ur(2,eh)],$Re);var IUt={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 tRe(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 rRe=String.fromCharCode,DUt={DEFAULT:e=>{let t=[tRe(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`\x1B[M${rRe(t[0])}${rRe(t[1])}${rRe(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?"m":"M";return`\x1B[<${tRe(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?"m":"M";return`\x1B[<${tRe(e,!0)};${e.x};${e.y}${t}`}},FRe=class extends Pn{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 tr),this.onProtocolChange=this._onProtocolChange.event;for(let n of Object.keys(IUt))this.addProtocol(n,IUt[n]);for(let n of Object.keys(DUt))this.addEncoding(n,DUt[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)}};FRe=Vo([ur(0,Ju),ur(1,A4),ur(2,eh)],FRe);var nRe=[[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]],Egn=[[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]],sl;function Rgn(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 Agn=class{constructor(){if(this.version="6",!sl){sl=new Uint8Array(65536),sl.fill(1),sl[0]=0,sl.fill(0,1,32),sl.fill(0,127,160),sl.fill(2,4352,4448),sl[9001]=2,sl[9002]=2,sl.fill(2,11904,42192),sl[12351]=1,sl.fill(2,44032,55204),sl.fill(2,63744,64256),sl.fill(2,65040,65050),sl.fill(2,65072,65136),sl.fill(2,65280,65377),sl.fill(2,65504,65511);for(let e=0;e<nRe.length;++e)sl.fill(0,nRe[e][0],nRe[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?sl[e]:Rgn(e,Egn)?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 dae{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new tr,this.onChange=this._onChange.event;let t=new Agn;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=dae.extractWidth(s);dae.extractShouldJoin(s)&&(l-=dae.extractWidth(n)),r+=l,n=s}return r}charProperties(t,r){return this._activeProvider.charProperties(t,r)}},Pgn=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 OUt(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 Dz=2147483647,Lgn=256,jHt=class zRe{constructor(t=32,r=32){if(this.maxLength=t,this.maxSubParamsLength=r,r>Lgn)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 zRe;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 zRe(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>Dz?Dz: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>Dz?Dz: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,Dz):t}},Oz=[],Mgn=class{constructor(){this._state=0,this._active=Oz,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=Oz}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=Oz,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||Oz,!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",Sae(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=Oz,this._id=-1,this._state=0}}},gf=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+=Sae(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}},Nz=[],Ign=class{constructor(){this._handlers=Object.create(null),this._active=Nz,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=Nz}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=Nz,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||Nz,!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",Sae(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=Nz,this._ident=0}},Hz=new jHt;Hz.addParam(0);var NUt=class{constructor(e){this._handler=e,this._data="",this._params=Hz,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():Hz,this._data="",this._hitLimit=!1}put(e,t,r){this._hitLimit||(this._data+=Sae(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=Hz,this._data="",this._hitLimit=!1,r));return this._params=Hz,this._data="",this._hitLimit=!1,t}},Dgn=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}},zp=160,Ogn=(function(){let e=new Dgn(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(zp,0,2,0),e.add(zp,8,5,8),e.add(zp,6,0,6),e.add(zp,11,0,11),e.add(zp,13,13,13),e})(),Ngn=class extends Pn{constructor(e=Ogn){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 jHt,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(Va(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new Mgn),this._dcsParser=this._register(new Ign),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:zp)],i>>4){case 2:for(let f=s+1;;++f){if(f>=t||(n=e[f])<32||n>126&&n<zp){this._printHandler(e,s,f),s=f-1;break}if(++f>=t||(n=e[f])<32||n>126&&n<zp){this._printHandler(e,s,f),s=f-1;break}if(++f>=t||(n=e[f])<32||n>126&&n<zp){this._printHandler(e,s,f),s=f-1;break}if(++f>=t||(n=e[f])<32||n>126&&n<zp){this._printHandler(e,s,f),s=f-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],d=h?h.length-1:-1;for(;d>=0&&(o=h[d](),o!==!0);d--)if(o instanceof Promise)return this._preserveStack(4,h,d,i,s),o;d<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 f=s+1;;++f)if(f>=t||(n=e[f])===24||n===26||n===27||n>127&&n<zp){this._dcsParser.put(e,s,f),s=f-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 f=s+1;;f++)if(f>=t||(n=e[f])<32||n>127&&n<zp){this._oscParser.put(e,s,f),s=f-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}}},Bgn=/^([\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})$/,$gn=/^[\da-f]+$/;function BUt(e){if(!e)return;let t=e.toLowerCase();if(t.indexOf("rgb:")===0){t=t.slice(4);let r=Bgn.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),$gn.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 iRe(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 Fgn(e,t=16){let[r,n,i]=e;return`rgb:${iRe(r,t)}/${iRe(n,t)}/${iRe(i,t)}`}var zgn={"(":0,")":1,"*":2,"+":3,"-":1,".":2},uS=131072,$Ut=10;function FUt(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 zUt=5e3,UUt=0,Ugn=class extends Pn{constructor(e,t,r,n,i,a,o,s,l=new Ngn){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 Mfn,this._utf8Decoder=new Ifn,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=Ds.clone(),this._eraseAttrDataInternal=Ds.clone(),this._onRequestBell=this._register(new tr),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new tr),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new tr),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new tr),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new tr),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new tr),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new tr),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new tr),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new tr),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new tr),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new tr),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new tr),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new tr),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 URe(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,d)=>{this._logService.debug("Unknown OSC code: ",{identifier:u,action:h,data:d})}),this._parser.setDcsHandlerFallback((u,h,d)=>{h==="HOOK"&&(d=d.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(u),action:h,payload:d})}),this._parser.setPrintHandler((u,h,d)=>this.print(u,h,d)),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(Pt.BEL,()=>this.bell()),this._parser.setExecuteHandler(Pt.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(Pt.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(Pt.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(Pt.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(Pt.BS,()=>this.backspace()),this._parser.setExecuteHandler(Pt.HT,()=>this.tab()),this._parser.setExecuteHandler(Pt.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(Pt.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(uae.IND,()=>this.index()),this._parser.setExecuteHandler(uae.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(uae.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new gf(u=>(this.setTitle(u),this.setIconName(u),!0))),this._parser.registerOscHandler(1,new gf(u=>this.setIconName(u))),this._parser.registerOscHandler(2,new gf(u=>this.setTitle(u))),this._parser.registerOscHandler(4,new gf(u=>this.setOrReportIndexedColor(u))),this._parser.registerOscHandler(8,new gf(u=>this.setHyperlink(u))),this._parser.registerOscHandler(10,new gf(u=>this.setOrReportFgColor(u))),this._parser.registerOscHandler(11,new gf(u=>this.setOrReportBgColor(u))),this._parser.registerOscHandler(12,new gf(u=>this.setOrReportCursorColor(u))),this._parser.registerOscHandler(104,new gf(u=>this.restoreIndexedColor(u))),this._parser.registerOscHandler(110,new gf(u=>this.restoreFgColor(u))),this._parser.registerOscHandler(111,new gf(u=>this.restoreBgColor(u))),this._parser.registerOscHandler(112,new gf(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 ll)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 NUt((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"),zUt))]).catch(t=>{if(t!=="#SLOW_TIMEOUT")throw t;console.warn(`async parser handler taking longer than ${zUt} 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>uS&&(a=this._parseStack.position+uS)}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<uS&&(this._parseBuffer=new Uint32Array(Math.min(e.length,uS))),o||this._dirtyRowTracker.clearRange(),e.length>uS)for(let u=a;u<e.length;u+=uS){let h=u+uS<e.length?u+uS:e.length,d=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,d))return this._preserveStack(n,i,d,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,d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&r-t>0&&d.getWidth(this._activeBuffer.x-1)===2&&d.setCellFromCodepoint(this._activeBuffer.x-1,0,1,h);let f=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,f);i=_4.extractWidth(m);let g=_4.extractShouldJoin(m),y=g?_4.extractWidth(f):0;if(f=m,o&&this._onA11yChar.fire(hS(n)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+i-y>s){if(l){let v=d,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),d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),y>0&&d instanceof zz&&d.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=d.getWidth(this._activeBuffer.x-1)?1:2;d.addCodepointToCell(this._activeBuffer.x-v,n,i);for(let b=i-y;--b>=0;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,h);continue}if(u&&(d.insertCells(this._activeBuffer.x,i-y,this._activeBuffer.getNullCell(h)),d.getWidth(s-1)===2&&d.setCellFromCodepoint(s-1,0,1,h)),d.setCellFromCodepoint(this._activeBuffer.x++,n,i,h),i>0)for(;--i;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,h)}this._parser.precedingJoinState=f,this._activeBuffer.x<s&&r-t>0&&d.getWidth(this._activeBuffer.x)===0&&!d.hasContent(this._activeBuffer.x)&&d.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=>FUt(r.params[0],this._optionsService.rawOptions.windowOptions)?t(r):!0):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new NUt(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new gf(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(Ds));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(Pt.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(Pt.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(Pt.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(Pt.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(Pt.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,C4),this._charsetService.setgCharset(1,C4),this._charsetService.setgCharset(2,C4),this._charsetService.setgCharset(3,C4);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,d=this._optionsService.rawOptions,f=(g,y)=>(o.triggerDataEvent(`${Pt.ESC}[${t?"":"?"}${g};${y}$y`),!0),p=g=>g?1:2,m=e.params[0];return t?m===2?f(m,4):m===4?f(m,p(o.modes.insertMode)):m===12?f(m,3):m===20?f(m,p(d.convertEol)):f(m,0):m===1?f(m,p(n.applicationCursorKeys)):m===3?f(m,d.windowOptions.setWinLines?l===80?2:l===132?1:0:0):m===6?f(m,p(n.origin)):m===7?f(m,p(n.wraparound)):m===8?f(m,3):m===9?f(m,p(i==="X10")):m===12?f(m,p(d.cursorBlink)):m===25?f(m,p(!o.isCursorHidden)):m===45?f(m,p(n.reverseWraparound)):m===66?f(m,p(n.applicationKeypad)):m===67?f(m,4):m===1e3?f(m,p(i==="VT200")):m===1002?f(m,p(i==="DRAG")):m===1003?f(m,p(i==="ANY")):m===1004?f(m,p(n.sendFocus)):m===1005?f(m,4):m===1006?f(m,p(a==="SGR")):m===1015?f(m,4):m===1016?f(m,p(a==="SGR_PIXELS")):m===1048?f(m,1):m===47||m===1047||m===1049?f(m,p(u===h)):m===2004?f(m,p(n.bracketedPasteMode)):m===2026?f(m,p(n.synchronizedOutput)):f(m,0)}_updateAttrColor(e,t,r,n,i){return t===2?(e|=50331648,e&=-16777216,e|=Xz.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=Ds.fg,e.bg=Ds.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|=Ds.fg&16777215):r===49?(n.bg&=-67108864,n.bg|=Ds.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|=Ds.fg&16777215,n.bg&=-67108864,n.bg|=Ds.bg&16777215):this._logService.debug("Unknown SGR attribute: %d.",r);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${Pt.ESC}[0n`);break;case 6:let t=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${Pt.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(`${Pt.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=Ds.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(!FUt(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(`${Pt.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(t===0||t===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>$Ut&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>$Ut&&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(HUt(a))if(i==="?")t.push({type:0,index:a});else{let o=BUt(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=BUt(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]);HUt(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,C4),!0}selectCharset(e){return e.length!==2?(this.selectDefaultCharset(),!0):(e[0]==="/"||this._charsetService.setgCharset(zgn[e[0]],ll[e[1]]||C4),!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=Ds.clone(),this._eraseAttrDataInternal=Ds.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 Up;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(`${Pt.ESC}${o}${Pt.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)}},URe=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&&(UUt=e,e=t,t=UUt),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};URe=Vo([ur(0,Ju)],URe);function HUt(e){return 0<=e&&e<256}var Hgn=5e7,GUt=12,Ggn=50,Wgn=class extends Pn{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 tr),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>Hgn)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>=GUt?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>=GUt)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>Ggn&&(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()}},HRe=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)))}};HRe=Vo([ur(0,Ju)],HRe);var WUt=!1,Vgn=class extends Pn{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new EM),this._onBinary=this._register(new tr),this.onBinary=this._onBinary.event,this._onData=this._register(new tr),this.onData=this._onData.event,this._onLineFeed=this._register(new tr),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new tr),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new tr),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new tr),this._instantiationService=new pgn,this.optionsService=this._register(new _gn(e)),this._instantiationService.setService(eh,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(BRe)),this._instantiationService.setService(Ju,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(NRe)),this._instantiationService.setService(nHt,this._logService),this.coreService=this._register(this._instantiationService.createInstance($Re)),this._instantiationService.setService(A4,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(FRe)),this._instantiationService.setService(rHt,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(_4)),this._instantiationService.setService(Bfn,this.unicodeService),this._charsetService=this._instantiationService.createInstance(Pgn),this._instantiationService.setService(Nfn,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(HRe),this._instantiationService.setService(iHt,this._oscLinkService),this._inputHandler=this._register(new Ugn(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(Oc.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(Oc.forward(this._bufferService.onResize,this._onResize)),this._register(Oc.forward(this.coreService.onData,this._onData)),this._register(Oc.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 Wgn((t,r)=>this._inputHandler.parse(t,r))),this._register(Oc.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new tr),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&&!WUt&&(this._logService.warn("writeSync is unreliable and will be removed soon."),WUt=!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,VHt),t=Math.max(t,qHt),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(OUt.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},()=>(OUt(this._bufferService),!1))),this._windowsWrappingHeuristics.value=Va(()=>{for(let t of e)t.dispose()})}}},qgn={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 jgn(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=Pt.ESC+"OA":i.key=Pt.ESC+"[A":e.key==="UIKeyInputLeftArrow"?t?i.key=Pt.ESC+"OD":i.key=Pt.ESC+"[D":e.key==="UIKeyInputRightArrow"?t?i.key=Pt.ESC+"OC":i.key=Pt.ESC+"[C":e.key==="UIKeyInputDownArrow"&&(t?i.key=Pt.ESC+"OB":i.key=Pt.ESC+"[B");break;case 8:i.key=e.ctrlKey?"\b":Pt.DEL,e.altKey&&(i.key=Pt.ESC+i.key);break;case 9:if(e.shiftKey){i.key=Pt.ESC+"[Z";break}i.key=Pt.HT,i.cancel=!0;break;case 13:i.key=e.altKey?Pt.ESC+Pt.CR:Pt.CR,i.cancel=!0;break;case 27:i.key=Pt.ESC,e.altKey&&(i.key=Pt.ESC+Pt.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;a?i.key=Pt.ESC+"[1;"+(a+1)+"D":t?i.key=Pt.ESC+"OD":i.key=Pt.ESC+"[D";break;case 39:if(e.metaKey)break;a?i.key=Pt.ESC+"[1;"+(a+1)+"C":t?i.key=Pt.ESC+"OC":i.key=Pt.ESC+"[C";break;case 38:if(e.metaKey)break;a?i.key=Pt.ESC+"[1;"+(a+1)+"A":t?i.key=Pt.ESC+"OA":i.key=Pt.ESC+"[A";break;case 40:if(e.metaKey)break;a?i.key=Pt.ESC+"[1;"+(a+1)+"B":t?i.key=Pt.ESC+"OB":i.key=Pt.ESC+"[B";break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=Pt.ESC+"[2~");break;case 46:a?i.key=Pt.ESC+"[3;"+(a+1)+"~":i.key=Pt.ESC+"[3~";break;case 36:a?i.key=Pt.ESC+"[1;"+(a+1)+"H":t?i.key=Pt.ESC+"OH":i.key=Pt.ESC+"[H";break;case 35:a?i.key=Pt.ESC+"[1;"+(a+1)+"F":t?i.key=Pt.ESC+"OF":i.key=Pt.ESC+"[F";break;case 33:e.shiftKey?i.type=2:e.ctrlKey?i.key=Pt.ESC+"[5;"+(a+1)+"~":i.key=Pt.ESC+"[5~";break;case 34:e.shiftKey?i.type=3:e.ctrlKey?i.key=Pt.ESC+"[6;"+(a+1)+"~":i.key=Pt.ESC+"[6~";break;case 112:a?i.key=Pt.ESC+"[1;"+(a+1)+"P":i.key=Pt.ESC+"OP";break;case 113:a?i.key=Pt.ESC+"[1;"+(a+1)+"Q":i.key=Pt.ESC+"OQ";break;case 114:a?i.key=Pt.ESC+"[1;"+(a+1)+"R":i.key=Pt.ESC+"OR";break;case 115:a?i.key=Pt.ESC+"[1;"+(a+1)+"S":i.key=Pt.ESC+"OS";break;case 116:a?i.key=Pt.ESC+"[15;"+(a+1)+"~":i.key=Pt.ESC+"[15~";break;case 117:a?i.key=Pt.ESC+"[17;"+(a+1)+"~":i.key=Pt.ESC+"[17~";break;case 118:a?i.key=Pt.ESC+"[18;"+(a+1)+"~":i.key=Pt.ESC+"[18~";break;case 119:a?i.key=Pt.ESC+"[19;"+(a+1)+"~":i.key=Pt.ESC+"[19~";break;case 120:a?i.key=Pt.ESC+"[20;"+(a+1)+"~":i.key=Pt.ESC+"[20~";break;case 121:a?i.key=Pt.ESC+"[21;"+(a+1)+"~":i.key=Pt.ESC+"[21~";break;case 122:a?i.key=Pt.ESC+"[23;"+(a+1)+"~":i.key=Pt.ESC+"[23~";break;case 123:a?i.key=Pt.ESC+"[24;"+(a+1)+"~":i.key=Pt.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=Pt.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=Pt.DEL:e.keyCode===219?i.key=Pt.ESC:e.keyCode===220?i.key=Pt.FS:e.keyCode===221&&(i.key=Pt.GS);else if((!r||n)&&e.altKey&&!e.metaKey){let o=qgn[e.keyCode]?.[e.shiftKey?1:0];if(o)i.key=Pt.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=Pt.ESC+l}else if(e.keyCode===32)i.key=Pt.ESC+(e.ctrlKey?Pt.NUL:" ");else if(e.key==="Dead"&&e.code.startsWith("Key")){let s=e.code.slice(3,4);e.shiftKey||(s=s.toLowerCase()),i.key=Pt.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=Pt.US),e.key==="@"&&(i.key=Pt.NUL));break}return i}var ss=0,Ygn=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new xae,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new xae,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||(ss=this._search(t),ss===-1)||this._getKey(this._array[ss])!==t)return!1;do if(this._array[ss]===e)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(ss),!0;while(++ss<this._array.length&&this._getKey(this._array[ss])===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&&(ss=this._search(e),!(ss<0||ss>=this._array.length)&&this._getKey(this._array[ss])===e))do yield this._array[ss];while(++ss<this._array.length&&this._getKey(this._array[ss])===e)}forEachByKey(e,t){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(ss=this._search(e),!(ss<0||ss>=this._array.length)&&this._getKey(this._array[ss])===e))do t(this._array[ss]);while(++ss<this._array.length&&this._getKey(this._array[ss])===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}},aRe=0,VUt=0,Xgn=class extends Pn{constructor(){super(),this._decorations=new Ygn(e=>e?.marker.line),this._onDecorationRegistered=this._register(new tr),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new tr),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(Va(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let t=new Kgn(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=>{aRe=i.options.x??0,VUt=aRe+(i.options.width??1),e>=aRe&&e<VUt&&(!r||(i.options.layer??"bottom")===r)&&n(i)})}},Kgn=class extends fS{constructor(e){super(),this.options=e,this.onRenderEmitter=this.add(new tr),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new tr),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=So.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=So.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}},Zgn=1e3,Qgn=class{constructor(e,t=Zgn){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)}},qUt=20,jUt=!1,Tae=class extends Pn{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 Qgn(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");jUt?(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(`
3936
3936
  `))),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(gn(i,"selectionchange",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(Va(()=>{jUt?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<qUt+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
3937
3937
  `&&(this._liveRegionLineCount++,this._liveRegionLineCount===qUt+1&&(this._liveRegion.textContent+=sRe.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 d=this._rowColumns.get(u);if(!d)return console.warn("columns is null. Race condition?"),null;let f=l<d.length?d[l]:d.slice(-1)[0]+1;return f>=this._terminal.cols&&(++h,f=0),{row:h,column:f}},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})`}};Tae=Vo([ur(1,WRe),ur(2,Tb),ur(3,Sb)],Tae);var GRe=class extends Pn{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 tr),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new tr),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(Va(()=>{E4(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(gn(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(gn(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register(gn(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register(gn(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&&Jgn(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,E4(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}}};GRe=Vo([ur(1,VRe),ur(2,Sb),ur(3,Ju),ur(4,oHt)],GRe);function Jgn(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 e0n=class extends Vgn{constructor(e={}){super(e),this._linkifier=this._register(new EM),this.browser=DHt,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new EM),this._onCursorMove=this._register(new tr),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new tr),this.onKey=this._onKey.event,this._onRender=this._register(new tr),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new tr),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new tr),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new tr),this.onBell=this._onBell.event,this._onFocus=this._register(new tr),this._onBlur=this._register(new tr),this._onA11yCharEmitter=this._register(new tr),this._onA11yTabEmitter=this._register(new tr),this._onWillOpen=this._register(new tr),this._setup(),this._decorationService=this._instantiationService.createInstance(Xgn),this._instantiationService.setService(Kz,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(Hmn),this._instantiationService.setService(oHt,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(cRe)),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(Oc.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(Oc.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(Oc.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(Oc.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(t=>this._afterResize(t.cols,t.rows))),this._register(Va(()=>{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=Wa.toColorRGB(r==="ansi"?this._themeService.colors.ansi[t.index]:this._themeService.colors[r]);this.coreService.triggerDataEvent(`${Pt.ESC}]${n};${Fgn(i)}${MHt.ST}`);break;case 1:if(r==="ansi")this._themeService.modifyColors(a=>a.ansi[t.index]=Os.toColor(...t.color));else{let a=r;this._themeService.modifyColors(o=>o[a]=Os.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(Tae,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(Pt.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(Pt.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(gn(this.element,"copy",t=>{this.hasSelection()&&Pfn(t,this._selectionService)}));let e=t=>Lfn(t,this.textarea,this.coreService,this.optionsService);this._register(gn(this.textarea,"paste",e)),this._register(gn(this.element,"paste",e)),OHt?this._register(gn(this.element,"mousedown",t=>{t.button===2&&Yzt(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(gn(this.element,"contextmenu",t=>{Yzt(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),JRe&&this._register(gn(this.element,"auxclick",t=>{t.button===1&&ZUt(t,this.textarea,this.screenElement)}))}_bindKeys(){this._register(gn(this.textarea,"keyup",e=>this._keyUp(e),!0)),this._register(gn(this.textarea,"keydown",e=>this._keyDown(e),!0)),this._register(gn(this.textarea,"keypress",e=>this._keyPress(e),!0)),this._register(gn(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this._register(gn(this.textarea,"compositionupdate",e=>this._compositionHelper.compositionupdate(e))),this._register(gn(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this._register(gn(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(gn(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",oRe.get()),$Ht||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(zmn,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(Tb,this._coreBrowserService),this._register(gn(this.textarea,"focus",i=>this._handleTextAreaFocus(i))),this._register(gn(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(LRe,this._document,this._helperContainer),this._instantiationService.setService(wae,this._charSizeService),this._themeService=this._instantiationService.createInstance(ORe),this._instantiationService.setService(RM,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(vae),this._instantiationService.setService(aHt,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(IRe,this.rows,this.screenElement)),this._instantiationService.setService(Sb,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(RRe,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(MRe),this._instantiationService.setService(VRe,this._mouseService);let n=this._linkifier.value=this._register(this._instantiationService.createInstance(GRe,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(kRe,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(DRe,this.element,this.screenElement,n)),this._instantiationService.setService(Ffn,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(Oc.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(ERe,this.screenElement)),this._register(gn(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(Tae,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",i=>this._handleScreenReaderModeOptionChange(i))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(yae,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",i=>{!this._overviewRulerRenderer&&i&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(yae,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(PRe,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(gn(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(gn(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=Pt.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){KUt(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=jgn(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===Pt.ETX||r.key===Pt.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)&&(t0n(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(Ds));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(Pt.ESC+"[I"):this.coreService.triggerDataEvent(Pt.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(`${Pt.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(`${Pt.ESC}[6;${i};${n}t`);break}}cancel(e,t){if(!(!this.options.cancelEvents&&!t))return e.preventDefault(),e.stopPropagation(),!1}};function t0n(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var r0n=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)}},n0n=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 Up)}translateToString(e,t,r){return this._line.translateToString(e,t,r)}},YUt=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 n0n(t)}getNullCell(){return new Up}},i0n=class extends Pn{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new tr),this.onBufferChange=this._onBufferChange.event,this._normal=new YUt(this._core.buffers.normal,"normal"),this._alternate=new YUt(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)}},a0n=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)}},o0n=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}},s0n=["cols","rows"],by=0,YHt=class extends Pn{constructor(e){super(),this._core=this._register(new e0n(e)),this._addonManager=this._register(new r0n),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(s0n.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 a0n(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new o0n(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 i0n(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
3938
- `,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 oRe.get()},set promptLabel(e){oRe.set(e)},get tooMuchOutput(){return sRe.get()},set tooMuchOutput(e){sRe.set(e)}}}_verifyIntegers(...e){for(by of e)if(by===1/0||isNaN(by)||by%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(by of e)if(by&&(by===1/0||isNaN(by)||by%1!==0||by<0))throw new Error("This API only accepts positive integers")}};var eAe=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function l0n(e){try{return!!new URL(e).host}catch{return!1}}function KHt(e,t){let r=e(t),n=e(t+1);return!!r&&!!n&&(n.isWrapped||r.isFull)}function c0n(e,t){let r=[];for(let n=t;n-t<64;n++){let i=e(n);if(!i||(r.push(i.text),!KHt(e,n)))break}return r}function XHt(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 u0n(e,t,r){let n=r[0],i=XHt(e,t,r.index),a=XHt(e,t,r.index+n.length-1);if(!(!l0n(n)||!i||!a))return{text:n,range:{start:i,end:a}}}function h0n(e,t,r){let n=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(n)].flatMap(a=>u0n(e,t,a)??[])}function ZHt(e,t,r=eAe){if(!e(t-1))return[];let n=t-1;for(;n>0&&KHt(e,n-1);)n--;return h0n(c0n(e,n),n,r)}function QHt(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=ZHt(r,n,eAe);i(a.map(o=>({range:o.range,text:o.text,activate:t})))}}}function JHt(e){let t=new YHt({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 kFt;t.loadAddon(r);let n=t.registerLinkProvider(QHt(t,(a,o)=>{window.open(o,"_blank")}));t.open(e);let i;try{i=new Vzt,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 eGt(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 Rae(e){return e.type==="keydown"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()==="p"}function tGt(e,t,r,n,i){let a=JHt(e);a.term.onData(u=>r(t,u)),a.term.attachCustomKeyEventHandler(u=>Rae(u)?!1:eGt(u,a.term,navigator.clipboard,h=>a.term.paste(h)));let o=n(t,u=>a.term.write(u)),s=new ResizeObserver(()=>{a.fitAddon.fit(),i(t,a.term.cols,a.term.rows)});return s.observe(e),{handle:a,cleanup:()=>{s.disconnect(),o(),a.dispose()}}}function rGt(e,t,r,n,i,a){let o=(0,Jz.useRef)(null);(0,Jz.useEffect)(()=>{let s=e.current;if(!s)return;let{handle:l,cleanup:u}=tGt(s,t,n,i,a);return o.current=l,()=>{u(),o.current=null}},[e,t,i,n,a]),(0,Jz.useEffect)(()=>{let s=o.current;if(!r||!s)return;let l=setTimeout(()=>{s.fitAddon.fit(),s.term.focus(),a(t,s.term.cols,s.term.rows)},50);return()=>clearTimeout(l)},[r,t,a])}var aGt=H(ee(),1);function iGt({sessionId:e,visible:t,onOutput:r,sendInput:n,sendResize:i}){let a=(0,nGt.useRef)(null);return rGt(a,e,t,n,r,i),(0,aGt.jsx)(et,{ref:a,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"}})}var P4=H(ee(),1);function oGt({sessions:e,activeId:t,initialized:r,onOutput:n,sendInput:i,sendResize:a}){let o=e.find(l=>l.id===t),s=o!==void 0&&mne(o,r);return(0,P4.jsxs)(et,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(l=>(0,P4.jsx)(iGt,{sessionId:l.id,visible:l.id===t,onOutput:n,sendInput:i,sendResize:a},l.id)),s&&(0,P4.jsx)(_Ft,{}),e.length===0&&(0,P4.jsx)(et,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,P4.jsx)(ft,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var sGt=H(ee(),1),lGt=Ut((0,sGt.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 Hp=H(ee(),1);function cGt({message:e}){return e.role==="tool"?(0,Hp.jsx)(d0n,{tool:e.tool,target:e.target}):(0,Hp.jsx)(f0n,{role:e.role,text:e.text})}function d0n({tool:e,target:t}){return(0,Hp.jsxs)(et,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,Hp.jsx)(lGt,{sx:{fontSize:14,color:"text.disabled"}}),(0,Hp.jsxs)(ft,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,Hp.jsx)(et,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,Hp.jsxs)(et,{component:"span",children:[" ",t]})]})]})}function f0n({role:e,text:t}){let r=e==="user",n=r?"info.main":"success.main";return(0,Hp.jsxs)(et,{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,Hp.jsx)(ft,{variant:"caption",sx:{color:n,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,Hp.jsx)(ft,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var wy=H(ee(),1);function p0n(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 hGt({messages:e,loading:t}){return t?(0,wy.jsxs)(et,{sx:uGt,children:[(0,wy.jsx)(Vn,{size:20}),(0,wy.jsx)(ft,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,wy.jsx)(et,{sx:uGt,children:(0,wy.jsx)(ft,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,wy.jsx)(et,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,wy.jsx)(et,{sx:{maxWidth:820,mx:"auto"},children:p0n(e).map(r=>(0,wy.jsx)(cGt,{message:r},r.key))})})}var uGt={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var tAe=H(ee(),1);function dGt({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,tAe.jsx)(et,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,tAe.jsx)(hGt,{messages:r?t?.messages??[]:[],loading:!r})})}var Aae=H(ee(),1);function fGt({viewingTranscriptSessionId:e,transcript:t,sendPrDecision:r,...n}){if(e!==null)return(0,Aae.jsx)(dGt,{sessionId:e,transcript:t});let i=n.sessions.find(o=>o.id===n.activeId),a=i?.pendingPrPreview??null;return(0,Aae.jsx)(CFt,{preview:a,cwd:i?.cwd,onDecision:(o,s,l,u)=>{i&&r(i.id,o,s,void 0,l,u)},children:(0,Aae.jsx)(oGt,{...n})})}var PM=H(Be(),1);function pGt(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 m0n(e,t,r,n){if(t==null)return;let i=Math.max(0,t-n),a=Math.max(0,r-i)/r;if(!(a<.05))return e/a}function Pae(e,t,r,n){let i=m0n(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var g0n={ok:"success.main",warn:"warning.main",over:"error.main"};function Lae(e){return g0n[e]}var eU=H(ee(),1),y0n={ok:"success",warn:"warning",over:"error"};function mGt({percentage:e,level:t}){return(0,eU.jsxs)(et,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,eU.jsx)(UI,{variant:"determinate",value:Math.min(100,e),color:y0n[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,eU.jsxs)(et,{sx:{minWidth:40,textAlign:"right",color:Lae(t)},children:[Math.round(e),"%"]})]})}function gGt(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var v0n=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function rAe(e){return v0n.format(e)}var Mae=H(ee(),1);function yGt({peak:e}){return(0,Mae.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Mae.jsx)(Kn,{title:`Cycle started ${rAe(new Date(e.createdAt))}`,children:(0,Mae.jsx)("span",{children:rAe(new Date(e.resetsAt*1e3))})})})}var bGt=H(ee(),1);function vGt(){return(0,bGt.jsx)(Sn,{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 xGt(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${nE(e.tokensUp)} \u2193 ${nE(e.tokensDown)}`}var TGt={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 lg=H(ee(),1);function SGt({peak:e,now:t}){let{label:r,seconds:n,tint:i}=TGt[e.window],a=Pae(e.usedPercentage,e.resetsAt,n,t);return(0,lg.jsxs)(om,{sx:o=>({backgroundColor:i?o.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,lg.jsxs)(Zn,{children:[r,e.resetDetected&&(0,lg.jsx)(vGt,{})]}),(0,lg.jsx)(Zn,{sx:{minWidth:160},children:(0,lg.jsx)(mGt,{percentage:e.usedPercentage,level:a})}),(0,lg.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:gGt(e)}),(0,lg.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,lg.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:xGt(e)}),(0,lg.jsx)(yGt,{peak:e})]})}var Iae=H(Be(),1);function Dae(e){let[t,r]=(0,Iae.useState)(()=>Math.floor(Date.now()/1e3));return(0,Iae.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var Vl=H(ee(),1);function wGt({peaks:e}){let t=Dae(3e4);return(0,Vl.jsx)(uD,{component:si,children:(0,Vl.jsxs)(cw,{size:"small",children:[(0,Vl.jsx)(hD,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,Vl.jsxs)(om,{children:[(0,Vl.jsx)(Zn,{children:"Window"}),(0,Vl.jsx)(Zn,{children:"Peak usage"}),(0,Vl.jsx)(Zn,{align:"right",children:(0,Vl.jsx)(Kn,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,Vl.jsx)("span",{children:"Avg context"})})}),(0,Vl.jsx)(Zn,{align:"right",children:(0,Vl.jsx)(Kn,{title:"Number of phase readings behind the average.",children:(0,Vl.jsx)("span",{children:"Phases"})})}),(0,Vl.jsx)(Zn,{align:"right",children:"Tokens spent"}),(0,Vl.jsx)(Zn,{align:"right",children:"Cycle reset"})]})}),(0,Vl.jsx)(uw,{children:e.map(r=>(0,Vl.jsx)(SGt,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var Cy=H(Be(),1),aAe=30;async function b0n(e){let t=await fetch(`/api/usage/history?page=${e}&pageSize=${aAe}`);if(!t.ok)throw new Error(`Failed to load usage history (HTTP ${t.status}).`);return t.json()}function CGt(){let[e,t]=(0,Cy.useState)(0),[r,n]=(0,Cy.useState)([]),[i,a]=(0,Cy.useState)(0),[o,s]=(0,Cy.useState)(!1),[l,u]=(0,Cy.useState)(!1),[h,d]=(0,Cy.useState)(null);return(0,Cy.useEffect)(()=>{let f=!1;return u(!0),b0n(e).then(p=>{f||(n(p.rows),a(p.total),s(!0),u(!1))},p=>{f||(d(p instanceof Error?p:new Error(String(p))),u(!1))}),()=>{f=!0}},[e]),(0,Cy.useEffect)(()=>{if(i===0)return;let f=Math.ceil(i/aAe)-1;e>f&&t(f)},[e,i]),{page:e,setPage:t,rows:r,total:i,loaded:o,fetching:l,error:h,pageSize:aAe}}var pS=H(ee(),1);function _Gt(){let{page:e,setPage:t,rows:r,total:n,loaded:i,fetching:a,error:o,pageSize:s}=CGt(),l=(0,PM.useRef)(null),[u,h]=(0,PM.useState)();if((0,PM.useLayoutEffect)(()=>{r.length===s&&l.current&&h(l.current.offsetHeight)},[r,s]),o)throw o;return(0,pS.jsxs)(fy,{loading:!i,title:"Usage history",isEmpty:n===0,emptyMessage:"No usage peaks recorded yet.",children:[(0,pS.jsx)(et,{sx:{height:4,mb:1},children:a&&(0,pS.jsx)(UI,{})}),(0,pS.jsx)(et,{ref:l,sx:{minHeight:u},children:(0,pS.jsx)(wGt,{peaks:r})}),(0,pS.jsx)(Hle,{component:"div",count:n,page:e,rowsPerPage:s,rowsPerPageOptions:[s],onPageChange:(d,f)=>t(f)})]})}var Ea=H(ee(),1);function x0n({socket:e}){return(0,Ea.jsx)(zb,{maxWidth:"md",sx:{py:3,px:2},children:(0,Ea.jsx)(hLt,{socket:e})})}function T0n({socket:e}){return(0,Ea.jsx)(fGt,{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 kGt({socket:e}){return(0,Ea.jsx)(Bw,{children:(0,Ea.jsxs)(vl,{element:(0,Ea.jsx)(hIt,{socket:e}),children:[(0,Ea.jsx)(vl,{path:"sessions",element:(0,Ea.jsx)(T0n,{socket:e})}),(0,Ea.jsx)(vl,{path:"backlog/*",element:(0,Ea.jsx)(x0n,{socket:e})}),(0,Ea.jsx)(vl,{path:"news",element:(0,Ea.jsx)(C$t,{})}),(0,Ea.jsx)(vl,{path:"usage",element:(0,Ea.jsx)(_Gt,{})}),(0,Ea.jsx)(vl,{path:"backups",element:(0,Ea.jsx)(vIt,{})}),(0,Ea.jsx)(vl,{path:"config",element:(0,Ea.jsx)(NIt,{})}),(0,Ea.jsx)(vl,{path:"diff",element:(0,Ea.jsx)(CNt,{})}),(0,Ea.jsx)(vl,{path:"file",element:(0,Ea.jsx)(x$t,{})}),(0,Ea.jsx)(vl,{path:"*",element:(0,Ea.jsx)(Ghe,{to:"/sessions",replace:!0})})]})})}var Uae=H(Be(),1);var zae=H(Be(),1);function EGt(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 mS=H(ee(),1),S0n={display:"flex",gap:1,alignItems:"center",minWidth:0},w0n={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},C0n={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},_0n={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function k0n(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function RGt({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,mS.jsx)(hh,{dense:!0,sx:{py:0},children:e.map((i,a)=>{let{dir:o,basename:s}=k0n(i);return(0,mS.jsxs)(ea,{selected:a===t,onMouseEnter:()=>r(a),onClick:()=>n(i),sx:S0n,children:[(0,mS.jsx)(Aie,{path:i}),(0,mS.jsxs)(et,{sx:w0n,children:[(0,mS.jsx)(ft,{component:"span",sx:C0n,children:s}),(0,mS.jsx)(ft,{component:"span",color:"text.secondary",sx:_0n,children:o})]})]},i)})})}var Oae=H(ee(),1),E0n={maxHeight:420,overflowY:"auto"},R0n={px:2,py:2,fontSize:13};function AGt({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Oae.jsx)(et,{sx:E0n,children:e?(0,Oae.jsx)(ft,{color:"text.secondary",sx:R0n,children:e}):(0,Oae.jsx)(RGt,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var PGt=H(ee(),1);function Nae({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:a}){return(0,PGt.jsx)(tc,{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 Bae=H(Be(),1),LGt={files:[],loading:!1,error:!1};function MGt(e,t){let[r,n]=(0,Bae.useState)(LGt);return(0,Bae.useEffect)(()=>{if(!e){n(LGt);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 $ae=H(Be(),1);function Fae(e,t,r,n){let[i,a]=(0,$ae.useState)(0);return(0,$ae.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 tU=H(ee(),1),A0n={mt:6,alignSelf:"flex-start"};function IGt({onClose:e}){let{selectedCwd:t}=Ro(),[r,n]=(0,zae.useState)(""),i=MGt(t,r),a=va(),o=(0,zae.useRef)(null),s=f=>a(`/file?path=${encodeURIComponent(f)}`),{highlight:l,setHighlight:u,onKeyDown:h}=Fae(i.files,r,s,e),d=f=>{s(f),e()};return(0,tU.jsxs)(sh,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:A0n},transition:{onEntered:()=>o.current?.focus()}},children:[(0,tU.jsx)(Nae,{autoFocus:!0,inputRef:o,value:r,onChange:n,onKeyDown:h,placeholder:"Search files by name..."}),(0,tU.jsx)(AGt,{message:EGt(t,r,i),files:i.files,highlight:l,onHighlight:u,onSelect:d})]})}var OGt=H(Be(),1);var DGt=!0;function NGt(e){(0,OGt.useEffect)(()=>{let t=r=>{Rae(r)&&(r.preventDefault(),e())};return globalThis.addEventListener("keydown",t,DGt),()=>globalThis.removeEventListener("keydown",t,DGt)},[e])}var $Gt=H(ee(),1);function BGt(){let[e,t]=(0,Uae.useState)(!1);return NGt((0,Uae.useCallback)(()=>t(!0),[])),e?(0,$Gt.jsx)(IGt,{onClose:()=>t(!1)}):null}var Hae=H(ee(),1);function FGt({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Hae.jsx)(Nf,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Hae.jsx)(ho,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Hae.jsx)(jr,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var Gae=H(ee(),1);function zGt({reconnecting:e}){return(0,Gae.jsx)(Nf,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Gae.jsx)(ho,{severity:"info",variant:"filled",icon:(0,Gae.jsx)(Vn,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var wb=H(ee(),1);function UGt({socket:e,onViewLaunchedSession:t}){return(0,wb.jsxs)(wb.Fragment,{children:[(0,wb.jsx)(BGt,{}),(0,wb.jsx)(zGt,{reconnecting:e.reconnecting}),(0,wb.jsx)(hy,{error:e.error,onClose:e.clearError}),(0,wb.jsx)(FGt,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var LM=H(ee(),1),P0n=["/sessions","/backlog","/news"];function HGt(){let e=gs(),t=va(),r=P0n.findIndex(i=>e.pathname.startsWith(i)),n=i=>{e.pathname!==i&&t(i)};return(0,LM.jsxs)(fD,{value:r===-1?0:r,textColor:"inherit",indicatorColor:"secondary",children:[(0,LM.jsx)(jb,{label:"Sessions",onClick:()=>n("/sessions")}),(0,LM.jsx)(jb,{label:"Backlog",onClick:()=>n("/backlog")}),(0,LM.jsx)(jb,{label:"News",onClick:()=>n("/news")})]})}var Vae=H(Be(),1),Wae=H(ee(),1),L0n={color:"inherit"};function GGt({cwd:e}){let[t,r]=(0,Vae.useState)(null);return(0,Vae.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,Wae.jsx)(Kn,{title:"Open in GitHub",children:(0,Wae.jsx)(Rr,{sx:L0n,onClick:()=>window.open(t,"_blank"),children:(0,Wae.jsx)(Ene,{})})}):null}var VGt=H(Be(),1);var qae=H(ee(),1);function WGt({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let a=Pae(i,e?.resets_at,t,n),o=e?.resets_at!=null?pGt(e.resets_at,n):r;return(0,qae.jsxs)(et,{component:"span",children:[(0,qae.jsxs)(et,{component:"span",sx:{color:Lae(a)},children:[Math.round(i),"%"]})," ",(0,qae.jsxs)(et,{component:"span",sx:{color:"text.secondary"},children:["(",o,")"]})]})}var gS=H(ee(),1);function qGt({rateLimits:e}){let t=Dae(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,gS.jsx)(gS.Fragment,{children:r.map((n,i)=>(0,gS.jsxs)(VGt.Fragment,{children:[i>0?(0,gS.jsx)(et,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,gS.jsx)(WGt,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var jae=H(ee(),1),M0n={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13};function I0n(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function jGt({rateLimits:e}){return(0,jae.jsx)(Kn,{title:"Claude account usage (5h / 7d windows) \u2014 view history",children:(0,jae.jsx)(lh,{component:um,to:"/usage",underline:"hover",color:"inherit",sx:M0n,children:I0n(e)?(0,jae.jsx)(qGt,{rateLimits:e}):"Usage"})})}var YGt=H(ee(),1),XGt=Ut((0,YGt.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 Gp=H(Be(),1);var Yae=[{target:"daemon",label:"Restart daemon",message:"This restarts the sessions daemon. Running sessions will resume."},{target:"webserver",label:"Restart webserver",message:"This restarts the web server. The connection will drop briefly while it comes back."},{target:"both",label:"Restart both",message:"This restarts the sessions daemon and the web server. The connection will drop briefly while it comes back."}];function Xae(e){return fetch(`/api/restart?target=${e}`,{method:"POST"})}var D0n=15e3;function Kae(e,t){let[r,n]=(0,Gp.useState)(!1),[i,a]=(0,Gp.useState)(null),o=(0,Gp.useRef)(!1),s=(0,Gp.useRef)(void 0),l=(0,Gp.useRef)(t);l.current=t,(0,Gp.useEffect)(()=>{r&&(e?o.current=!0:o.current&&(clearTimeout(s.current),l.current?.(),globalThis.location.reload()))},[r,e]),(0,Gp.useEffect)(()=>()=>clearTimeout(s.current),[]);let u=(0,Gp.useCallback)(async()=>{n(!0),o.current=!1,s.current=setTimeout(()=>{n(!1),a("Web server did not come back")},D0n);try{if(!(await Xae("webserver")).ok)throw new Error("restart failed")}catch{clearTimeout(s.current),n(!1),a("Failed to restart web server")}},[]);return{pending:r,error:i,clearError:()=>a(null),restart:u}}var cg=H(ee(),1),O0n={color:"inherit",mr:1.5};function KGt({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=Kae(e);return(0,cg.jsxs)(cg.Fragment,{children:[(0,cg.jsx)(Kn,{title:"Restart web server",children:(0,cg.jsx)("span",{children:(0,cg.jsx)(Rr,{sx:O0n,disabled:t,onClick:i,children:t?(0,cg.jsx)(Vn,{size:24}):(0,cg.jsx)(XGt,{})})})}),(0,cg.jsx)(hy,{error:r,onClose:n})]})}var Qae=H(Be(),1);var ZGt=H(ee(),1),QGt=Ut((0,ZGt.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");var Zae=H(ee(),1);function JGt({label:e,open:t,onClick:r,disabled:n=!1}){return(0,Zae.jsx)(jr,{size:"small",variant:"outlined",disabled:n,onClick:r,endIcon:t?(0,Zae.jsx)(QGt,{}):(0,Zae.jsx)(lne,{}),sx:{textTransform:"none",fontSize:11,justifyContent:"space-between",maxWidth:"100%",overflow:"hidden"},fullWidth:!0,children:e})}var Jae=H(ee(),1),yS={position:"absolute",top:"100%",left:0,right:0,mt:.25,maxHeight:200,overflowY:"auto",zIndex:10};function _y({label:e,children:t,disabled:r=!1}){let[n,i]=(0,Qae.useState)(!1),a=(0,Qae.useRef)(null);return(0,Jae.jsxs)(si,{component:"fieldset",ref:a,variant:"outlined",sx:{position:"relative",border:"none",m:0,p:0},onBlur:o=>{a.current?.contains(o.relatedTarget)||i(!1)},children:[(0,Jae.jsx)(JGt,{label:e,open:n,disabled:r,onClick:()=>i(!n)}),n&&t(()=>i(!1))]})}var MM=H(Be(),1);var eoe=H(Be(),1);var toe=H(ee(),1);function eWt({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let a=(0,eoe.useRef)(null);return(0,eoe.useEffect)(()=>{r&&a.current?.scrollIntoView({block:"nearest"})},[r]),(0,toe.jsxs)(ea,{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:[rU(e),WT(e)&&(0,toe.jsx)(zT,{})]})}var oAe=H(ee(),1);function tWt({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,oAe.jsx)(hh,{dense:!0,children:e.map((a,o)=>(0,oAe.jsx)(eWt,{cwd:a,selected:a===t,highlighted:o===r,onHover:()=>n(o),onSelect:()=>i(a)},a))})}var nU=H(ee(),1);function rU(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var N0n={...yS};function rWt({repos:e,selected:t,onSelect:r,close:n}){let[i,a]=(0,MM.useState)(""),o=(0,MM.useRef)(null);(0,MM.useEffect)(()=>{o.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:h,onKeyDown:d}=Fae(l,s,r,n);return(0,nU.jsxs)(si,{elevation:4,sx:N0n,children:[(0,nU.jsx)(Nae,{inputRef:o,value:i,onChange:a,onKeyDown:d,placeholder:"Filter repos..."}),(0,nU.jsx)(tWt,{repos:l,selected:t,highlight:u,onHighlight:h,onSelect:p=>{r(p),n()}})]})}var IM=H(ee(),1);function B0n(e){return e?WT(e)?(0,IM.jsxs)("span",{style:{display:"flex",flexGrow:1,alignItems:"center",justifyContent:"space-between",gap:6,minWidth:0},children:[rU(e),(0,IM.jsx)(zT,{})]}):rU(e):"Select repo..."}function nWt({repos:e,selected:t,onSelect:r}){return(0,IM.jsx)(_y,{label:B0n(t),children:n=>(0,IM.jsx)(rWt,{repos:e,selected:t,onSelect:r,close:n})})}var sAe={"assist-draft":{label:"draft",args:["draft","--once"],prompt:!0,nav:!0},"assist-bug":{label:"bug",args:["bug","--once"],prompt:!0,nav:!0},"assist-refine":{label:"refine",args:["refine","--once"],prompt:!0,nav:!1}};function $0n(e){return e in sAe}function F0n(e,t){let r=[...sAe[e].args],n=t?.trim();return n&&r.push(n),r}function iWt(e,t,r,n,i){if($0n(e)&&t){r(F0n(e,i),t);return}n(e)}var lAe=Object.entries(sAe).map(([e,{label:t,prompt:r,nav:n}])=>({value:e,label:t,prompt:r,nav:n})),aWt="Enter prompt...";var sWt=H(Be(),1);function oWt(e,t){e.key==="Enter"&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),t.trim()!==""&&e.currentTarget.closest("form")?.requestSubmit())}var L4=H(ee(),1);function roe({value:e,onChange:t,onSubmit:r,header:n}){return(0,L4.jsx)(si,{elevation:4,sx:{...yS,left:"auto",width:320},children:(0,L4.jsxs)(Lr,{component:"form",spacing:1,sx:{p:1},onSubmit:i=>{i.preventDefault(),r()},children:[n,(0,L4.jsxs)(Lr,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,L4.jsx)(tc,{value:e,onChange:i=>t(i.target.value),onKeyDown:i=>oWt(i,e),placeholder:aWt,size:"small",autoFocus:!0,fullWidth:!0,multiline:!0,maxRows:7,slotProps:{input:{sx:{fontSize:13}}}}),(0,L4.jsx)(jr,{type:"submit",variant:"contained",size:"small",sx:{whiteSpace:"nowrap"},children:"Start"})]})]})})}var cAe=H(ee(),1);function noe({disabled:e,onSubmit:t,label:r="prompt",allowEmpty:n=!1}){let[i,a]=(0,sWt.useState)("");return(0,cAe.jsx)(_y,{label:r,disabled:e,children:o=>(0,cAe.jsx)(roe,{value:i,onChange:a,onSubmit:()=>{!n&&!i.trim()||(t(i),a(""),o())}})})}var M4=H(ee(),1),z0n={textTransform:"none",fontSize:11,fontWeight:600};function lWt({onSelect:e,disabled:t=!1,children:r}){return(0,M4.jsxs)(M4.Fragment,{children:[lAe.filter(n=>n.nav&&n.prompt).map(n=>(0,M4.jsx)(noe,{label:n.label,allowEmpty:!0,disabled:t,onSubmit:i=>e(n.value,i)},n.value)),r,lAe.filter(n=>n.nav&&!n.prompt).map(n=>(0,M4.jsx)(jr,{size:"small",variant:"outlined",disabled:t,onClick:()=>e(n.value),sx:z0n,children:n.label},n.value))]})}var uAe=H(Be(),1);var ky=H(ee(),1),cWt={"& .MuiFormControlLabel-label":{fontSize:12}};function U0n({value:e,onChange:t}){return(0,ky.jsxs)(Ole,{row:!0,value:e,onChange:r=>t(r.target.value),children:[(0,ky.jsx)(Yk,{value:"claude",control:(0,ky.jsx)(IG,{size:"small"}),label:"claude",sx:cWt}),(0,ky.jsx)(Yk,{value:"pi",control:(0,ky.jsx)(IG,{size:"small"}),label:"pi",sx:cWt})]})}function uWt({cwd:e,disabled:t,onCreate:r,onCreatePi:n}){let{exposePiActions:i}=cne(),[a,o]=(0,uAe.useState)(""),[s,l]=(0,uAe.useState)("claude");return(0,ky.jsx)(_y,{label:"prompt",disabled:t,children:u=>(0,ky.jsx)(roe,{value:a,onChange:o,header:i?(0,ky.jsx)(U0n,{value:s,onChange:l}):void 0,onSubmit:()=>{(s==="pi"?n:r)(a,e),o(""),l("claude"),u()}})})}var I4=H(ee(),1);function hWt({cwd:e,disabled:t,onCreate:r,onCreateDesign:n,onCreatePi:i}){return(0,I4.jsxs)(I4.Fragment,{children:[(0,I4.jsx)(uWt,{cwd:e,disabled:t,onCreate:r,onCreatePi:i}),(0,I4.jsx)(noe,{label:"design",allowEmpty:!0,disabled:t,onSubmit:a=>n(a,e)})]})}var yWt=H(Be(),1);var iU=H(Be(),1);function ioe(e){let[t,r]=(0,iU.useState)([]),[n,i]=(0,iU.useState)(!0);return(0,iU.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 bf=H(ee(),1);function fWt({cwd:e,onPick:t}){let{prs:r,loading:n}=ioe(e);return(0,bf.jsx)(si,{elevation:4,sx:{...yS,left:"auto",width:320},children:n?(0,bf.jsx)(dWt,{text:"Loading open PRs\u2026"}):r.length===0?(0,bf.jsx)(dWt,{text:"No open PRs"}):(0,bf.jsx)(hh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,bf.jsx)(H0n,{pr:i,onPick:t},i.number))})})}function H0n({pr:e,onPick:t}){return(0,bf.jsx)(ea,{onMouseDown:r=>r.preventDefault(),onClick:()=>t(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,bf.jsxs)(Lr,{spacing:.25,sx:{minWidth:0},children:[(0,bf.jsx)(ft,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,bf.jsxs)(ft,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",_x(e.createdAt)]})]})})}function dWt({text:e}){return(0,bf.jsx)(et,{sx:{p:1.5},children:(0,bf.jsx)(ft,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var mWt=H(ee(),1);function pWt({cwd:e,onPick:t}){return(0,mWt.jsx)(fWt,{cwd:e,onPick:t})}var ug=H(ee(),1);function gWt({pr:e,onSelect:t,onCancel:r}){return(0,ug.jsxs)(sh,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,ug.jsxs)(Of,{sx:{fontSize:15},children:["Review #",e.number,": ",e.title]}),(0,ug.jsx)(Df,{sx:{px:0},children:(0,ug.jsxs)(hh,{children:[Ane.map(({label:n,args:i})=>(0,ug.jsx)(ea,{onClick:()=>t(i),children:n},n)),(0,ug.jsx)(Fc,{}),(0,ug.jsx)(ea,{onClick:()=>t(["review-pr-comments"]),children:"Address Comments"})]})}),(0,ug.jsx)(If,{children:(0,ug.jsx)(jr,{onClick:r,children:"Cancel"})})]})}var vS=H(ee(),1);function vWt({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=ioe(e),[a,o]=(0,yWt.useState)(null);return i||n.length===0?null:(0,vS.jsxs)(vS.Fragment,{children:[(0,vS.jsx)(_y,{label:"review",disabled:t,children:s=>(0,vS.jsx)(pWt,{cwd:e,onPick:l=>{o(l),s()}})}),a&&(0,vS.jsx)(gWt,{pr:a,onSelect:s=>{r(a,s),o(null)},onCancel:()=>o(null)})]})}var DM=H(ee(),1);function bWt({onStartRun:e,cwd:t}){let r=Lne(t);return!t||r.length===0?null:(0,DM.jsx)(_y,{label:"server",children:n=>(0,DM.jsx)(si,{elevation:4,sx:{...yS,left:"auto",width:200},children:(0,DM.jsx)(hh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,DM.jsx)(ea,{onMouseDown:a=>a.preventDefault(),onClick:()=>{e(i.name,t),n()},sx:{py:.75},children:(0,DM.jsx)(ft,{sx:{fontSize:13},children:i.name})},i.name))})})})}var D4=H(ee(),1);function xWt({onCreate:e,onCreateDesign:t,onCreatePi:r,onCreateAssist:n,onStartRun:i}){let{selectedCwd:a}=Ro(),o=!a;return(0,D4.jsxs)(Lr,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:[(0,D4.jsxs)(lWt,{disabled:o,onSelect:(s,l)=>iWt(s,a,n,()=>{},l),children:[(0,D4.jsx)(hWt,{cwd:a,disabled:o,onCreate:e,onCreateDesign:t,onCreatePi:r}),(0,D4.jsx)(vWt,{cwd:a,disabled:o,onSelect:(s,l)=>n([...l,String(s.number)],a,Rne(s))})]}),(0,D4.jsx)(bWt,{onStartRun:i,cwd:a})]})}var Wp=H(ee(),1),G0n={minHeight:48,pl:1,pr:14},W0n={width:240,ml:2};function TWt({socket:e,selection:t}){return(0,Wp.jsxs)(hw,{variant:"dense",disableGutters:!0,sx:G0n,children:[(0,Wp.jsx)(KGt,{reconnecting:e.reconnecting}),(0,Wp.jsx)(HGt,{}),(0,Wp.jsx)(et,{sx:W0n,children:(0,Wp.jsx)(nWt,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd})}),(0,Wp.jsxs)(et,{sx:{display:"flex",ml:1,mr:2},children:[(0,Wp.jsx)(kne,{cwd:t.selectedCwd}),(0,Wp.jsx)(GGt,{cwd:t.selectedCwd})]}),(0,Wp.jsx)(xWt,{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreatePi:e.createPiSession,onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Wp.jsx)(jGt,{rateLimits:e.rateLimits})]})}var soe=H(Be(),1);var SWt=H(ee(),1),wWt=Ut((0,SWt.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 CWt=H(ee(),1),_Wt=Ut((0,CWt.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 kWt=H(ee(),1),EWt=Ut((0,kWt.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 hAe=H(ee(),1);function RWt({mode:e}){return e==="dark"?(0,hAe.jsx)(EWt,{fontSize:"small"}):(0,hAe.jsx)(_Wt,{fontSize:"small"})}var th=H(ee(),1);function AWt({mode:e,onToggleColorMode:t,onRestart:r,onUpdate:n}){return[(0,th.jsxs)(ea,{onClick:t,children:[(0,th.jsx)(GI,{children:(0,th.jsx)(RWt,{mode:e})}),(0,th.jsx)(VI,{children:"Toggle dark mode"})]},"color-mode"),(0,th.jsx)(Fc,{},"restart-divider"),...Yae.map(i=>(0,th.jsxs)(ea,{onClick:()=>r(i.target),children:[(0,th.jsx)(GI,{children:(0,th.jsx)(wne,{fontSize:"small"})}),(0,th.jsx)(VI,{children:i.label})]},i.target)),(0,th.jsxs)(ea,{onClick:n,children:[(0,th.jsx)(GI,{children:(0,th.jsx)(wWt,{fontSize:"small"})}),(0,th.jsx)(VI,{children:"Update assist"})]},"update")]}var LWt=H(ee(),1);function PWt({target:e,onClose:t}){let r=Yae.find(n=>n.target===e);return r?(0,LWt.jsx)(ys,{title:r.label,message:r.message,confirmLabel:"Restart",onConfirm:()=>{Xae(e),t()},onCancel:t}):null}var IWt=H(ee(),1);function MWt({onConfirm:e,onClose:t}){return(0,IWt.jsx)(ys,{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 O4=H(ee(),1);function DWt({restartTarget:e,onCloseRestart:t,updating:r,onCloseUpdate:n}){let{launchAssist:i,armUpdateReload:a}=$g();return(0,O4.jsxs)(O4.Fragment,{children:[e&&(0,O4.jsx)(PWt,{target:e,onClose:t}),r&&(0,O4.jsx)(MWt,{onConfirm:()=>{a(),i(["update"])},onClose:n})]})}var OWt=H(ee(),1),NWt=Ut((0,OWt.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var BWt=H(ee(),1),$Wt=Ut((0,BWt.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 aoe=H(ee(),1);function FWt(){let e=va();return(0,aoe.jsx)(Kn,{title:"Config",children:(0,aoe.jsx)(Rr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:()=>e("/config"),children:(0,aoe.jsx)($Wt,{fontSize:"small"})})})}var dAe=H(ee(),1),zWt=Ut([(0,dAe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,dAe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var aU="0.445.0";var ooe=H(Be(),1),fAe=(0,ooe.createContext)(null);function UWt(){return(0,ooe.useContext)(fAe)}var bS=H(ee(),1);function HWt(){let e=UWt();return aU?(0,bS.jsxs)(bS.Fragment,{children:[(0,bS.jsxs)(ft,{variant:"caption",sx:{opacity:.4,userSelect:"none",lineHeight:1},children:["v",aU]}),e&&e!==aU&&(0,bS.jsx)(Kn,{title:`Daemon is running v${e}, but this page was served by v${aU}. Restart the daemon to match.`,children:(0,bS.jsx)(zWt,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})]}):null}var N4=H(ee(),1);function GWt({open:e,onOpen:t}){return(0,N4.jsxs)(et,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,N4.jsx)(HWt,{}),(0,N4.jsx)(FWt,{}),(0,N4.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,N4.jsx)(NWt,{fontSize:"small"})})]})}var xS=H(ee(),1);function WWt({mode:e,toggle:t}){let[r,n]=(0,soe.useState)(null),[i,a]=(0,soe.useState)(null),[o,s]=(0,soe.useState)(!1),l=!!r,u=()=>n(null);return(0,xS.jsxs)(xS.Fragment,{children:[(0,xS.jsx)(GWt,{open:l,onOpen:n}),(0,xS.jsx)(_g,{anchorEl:r,open:l,onClose:u,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:AWt({mode:e,onToggleColorMode:()=>{t(),u()},onRestart:h=>{u(),a(h)},onUpdate:()=>{u(),s(!0)}})}),(0,xS.jsx)(DWt,{restartTarget:i,onCloseRestart:()=>a(null),updating:o,onCloseUpdate:()=>s(!1)})]})}var jWt=H(Be(),1);var qWt=H(ee(),1);function VWt({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:a}=e.existing,o=sy(i),s=a?` on port ${a}`:"",l=o?` in ${o}`:"";return(0,qWt.jsx)(ys,{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 loe=H(ee(),1);function YWt({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:a,startRun:o,discardSession:s}=e,l=(0,jWt.useMemo)(()=>({onStop:a,onStart:o,onDiscard:s}),[a,o,s]),u=()=>{r&&(r.runName?o(r.runName,r.cwd,!0):r.sessionId&&i(r.sessionId,!0),n())};return(0,loe.jsxs)(l3e.Provider,{value:l,children:[t,r&&(0,loe.jsx)(VWt,{conflict:r,onConfirm:u,onCancel:n})]})}var B4=H(Be(),1);function XWt(e,t){let r=new Set,n=[];for(let i of t){let a=zL(i),o=K5(i);!a||!o||r.has(a)||(r.add(a),n.push(o))}return e&&!r.has(fne(e,t))&&n.unshift(e),n}function KWt(e,t){let[r,n]=(0,B4.useState)(e);(0,B4.useEffect)(()=>{e&&!r&&n(e)},[e,r]);let i=(0,B4.useMemo)(()=>XWt(e,t),[e,t]);return(0,B4.useMemo)(()=>({repos:i,selectedCwd:r,setSelectedCwd:n}),[i,r])}var uoe=H(Be(),1);var TS=H(Be(),1);var ZWt=H(Be(),1),coe="assist:reloaded-after-update";function QWt(e){(0,ZWt.useEffect)(()=>{globalThis.sessionStorage?.getItem(coe)&&(globalThis.sessionStorage.removeItem(coe),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}var hg=H(Be(),1);function JWt(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function eVt(e,t){let[r,n]=(0,hg.useState)(!1),[i,a]=(0,hg.useState)(!1),o=(0,hg.useRef)(!1),s=(0,hg.useRef)(e);s.current=e;let l=(0,hg.useRef)(new Set),u=(0,hg.useCallback)(()=>{o.current=!1,a(!1),l.current=new Set(s.current.filter(JWt).map(h=>h.id)),n(!0)},[]);return(0,hg.useEffect)(()=>{if(!r||i)return;if(t){o.current=!0;return}if(!o.current)return;e.some(d=>JWt(d)&&!l.current.has(d.id))&&a(!0)},[r,i,t,e]),{arm:u,completed:i}}function tVt(e,t,r,n){let{arm:i,completed:a}=eVt(e,t),o=(0,TS.useRef)(!1),s=(0,TS.useCallback)(()=>{globalThis.sessionStorage?.setItem(coe,"1")},[]),{error:l,restart:u}=Kae(t,s);return QWt(r),(0,TS.useEffect)(()=>{l&&n(l)},[l,n]),(0,TS.useEffect)(()=>{!a||o.current||(o.current=!0,u())},[a,u]),{armUpdateReload:(0,TS.useCallback)(()=>{o.current=!1,i()},[i])}}function rVt(e){let{armUpdateReload:t}=tVt(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,uoe.useMemo)(()=>({launchAssist:e.createAssistSession,armUpdateReload:t}),[e.createAssistSession,t]),n=va(),i=(0,uoe.useCallback)(a=>{e.selectSession(a),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var nVt=H(Be(),1);function hoe(e,t,r){if(!e)return;let n=t.find(a=>a.id===e);if(n)return K5(n);let i=r.find(a=>a.sessionId===e);return i&&K5(i)}function iVt(e,t,r,n){let i=hoe(e,t,r);(0,nVt.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var doe=H(Be(),1);function aVt(e,t){let r=(0,doe.useRef)(new Map);(0,doe.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 hVt=H(Be(),1);function oVt(e,t){return[...e,{...t,windows:WT(t.cwd),status:"launching"}]}function sVt(e){let t=e.find(r=>r.status==="launching");return t?e.filter(r=>r.id!==t.id):e}function lVt(e,t){let r=e.find(n=>n.status==="launching");return r?pAe(e,r.id,t):e}function pAe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function cVt(e,t){return e.filter(r=>r.id!==t)}function uVt(e){let t=e;return t.type==="create"?{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session")}:t.type==="create-assist"?{cwd:t.cwd,title:t.title?.trim()||"New session"}:null}function dVt(e,t){return(0,hVt.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=uVt(r);i&&t(i)},[e,t])}var Ey=H(Be(),1);function fVt(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r})}function pVt(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,design:!0})}function mVt(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,harness:"pi"})}function gVt(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,title:n?.title,subtitle:n?.subtitle})}function yVt(e){return(t,r,n)=>e({type:"resume",sessionId:t,cwd:r,name:n})}function vVt(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function bVt(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function xVt(e,t,r){return n=>{e({type:"dismiss",sessionId:n}),t.delete(n),r.delete(n)}}function TVt(e,t,r){return n=>{e({type:"discard",sessionId:n}),t.delete(n),r.delete(n)}}function SVt(e){return t=>e({type:"stop",sessionId:t})}function wVt(e){return(t,r,n)=>e({type:"create-run",runName:t,cwd:r,replace:n})}function CVt(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function _Vt(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function kVt(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function EVt(e){return(t,r)=>e({type:"input",sessionId:t,data:r})}function RVt(e){return(t,r,n)=>e({type:"resize",sessionId:t,cols:r,rows:n})}function AVt(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function PVt(e){return(t,r,n,i,a,o)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,reason:i,comments:a,screenshots:o})}var OM=H(Be(),1);function LVt(e){return{createSession:(0,OM.useMemo)(()=>fVt(e),[e]),createDesignSession:(0,OM.useMemo)(()=>pVt(e),[e]),createPiSession:(0,OM.useMemo)(()=>mVt(e),[e]),createAssistSession:(0,OM.useMemo)(()=>gVt(e),[e]),resumeSession:(0,OM.useMemo)(()=>yVt(e),[e])}}var oU=H(Be(),1);function MVt(e,t,r){let n=(0,oU.useCallback)((s,l)=>{vVt(e,t.current)(s,l)},[e,t]),i=(0,oU.useCallback)(s=>{bVt(e,t.current)(s)},[e,t]),a=(0,oU.useCallback)(s=>{xVt(e,t.current,r.current)(s)},[e,t,r]),o=(0,oU.useCallback)(s=>{TVt(e,t.current,r.current)(s)},[e,t,r]);return{retrySession:n,restartSession:i,dismissSession:a,discardSession:o}}function IVt(e,t,r){let n={...LVt(e),sendInput:(0,Ey.useMemo)(()=>EVt(e),[e]),sendResize:(0,Ey.useMemo)(()=>RVt(e),[e]),sendPrDecision:(0,Ey.useMemo)(()=>PVt(e),[e]),setAutoRun:(0,Ey.useMemo)(()=>CVt(e),[e]),setAutoAdvance:(0,Ey.useMemo)(()=>_Vt(e),[e]),setStarred:(0,Ey.useMemo)(()=>kVt(e),[e]),stopSession:(0,Ey.useMemo)(()=>SVt(e),[e]),startRun:(0,Ey.useMemo)(()=>wVt(e),[e])},i=(0,Ey.useMemo)(()=>AVt(t.current,r.current),[t,r]);return{...n,...MVt(e,t,r),onOutput:i}}var foe=H(Be(),1);function DVt(e,t,r){let n=(0,foe.useCallback)(o=>{r(o),e({type:"fetch-transcript",sessionId:o})},[e,r]),i=(0,foe.useCallback)(()=>{r(null)},[r]),a=(0,foe.useCallback)(o=>{r(null),t(o)},[t,r]);return{viewTranscript:n,clearTranscript:i,selectSession:a}}var dg=H(Be(),1);var NVt=H(Be(),1);function OVt(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 BVt(e,t,r){let n=gs().pathname,i=n.startsWith("/backlog")||n.startsWith("/usage");(0,NVt.useEffect)(()=>{if(i){t(null);return}t(a=>OVt(e,a,r))},[e,t,r,i])}var mAe=H(Be(),1);function $Vt(){let[e,t]=(0,mAe.useState)(null),[r,n]=(0,mAe.useState)(null);return{daemonActiveId:e,setDaemonActiveId:t,daemonVersion:r,setDaemonVersion:n}}var $4=H(Be(),1);function FVt(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 zVt(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 UVt(){let[e,t]=(0,$4.useState)(new Set),r=(0,$4.useRef)(new Map),n=(0,$4.useCallback)(a=>{t(o=>o.has(a)?o:new Set(o).add(a))},[]),i=(0,$4.useCallback)(a=>{let o=zVt(r.current,a);r.current=new Map(a.map(s=>[s.id,s.startedAt])),o.length&&t(s=>FVt(s,o))},[]);return{initialized:e,markInitialized:n,syncSessions:i}}var SS=H(Be(),1);function HVt(){let[e,t]=(0,SS.useState)(null),[r,n]=(0,SS.useState)(null),[i,a]=(0,SS.useState)(null),o=(0,SS.useCallback)(()=>t(null),[]),s=(0,SS.useCallback)(()=>n(null),[]),l=(0,SS.useCallback)(()=>a(null),[]);return{error:e,setError:t,clearError:o,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:a,clearServerConflict:l}}var Cb=H(Be(),1);var V0n=6e4,q0n="Launch timed out \u2014 the session did not start.";function GVt(){let[e,t]=(0,Cb.useState)([]),r=(0,Cb.useCallback)(o=>{t(s=>oVt(s,{id:crypto.randomUUID(),startedAt:Date.now(),...o}))},[]),n=(0,Cb.useCallback)(()=>t(sVt),[]),i=(0,Cb.useCallback)(o=>t(s=>lVt(s,o)),[]),a=(0,Cb.useCallback)(o=>t(s=>cVt(s,o)),[]);return(0,Cb.useEffect)(()=>{let o=e.filter(l=>l.status==="launching");if(o.length===0)return;let s=o.map(l=>setTimeout(()=>t(u=>pAe(u,l.id,q0n)),Math.max(0,V0n-(Date.now()-l.startedAt))));return()=>s.forEach(clearTimeout)},[e]),{pendingLaunches:e,addPendingLaunch:r,resolvePendingLaunch:n,failPendingLaunch:i,dismissPendingLaunch:a}}var WVt=H(Be(),1);function VVt(e,t){return(0,WVt.useCallback)(r=>{e(r),t(r)},[e,t])}var wS=H(Be(),1);function qVt(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function jVt(e,t){let r=e.sessionId;t.resolvePendingLaunch(),t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:"New session started",sessionId:r})}function YVt(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 XVt(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId})}function KVt(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 ZVt(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd);let n=e.active??{};t.setDaemonActiveId(KVt(n,r))}function QVt(e,t){switch(e.type){case"sessions":ZVt(e,t);break;case"created":jVt(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":XVt(e,t);break;case"limits":t.setRateLimits(e.rateLimits);break;case"clear":qVt(e,t);break;case"output":YVt(e,t);break}}function JVt(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=>{QVt(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function eqt(e,t,r,n){let i=!1,a,o=0,s=!1,l=()=>{i||t(JVt(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 tqt(e){let t=(0,wS.useRef)(null),[r,n]=(0,wS.useState)(!1),{handleSessions:i,markInitialized:a,buffers:o,handlers:s}=e;(0,wS.useEffect)(()=>{let u=()=>{o.current?.clear();let d=s.current;if(d)for(let f of d.values())f("\x1Bc")},h=eqt({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{h(),t.current?.close()}},[i,a,o,s]);let l=(0,wS.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function rqt(){let[e,t]=(0,dg.useState)([]),[r,n]=(0,dg.useState)([]),[i,a]=(0,dg.useState)(null),o=$Vt(),[s,l]=(0,dg.useState)(null),[u,h]=(0,dg.useState)(null),[d,f]=(0,dg.useState)(""),p=HVt(),m=GVt(),[g,y]=(0,dg.useState)(null),{initialized:v,markInitialized:b,syncSessions:x}=UVt(),S=(0,dg.useRef)(new Map),w=(0,dg.useRef)(new Map),C=VVt(x,t),{wsRef:_,requestHistory:k,reconnecting:L}=tqt({handleSessions:C,setHistory:n,setActiveId:a,...o,setTranscript:l,setViewingTranscriptSessionId:h,setCurrentCwd:f,...p,...m,setRateLimits:y,markInitialized:b,buffers:S,handlers:w});return BVt(e,a,o.daemonActiveId),{sessions:e,history:r,activeId:i,setActiveId:a,...o,transcript:s,viewingTranscriptSessionId:u,setViewingTranscriptSessionId:h,currentCwd:d,...p,...m,rateLimits:g,initialized:v,wsRef:_,buffers:S,handlers:w,requestHistory:k,reconnecting:L}}function nqt(){let e=rqt(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:a,sessions:o}=e,s=dVt(t,i),l=IVt(s,r,n);iVt(a,o,e.history,s),aVt(o,s);let u=DVt(s,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...l,...u}}var iqt=H(Be(),1);function aqt(e,t,r,n){let i=hoe(e,t,r);(0,iqt.useEffect)(()=>{i&&n(i)},[i,n])}var Vp=H(ee(),1),j0n={zIndex:e=>e.zIndex.drawer+1},Y0n={minHeight:48};function oqt({mode:e,toggle:t}){let r=nqt(),n=KWt(r.currentCwd,r.history);aqt(r.activeId,r.sessions,r.history,n.setSelectedCwd);let{launch:i,viewLaunchedSession:a}=rVt(r);return(0,Vp.jsx)(vO.Provider,{value:n,children:(0,Vp.jsxs)(rde.Provider,{value:i,children:[(0,Vp.jsx)(fAe.Provider,{value:r.daemonVersion,children:(0,Vp.jsx)(WWt,{mode:e,toggle:t})}),(0,Vp.jsx)(Dse,{position:"fixed",elevation:1,sx:j0n,children:(0,Vp.jsx)(TWt,{socket:r,selection:n})}),(0,Vp.jsx)(hw,{variant:"dense",sx:Y0n}),(0,Vp.jsx)(YWt,{socket:r,children:(0,Vp.jsx)(kGt,{socket:r})}),(0,Vp.jsx)(UGt,{socket:r,onViewLaunchedSession:a})]})})}var sqt=H(Be(),1);function lqt(){let[e,t]=(0,sqt.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 F4=H(ee(),1),X0n={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function K0n(){let{mode:e,toggle:t}=lqt(),r=(0,uqt.useMemo)(()=>bg({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:X0n}),[e]);return(0,F4.jsxs)(pH,{theme:r,children:[(0,F4.jsx)(tG,{}),(0,F4.jsx)(Khe,{children:(0,F4.jsx)(oqt,{mode:e,toggle:t})})]})}var cqt=document.getElementById("app");cqt&&(0,hqt.createRoot)(cqt).render((0,F4.jsx)(K0n,{}));})();
3938
+ `,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 oRe.get()},set promptLabel(e){oRe.set(e)},get tooMuchOutput(){return sRe.get()},set tooMuchOutput(e){sRe.set(e)}}}_verifyIntegers(...e){for(by of e)if(by===1/0||isNaN(by)||by%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(by of e)if(by&&(by===1/0||isNaN(by)||by%1!==0||by<0))throw new Error("This API only accepts positive integers")}};var eAe=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function l0n(e){try{return!!new URL(e).host}catch{return!1}}function KHt(e,t){let r=e(t),n=e(t+1);return!!r&&!!n&&(n.isWrapped||r.isFull)}function c0n(e,t){let r=[];for(let n=t;n-t<64;n++){let i=e(n);if(!i||(r.push(i.text),!KHt(e,n)))break}return r}function XHt(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 u0n(e,t,r){let n=r[0],i=XHt(e,t,r.index),a=XHt(e,t,r.index+n.length-1);if(!(!l0n(n)||!i||!a))return{text:n,range:{start:i,end:a}}}function h0n(e,t,r){let n=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(n)].flatMap(a=>u0n(e,t,a)??[])}function ZHt(e,t,r=eAe){if(!e(t-1))return[];let n=t-1;for(;n>0&&KHt(e,n-1);)n--;return h0n(c0n(e,n),n,r)}function QHt(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=ZHt(r,n,eAe);i(a.map(o=>({range:o.range,text:o.text,activate:t})))}}}function JHt(e){let t=new YHt({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 kFt;t.loadAddon(r);let n=t.registerLinkProvider(QHt(t,(a,o)=>{window.open(o,"_blank")}));t.open(e);let i;try{i=new Vzt,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 eGt(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 Rae(e){return e.type==="keydown"&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()==="p"}function tGt(e,t,r,n,i){let a=JHt(e);a.term.onData(u=>r(t,u)),a.term.attachCustomKeyEventHandler(u=>Rae(u)?!1:eGt(u,a.term,navigator.clipboard,h=>a.term.paste(h)));let o=n(t,u=>a.term.write(u)),s=new ResizeObserver(()=>{a.fitAddon.fit(),i(t,a.term.cols,a.term.rows)});return s.observe(e),{handle:a,cleanup:()=>{s.disconnect(),o(),a.dispose()}}}function rGt(e,t,r,n,i,a){let o=(0,Jz.useRef)(null);(0,Jz.useEffect)(()=>{let s=e.current;if(!s)return;let{handle:l,cleanup:u}=tGt(s,t,n,i,a);return o.current=l,()=>{u(),o.current=null}},[e,t,i,n,a]),(0,Jz.useEffect)(()=>{let s=o.current;if(!r||!s)return;let l=setTimeout(()=>{s.fitAddon.fit(),s.term.focus(),a(t,s.term.cols,s.term.rows)},50);return()=>clearTimeout(l)},[r,t,a])}var aGt=H(ee(),1);function iGt({sessionId:e,visible:t,onOutput:r,sendInput:n,sendResize:i}){let a=(0,nGt.useRef)(null);return rGt(a,e,t,n,r,i),(0,aGt.jsx)(et,{ref:a,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"}})}var P4=H(ee(),1);function oGt({sessions:e,activeId:t,initialized:r,onOutput:n,sendInput:i,sendResize:a}){let o=e.find(l=>l.id===t),s=o!==void 0&&mne(o,r);return(0,P4.jsxs)(et,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(l=>(0,P4.jsx)(iGt,{sessionId:l.id,visible:l.id===t,onOutput:n,sendInput:i,sendResize:a},l.id)),s&&(0,P4.jsx)(_Ft,{}),e.length===0&&(0,P4.jsx)(et,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,P4.jsx)(ft,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var sGt=H(ee(),1),lGt=Ut((0,sGt.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 Hp=H(ee(),1);function cGt({message:e}){return e.role==="tool"?(0,Hp.jsx)(d0n,{tool:e.tool,target:e.target}):(0,Hp.jsx)(f0n,{role:e.role,text:e.text})}function d0n({tool:e,target:t}){return(0,Hp.jsxs)(et,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,Hp.jsx)(lGt,{sx:{fontSize:14,color:"text.disabled"}}),(0,Hp.jsxs)(ft,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,Hp.jsx)(et,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,Hp.jsxs)(et,{component:"span",children:[" ",t]})]})]})}function f0n({role:e,text:t}){let r=e==="user",n=r?"info.main":"success.main";return(0,Hp.jsxs)(et,{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,Hp.jsx)(ft,{variant:"caption",sx:{color:n,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,Hp.jsx)(ft,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var wy=H(ee(),1);function p0n(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 hGt({messages:e,loading:t}){return t?(0,wy.jsxs)(et,{sx:uGt,children:[(0,wy.jsx)(Vn,{size:20}),(0,wy.jsx)(ft,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,wy.jsx)(et,{sx:uGt,children:(0,wy.jsx)(ft,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,wy.jsx)(et,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,wy.jsx)(et,{sx:{maxWidth:820,mx:"auto"},children:p0n(e).map(r=>(0,wy.jsx)(cGt,{message:r},r.key))})})}var uGt={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var tAe=H(ee(),1);function dGt({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,tAe.jsx)(et,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,tAe.jsx)(hGt,{messages:r?t?.messages??[]:[],loading:!r})})}var Aae=H(ee(),1);function fGt({viewingTranscriptSessionId:e,transcript:t,sendPrDecision:r,...n}){if(e!==null)return(0,Aae.jsx)(dGt,{sessionId:e,transcript:t});let i=n.sessions.find(o=>o.id===n.activeId),a=i?.pendingPrPreview??null;return(0,Aae.jsx)(CFt,{preview:a,cwd:i?.cwd,onDecision:(o,s,l,u)=>{i&&r(i.id,o,s,void 0,l,u)},children:(0,Aae.jsx)(oGt,{...n})})}var PM=H(Be(),1);function pGt(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 m0n(e,t,r,n){if(t==null)return;let i=Math.max(0,t-n),a=Math.max(0,r-i)/r;if(!(a<.05))return e/a}function Pae(e,t,r,n){let i=m0n(e,t,r,n);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var g0n={ok:"success.main",warn:"warning.main",over:"error.main"};function Lae(e){return g0n[e]}var eU=H(ee(),1),y0n={ok:"success",warn:"warning",over:"error"};function mGt({percentage:e,level:t}){return(0,eU.jsxs)(et,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,eU.jsx)(UI,{variant:"determinate",value:Math.min(100,e),color:y0n[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,eU.jsxs)(et,{sx:{minWidth:40,textAlign:"right",color:Lae(t)},children:[Math.round(e),"%"]})]})}function gGt(e){return e.avgContextPct==null?"\u2014":`${Math.round(e.avgContextPct)}%`}var v0n=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function rAe(e){return v0n.format(e)}var Mae=H(ee(),1);function yGt({peak:e}){return(0,Mae.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:(0,Mae.jsx)(Kn,{title:`Cycle started ${rAe(new Date(e.createdAt))}`,children:(0,Mae.jsx)("span",{children:rAe(new Date(e.resetsAt*1e3))})})})}var bGt=H(ee(),1);function vGt(){return(0,bGt.jsx)(Sn,{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 xGt(e){return!e.tokensUp&&!e.tokensDown?"\u2014":`\u2191 ${nE(e.tokensUp)} \u2193 ${nE(e.tokensDown)}`}var TGt={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 lg=H(ee(),1);function SGt({peak:e,now:t}){let{label:r,seconds:n,tint:i}=TGt[e.window],a=Pae(e.usedPercentage,e.resetsAt,n,t);return(0,lg.jsxs)(om,{sx:o=>({backgroundColor:i?o.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,lg.jsxs)(Zn,{children:[r,e.resetDetected&&(0,lg.jsx)(vGt,{})]}),(0,lg.jsx)(Zn,{sx:{minWidth:160},children:(0,lg.jsx)(mGt,{percentage:e.usedPercentage,level:a})}),(0,lg.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:gGt(e)}),(0,lg.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:e.phaseCount??0}),(0,lg.jsx)(Zn,{align:"right",sx:{whiteSpace:"nowrap"},children:xGt(e)}),(0,lg.jsx)(yGt,{peak:e})]})}var Iae=H(Be(),1);function Dae(e){let[t,r]=(0,Iae.useState)(()=>Math.floor(Date.now()/1e3));return(0,Iae.useEffect)(()=>{let n=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(n)},[e]),t}var Vl=H(ee(),1);function wGt({peaks:e}){let t=Dae(3e4);return(0,Vl.jsx)(uD,{component:si,children:(0,Vl.jsxs)(cw,{size:"small",children:[(0,Vl.jsx)(hD,{sx:{"& th":{whiteSpace:"nowrap"}},children:(0,Vl.jsxs)(om,{children:[(0,Vl.jsx)(Zn,{children:"Window"}),(0,Vl.jsx)(Zn,{children:"Peak usage"}),(0,Vl.jsx)(Zn,{align:"right",children:(0,Vl.jsx)(Kn,{title:"Mean context-window usage across all readings in this rate-limit cycle \u2014 distinct from the Peak usage quota above.",children:(0,Vl.jsx)("span",{children:"Avg context"})})}),(0,Vl.jsx)(Zn,{align:"right",children:(0,Vl.jsx)(Kn,{title:"Number of phase readings behind the average.",children:(0,Vl.jsx)("span",{children:"Phases"})})}),(0,Vl.jsx)(Zn,{align:"right",children:"Tokens spent"}),(0,Vl.jsx)(Zn,{align:"right",children:"Cycle reset"})]})}),(0,Vl.jsx)(uw,{children:e.map(r=>(0,Vl.jsx)(SGt,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var Cy=H(Be(),1),aAe=30;async function b0n(e){let t=await fetch(`/api/usage/history?page=${e}&pageSize=${aAe}`);if(!t.ok)throw new Error(`Failed to load usage history (HTTP ${t.status}).`);return t.json()}function CGt(){let[e,t]=(0,Cy.useState)(0),[r,n]=(0,Cy.useState)([]),[i,a]=(0,Cy.useState)(0),[o,s]=(0,Cy.useState)(!1),[l,u]=(0,Cy.useState)(!1),[h,d]=(0,Cy.useState)(null);return(0,Cy.useEffect)(()=>{let f=!1;return u(!0),b0n(e).then(p=>{f||(n(p.rows),a(p.total),s(!0),u(!1))},p=>{f||(d(p instanceof Error?p:new Error(String(p))),u(!1))}),()=>{f=!0}},[e]),(0,Cy.useEffect)(()=>{if(i===0)return;let f=Math.ceil(i/aAe)-1;e>f&&t(f)},[e,i]),{page:e,setPage:t,rows:r,total:i,loaded:o,fetching:l,error:h,pageSize:aAe}}var pS=H(ee(),1);function _Gt(){let{page:e,setPage:t,rows:r,total:n,loaded:i,fetching:a,error:o,pageSize:s}=CGt(),l=(0,PM.useRef)(null),[u,h]=(0,PM.useState)();if((0,PM.useLayoutEffect)(()=>{r.length===s&&l.current&&h(l.current.offsetHeight)},[r,s]),o)throw o;return(0,pS.jsxs)(fy,{loading:!i,title:"Usage history",isEmpty:n===0,emptyMessage:"No usage peaks recorded yet.",children:[(0,pS.jsx)(et,{sx:{height:4,mb:1},children:a&&(0,pS.jsx)(UI,{})}),(0,pS.jsx)(et,{ref:l,sx:{minHeight:u},children:(0,pS.jsx)(wGt,{peaks:r})}),(0,pS.jsx)(Hle,{component:"div",count:n,page:e,rowsPerPage:s,rowsPerPageOptions:[s],onPageChange:(d,f)=>t(f)})]})}var Ea=H(ee(),1);function x0n({socket:e}){return(0,Ea.jsx)(zb,{maxWidth:"md",sx:{py:3,px:2},children:(0,Ea.jsx)(hLt,{socket:e})})}function T0n({socket:e}){return(0,Ea.jsx)(fGt,{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 kGt({socket:e}){return(0,Ea.jsx)(Bw,{children:(0,Ea.jsxs)(vl,{element:(0,Ea.jsx)(hIt,{socket:e}),children:[(0,Ea.jsx)(vl,{path:"sessions",element:(0,Ea.jsx)(T0n,{socket:e})}),(0,Ea.jsx)(vl,{path:"backlog/*",element:(0,Ea.jsx)(x0n,{socket:e})}),(0,Ea.jsx)(vl,{path:"news",element:(0,Ea.jsx)(C$t,{})}),(0,Ea.jsx)(vl,{path:"usage",element:(0,Ea.jsx)(_Gt,{})}),(0,Ea.jsx)(vl,{path:"backups",element:(0,Ea.jsx)(vIt,{})}),(0,Ea.jsx)(vl,{path:"config",element:(0,Ea.jsx)(NIt,{})}),(0,Ea.jsx)(vl,{path:"diff",element:(0,Ea.jsx)(CNt,{})}),(0,Ea.jsx)(vl,{path:"file",element:(0,Ea.jsx)(x$t,{})}),(0,Ea.jsx)(vl,{path:"*",element:(0,Ea.jsx)(Ghe,{to:"/sessions",replace:!0})})]})})}var Uae=H(Be(),1);var zae=H(Be(),1);function EGt(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 mS=H(ee(),1),S0n={display:"flex",gap:1,alignItems:"center",minWidth:0},w0n={display:"flex",gap:1,alignItems:"baseline",minWidth:0,overflow:"hidden"},C0n={fontFamily:"monospace",fontSize:13,whiteSpace:"nowrap"},_0n={fontFamily:"monospace",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"};function k0n(e){let t=e.lastIndexOf("/");return t===-1?{dir:"",basename:e}:{dir:e.slice(0,t),basename:e.slice(t+1)}}function RGt({files:e,highlight:t,onHighlight:r,onSelect:n}){return(0,mS.jsx)(hh,{dense:!0,sx:{py:0},children:e.map((i,a)=>{let{dir:o,basename:s}=k0n(i);return(0,mS.jsxs)(ea,{selected:a===t,onMouseEnter:()=>r(a),onClick:()=>n(i),sx:S0n,children:[(0,mS.jsx)(Aie,{path:i}),(0,mS.jsxs)(et,{sx:w0n,children:[(0,mS.jsx)(ft,{component:"span",sx:C0n,children:s}),(0,mS.jsx)(ft,{component:"span",color:"text.secondary",sx:_0n,children:o})]})]},i)})})}var Oae=H(ee(),1),E0n={maxHeight:420,overflowY:"auto"},R0n={px:2,py:2,fontSize:13};function AGt({message:e,files:t,highlight:r,onHighlight:n,onSelect:i}){return(0,Oae.jsx)(et,{sx:E0n,children:e?(0,Oae.jsx)(ft,{color:"text.secondary",sx:R0n,children:e}):(0,Oae.jsx)(RGt,{files:t,highlight:r,onHighlight:n,onSelect:i})})}var PGt=H(ee(),1);function Nae({inputRef:e,value:t,onChange:r,onKeyDown:n,placeholder:i,autoFocus:a}){return(0,PGt.jsx)(tc,{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 Bae=H(Be(),1),LGt={files:[],loading:!1,error:!1};function MGt(e,t){let[r,n]=(0,Bae.useState)(LGt);return(0,Bae.useEffect)(()=>{if(!e){n(LGt);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 $ae=H(Be(),1);function Fae(e,t,r,n){let[i,a]=(0,$ae.useState)(0);return(0,$ae.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 tU=H(ee(),1),A0n={mt:6,alignSelf:"flex-start"};function IGt({onClose:e}){let{selectedCwd:t}=Ro(),[r,n]=(0,zae.useState)(""),i=MGt(t,r),a=va(),o=(0,zae.useRef)(null),s=f=>a(`/file?path=${encodeURIComponent(f)}`),{highlight:l,setHighlight:u,onKeyDown:h}=Fae(i.files,r,s,e),d=f=>{s(f),e()};return(0,tU.jsxs)(sh,{open:!0,onClose:e,maxWidth:"sm",fullWidth:!0,slotProps:{paper:{sx:A0n},transition:{onEntered:()=>o.current?.focus()}},children:[(0,tU.jsx)(Nae,{autoFocus:!0,inputRef:o,value:r,onChange:n,onKeyDown:h,placeholder:"Search files by name..."}),(0,tU.jsx)(AGt,{message:EGt(t,r,i),files:i.files,highlight:l,onHighlight:u,onSelect:d})]})}var OGt=H(Be(),1);var DGt=!0;function NGt(e){(0,OGt.useEffect)(()=>{let t=r=>{Rae(r)&&(r.preventDefault(),e())};return globalThis.addEventListener("keydown",t,DGt),()=>globalThis.removeEventListener("keydown",t,DGt)},[e])}var $Gt=H(ee(),1);function BGt(){let[e,t]=(0,Uae.useState)(!1);return NGt((0,Uae.useCallback)(()=>t(!0),[])),e?(0,$Gt.jsx)(IGt,{onClose:()=>t(!1)}):null}var Hae=H(ee(),1);function FGt({notice:e,onClose:t,onView:r}){let n=e?.sessionId??null;return(0,Hae.jsx)(Nf,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Hae.jsx)(ho,{severity:"success",variant:"filled",onClose:t,action:n!==null?(0,Hae.jsx)(jr,{color:"inherit",size:"small",onClick:()=>r(n),children:"View"}):void 0,children:e?.message})})}var Gae=H(ee(),1);function zGt({reconnecting:e}){return(0,Gae.jsx)(Nf,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,Gae.jsx)(ho,{severity:"info",variant:"filled",icon:(0,Gae.jsx)(Vn,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var wb=H(ee(),1);function UGt({socket:e,onViewLaunchedSession:t}){return(0,wb.jsxs)(wb.Fragment,{children:[(0,wb.jsx)(BGt,{}),(0,wb.jsx)(zGt,{reconnecting:e.reconnecting}),(0,wb.jsx)(hy,{error:e.error,onClose:e.clearError}),(0,wb.jsx)(FGt,{notice:e.success,onClose:e.clearSuccess,onView:t})]})}var LM=H(ee(),1),P0n=["/sessions","/backlog","/news"];function HGt(){let e=gs(),t=va(),r=P0n.findIndex(i=>e.pathname.startsWith(i)),n=i=>{e.pathname!==i&&t(i)};return(0,LM.jsxs)(fD,{value:r===-1?0:r,textColor:"inherit",indicatorColor:"secondary",children:[(0,LM.jsx)(jb,{label:"Sessions",onClick:()=>n("/sessions")}),(0,LM.jsx)(jb,{label:"Backlog",onClick:()=>n("/backlog")}),(0,LM.jsx)(jb,{label:"News",onClick:()=>n("/news")})]})}var Vae=H(Be(),1),Wae=H(ee(),1),L0n={color:"inherit"};function GGt({cwd:e}){let[t,r]=(0,Vae.useState)(null);return(0,Vae.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,Wae.jsx)(Kn,{title:"Open in GitHub",children:(0,Wae.jsx)(Rr,{sx:L0n,onClick:()=>window.open(t,"_blank"),children:(0,Wae.jsx)(Ene,{})})}):null}var VGt=H(Be(),1);var qae=H(ee(),1);function WGt({window:e,windowSeconds:t,fallbackLabel:r,now:n}){let i=e?.used_percentage;if(i==null)return null;let a=Pae(i,e?.resets_at,t,n),o=e?.resets_at!=null?pGt(e.resets_at,n):r;return(0,qae.jsxs)(et,{component:"span",children:[(0,qae.jsxs)(et,{component:"span",sx:{color:Lae(a)},children:[Math.round(i),"%"]})," ",(0,qae.jsxs)(et,{component:"span",sx:{color:"text.secondary"},children:["(",o,")"]})]})}var gS=H(ee(),1);function qGt({rateLimits:e}){let t=Dae(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,gS.jsx)(gS.Fragment,{children:r.map((n,i)=>(0,gS.jsxs)(VGt.Fragment,{children:[i>0?(0,gS.jsx)(et,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,gS.jsx)(WGt,{window:n.window,windowSeconds:n.windowSeconds,fallbackLabel:n.fallbackLabel,now:t})]},n.fallbackLabel))})}var jae=H(ee(),1),M0n={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13};function I0n(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function jGt({rateLimits:e}){return(0,jae.jsx)(Kn,{title:"Claude account usage (5h / 7d windows) \u2014 view history",children:(0,jae.jsx)(lh,{component:um,to:"/usage",underline:"hover",color:"inherit",sx:M0n,children:I0n(e)?(0,jae.jsx)(qGt,{rateLimits:e}):"Usage"})})}var YGt=H(ee(),1),XGt=Ut((0,YGt.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 Gp=H(Be(),1);var Yae=[{target:"daemon",label:"Restart daemon",message:"This restarts the sessions daemon. Running sessions will resume."},{target:"webserver",label:"Restart webserver",message:"This restarts the web server. The connection will drop briefly while it comes back."},{target:"both",label:"Restart both",message:"This restarts the sessions daemon and the web server. The connection will drop briefly while it comes back."}];function Xae(e){return fetch(`/api/restart?target=${e}`,{method:"POST"})}var D0n=15e3;function Kae(e,t){let[r,n]=(0,Gp.useState)(!1),[i,a]=(0,Gp.useState)(null),o=(0,Gp.useRef)(!1),s=(0,Gp.useRef)(void 0),l=(0,Gp.useRef)(t);l.current=t,(0,Gp.useEffect)(()=>{r&&(e?o.current=!0:o.current&&(clearTimeout(s.current),l.current?.(),globalThis.location.reload()))},[r,e]),(0,Gp.useEffect)(()=>()=>clearTimeout(s.current),[]);let u=(0,Gp.useCallback)(async()=>{n(!0),o.current=!1,s.current=setTimeout(()=>{n(!1),a("Web server did not come back")},D0n);try{if(!(await Xae("webserver")).ok)throw new Error("restart failed")}catch{clearTimeout(s.current),n(!1),a("Failed to restart web server")}},[]);return{pending:r,error:i,clearError:()=>a(null),restart:u}}var cg=H(ee(),1),O0n={color:"inherit",mr:1.5};function KGt({reconnecting:e}){let{pending:t,error:r,clearError:n,restart:i}=Kae(e);return(0,cg.jsxs)(cg.Fragment,{children:[(0,cg.jsx)(Kn,{title:"Restart web server",children:(0,cg.jsx)("span",{children:(0,cg.jsx)(Rr,{sx:O0n,disabled:t,onClick:i,children:t?(0,cg.jsx)(Vn,{size:24}):(0,cg.jsx)(XGt,{})})})}),(0,cg.jsx)(hy,{error:r,onClose:n})]})}var Qae=H(Be(),1);var ZGt=H(ee(),1),QGt=Ut((0,ZGt.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");var Zae=H(ee(),1);function JGt({label:e,open:t,onClick:r,disabled:n=!1}){return(0,Zae.jsx)(jr,{size:"small",variant:"outlined",disabled:n,onClick:r,endIcon:t?(0,Zae.jsx)(QGt,{}):(0,Zae.jsx)(lne,{}),sx:{textTransform:"none",fontSize:11,justifyContent:"space-between",maxWidth:"100%",overflow:"hidden"},fullWidth:!0,children:e})}var Jae=H(ee(),1),yS={position:"absolute",top:"100%",left:0,right:0,mt:.25,maxHeight:200,overflowY:"auto",zIndex:10};function _y({label:e,children:t,disabled:r=!1}){let[n,i]=(0,Qae.useState)(!1),a=(0,Qae.useRef)(null);return(0,Jae.jsxs)(si,{component:"fieldset",ref:a,variant:"outlined",sx:{position:"relative",border:"none",m:0,p:0},onBlur:o=>{a.current?.contains(o.relatedTarget)||i(!1)},children:[(0,Jae.jsx)(JGt,{label:e,open:n,disabled:r,onClick:()=>i(!n)}),n&&t(()=>i(!1))]})}var MM=H(Be(),1);var eoe=H(Be(),1);var toe=H(ee(),1);function eWt({cwd:e,selected:t,highlighted:r,onHover:n,onSelect:i}){let a=(0,eoe.useRef)(null);return(0,eoe.useEffect)(()=>{r&&a.current?.scrollIntoView({block:"nearest"})},[r]),(0,toe.jsxs)(ea,{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:[rU(e),WT(e)&&(0,toe.jsx)(zT,{})]})}var oAe=H(ee(),1);function tWt({repos:e,selected:t,highlight:r,onHighlight:n,onSelect:i}){return(0,oAe.jsx)(hh,{dense:!0,children:e.map((a,o)=>(0,oAe.jsx)(eWt,{cwd:a,selected:a===t,highlighted:o===r,onHover:()=>n(o),onSelect:()=>i(a)},a))})}var nU=H(ee(),1);function rU(e){let t=e.includes("\\")?"\\":"/";return e.split(t).filter(Boolean).pop()??e}var N0n={...yS};function rWt({repos:e,selected:t,onSelect:r,close:n}){let[i,a]=(0,MM.useState)(""),o=(0,MM.useRef)(null);(0,MM.useEffect)(()=>{o.current?.focus()},[]);let s=i.trim().toLowerCase(),l=s?e.filter(p=>p.toLowerCase().includes(s)):e,{highlight:u,setHighlight:h,onKeyDown:d}=Fae(l,s,r,n);return(0,nU.jsxs)(si,{elevation:4,sx:N0n,children:[(0,nU.jsx)(Nae,{inputRef:o,value:i,onChange:a,onKeyDown:d,placeholder:"Filter repos..."}),(0,nU.jsx)(tWt,{repos:l,selected:t,highlight:u,onHighlight:h,onSelect:p=>{r(p),n()}})]})}var IM=H(ee(),1);function B0n(e){return e?WT(e)?(0,IM.jsxs)("span",{style:{display:"flex",flexGrow:1,alignItems:"center",justifyContent:"space-between",gap:6,minWidth:0},children:[rU(e),(0,IM.jsx)(zT,{})]}):rU(e):"Select repo..."}function nWt({repos:e,selected:t,onSelect:r}){return(0,IM.jsx)(_y,{label:B0n(t),children:n=>(0,IM.jsx)(rWt,{repos:e,selected:t,onSelect:r,close:n})})}var sAe={"assist-draft":{label:"draft",args:["draft","--once"],prompt:!0,nav:!0},"assist-bug":{label:"bug",args:["bug","--once"],prompt:!0,nav:!0},"assist-refine":{label:"refine",args:["refine","--once"],prompt:!0,nav:!1}};function $0n(e){return e in sAe}function F0n(e,t){let r=[...sAe[e].args],n=t?.trim();return n&&r.push(n),r}function iWt(e,t,r,n,i){if($0n(e)&&t){r(F0n(e,i),t);return}n(e)}var lAe=Object.entries(sAe).map(([e,{label:t,prompt:r,nav:n}])=>({value:e,label:t,prompt:r,nav:n})),aWt="Enter prompt...";var sWt=H(Be(),1);function oWt(e,t){e.key==="Enter"&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),t.trim()!==""&&e.currentTarget.closest("form")?.requestSubmit())}var L4=H(ee(),1);function roe({value:e,onChange:t,onSubmit:r,header:n}){return(0,L4.jsx)(si,{elevation:4,sx:{...yS,left:"auto",width:320},children:(0,L4.jsxs)(Lr,{component:"form",spacing:1,sx:{p:1},onSubmit:i=>{i.preventDefault(),r()},children:[n,(0,L4.jsxs)(Lr,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[(0,L4.jsx)(tc,{value:e,onChange:i=>t(i.target.value),onKeyDown:i=>oWt(i,e),placeholder:aWt,size:"small",autoFocus:!0,fullWidth:!0,multiline:!0,maxRows:7,slotProps:{input:{sx:{fontSize:13}}}}),(0,L4.jsx)(jr,{type:"submit",variant:"contained",size:"small",sx:{whiteSpace:"nowrap"},children:"Start"})]})]})})}var cAe=H(ee(),1);function noe({disabled:e,onSubmit:t,label:r="prompt",allowEmpty:n=!1}){let[i,a]=(0,sWt.useState)("");return(0,cAe.jsx)(_y,{label:r,disabled:e,children:o=>(0,cAe.jsx)(roe,{value:i,onChange:a,onSubmit:()=>{!n&&!i.trim()||(t(i),a(""),o())}})})}var M4=H(ee(),1),z0n={textTransform:"none",fontSize:11,fontWeight:600};function lWt({onSelect:e,disabled:t=!1,children:r}){return(0,M4.jsxs)(M4.Fragment,{children:[lAe.filter(n=>n.nav&&n.prompt).map(n=>(0,M4.jsx)(noe,{label:n.label,allowEmpty:!0,disabled:t,onSubmit:i=>e(n.value,i)},n.value)),r,lAe.filter(n=>n.nav&&!n.prompt).map(n=>(0,M4.jsx)(jr,{size:"small",variant:"outlined",disabled:t,onClick:()=>e(n.value),sx:z0n,children:n.label},n.value))]})}var uAe=H(Be(),1);var ky=H(ee(),1),cWt={"& .MuiFormControlLabel-label":{fontSize:12}};function U0n({value:e,onChange:t}){return(0,ky.jsxs)(Ole,{row:!0,value:e,onChange:r=>t(r.target.value),children:[(0,ky.jsx)(Yk,{value:"claude",control:(0,ky.jsx)(IG,{size:"small"}),label:"claude",sx:cWt}),(0,ky.jsx)(Yk,{value:"pi",control:(0,ky.jsx)(IG,{size:"small"}),label:"pi",sx:cWt})]})}function uWt({cwd:e,disabled:t,onCreate:r,onCreatePi:n}){let{exposePiActions:i}=cne(),[a,o]=(0,uAe.useState)(""),[s,l]=(0,uAe.useState)("claude");return(0,ky.jsx)(_y,{label:"prompt",disabled:t,children:u=>(0,ky.jsx)(roe,{value:a,onChange:o,header:i?(0,ky.jsx)(U0n,{value:s,onChange:l}):void 0,onSubmit:()=>{(s==="pi"?n:r)(a,e),o(""),l("claude"),u()}})})}var I4=H(ee(),1);function hWt({cwd:e,disabled:t,onCreate:r,onCreateDesign:n,onCreatePi:i}){return(0,I4.jsxs)(I4.Fragment,{children:[(0,I4.jsx)(uWt,{cwd:e,disabled:t,onCreate:r,onCreatePi:i}),(0,I4.jsx)(noe,{label:"design",allowEmpty:!0,disabled:t,onSubmit:a=>n(a,e)})]})}var yWt=H(Be(),1);var iU=H(Be(),1);function ioe(e){let[t,r]=(0,iU.useState)([]),[n,i]=(0,iU.useState)(!0);return(0,iU.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 bf=H(ee(),1);function fWt({cwd:e,onPick:t}){let{prs:r,loading:n}=ioe(e);return(0,bf.jsx)(si,{elevation:4,sx:{...yS,left:"auto",width:320},children:n?(0,bf.jsx)(dWt,{text:"Loading open PRs\u2026"}):r.length===0?(0,bf.jsx)(dWt,{text:"No open PRs"}):(0,bf.jsx)(hh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,bf.jsx)(H0n,{pr:i,onPick:t},i.number))})})}function H0n({pr:e,onPick:t}){return(0,bf.jsx)(ea,{onMouseDown:r=>r.preventDefault(),onClick:()=>t(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,bf.jsxs)(Lr,{spacing:.25,sx:{minWidth:0},children:[(0,bf.jsx)(ft,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,bf.jsxs)(ft,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",_x(e.createdAt)]})]})})}function dWt({text:e}){return(0,bf.jsx)(et,{sx:{p:1.5},children:(0,bf.jsx)(ft,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var mWt=H(ee(),1);function pWt({cwd:e,onPick:t}){return(0,mWt.jsx)(fWt,{cwd:e,onPick:t})}var ug=H(ee(),1);function gWt({pr:e,onSelect:t,onCancel:r}){return(0,ug.jsxs)(sh,{open:!0,onClose:r,maxWidth:"xs",fullWidth:!0,children:[(0,ug.jsxs)(Of,{sx:{fontSize:15},children:["Review #",e.number,": ",e.title]}),(0,ug.jsx)(Df,{sx:{px:0},children:(0,ug.jsxs)(hh,{children:[Ane.map(({label:n,args:i})=>(0,ug.jsx)(ea,{onClick:()=>t(i),children:n},n)),(0,ug.jsx)(Fc,{}),(0,ug.jsx)(ea,{onClick:()=>t(["review-pr-comments"]),children:"Address Comments"})]})}),(0,ug.jsx)(If,{children:(0,ug.jsx)(jr,{onClick:r,children:"Cancel"})})]})}var vS=H(ee(),1);function vWt({cwd:e,disabled:t,onSelect:r}){let{prs:n,loading:i}=ioe(e),[a,o]=(0,yWt.useState)(null);return i||n.length===0?null:(0,vS.jsxs)(vS.Fragment,{children:[(0,vS.jsx)(_y,{label:"review",disabled:t,children:s=>(0,vS.jsx)(pWt,{cwd:e,onPick:l=>{o(l),s()}})}),a&&(0,vS.jsx)(gWt,{pr:a,onSelect:s=>{r(a,s),o(null)},onCancel:()=>o(null)})]})}var DM=H(ee(),1);function bWt({onStartRun:e,cwd:t}){let r=Lne(t);return!t||r.length===0?null:(0,DM.jsx)(_y,{label:"server",children:n=>(0,DM.jsx)(si,{elevation:4,sx:{...yS,left:"auto",width:200},children:(0,DM.jsx)(hh,{dense:!0,disablePadding:!0,children:r.map(i=>(0,DM.jsx)(ea,{onMouseDown:a=>a.preventDefault(),onClick:()=>{e(i.name,t),n()},sx:{py:.75},children:(0,DM.jsx)(ft,{sx:{fontSize:13},children:i.name})},i.name))})})})}var D4=H(ee(),1);function xWt({onCreate:e,onCreateDesign:t,onCreatePi:r,onCreateAssist:n,onStartRun:i}){let{selectedCwd:a}=Ro(),o=!a;return(0,D4.jsxs)(Lr,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:[(0,D4.jsxs)(lWt,{disabled:o,onSelect:(s,l)=>iWt(s,a,n,()=>{},l),children:[(0,D4.jsx)(hWt,{cwd:a,disabled:o,onCreate:e,onCreateDesign:t,onCreatePi:r}),(0,D4.jsx)(vWt,{cwd:a,disabled:o,onSelect:(s,l)=>n([...l,String(s.number)],a,Rne(s))})]}),(0,D4.jsx)(bWt,{onStartRun:i,cwd:a})]})}var Wp=H(ee(),1),G0n={minHeight:48,pl:1,pr:14},W0n={width:240,ml:2};function TWt({socket:e,selection:t}){return(0,Wp.jsxs)(hw,{variant:"dense",disableGutters:!0,sx:G0n,children:[(0,Wp.jsx)(KGt,{reconnecting:e.reconnecting}),(0,Wp.jsx)(HGt,{}),(0,Wp.jsx)(et,{sx:W0n,children:(0,Wp.jsx)(nWt,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd})}),(0,Wp.jsxs)(et,{sx:{display:"flex",ml:1,mr:2},children:[(0,Wp.jsx)(kne,{cwd:t.selectedCwd}),(0,Wp.jsx)(GGt,{cwd:t.selectedCwd})]}),(0,Wp.jsx)(xWt,{onCreate:e.createSession,onCreateDesign:e.createDesignSession,onCreatePi:e.createPiSession,onCreateAssist:e.createAssistSession,onStartRun:e.startRun}),(0,Wp.jsx)(jGt,{rateLimits:e.rateLimits})]})}var soe=H(Be(),1);var SWt=H(ee(),1),wWt=Ut((0,SWt.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 CWt=H(ee(),1),_Wt=Ut((0,CWt.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 kWt=H(ee(),1),EWt=Ut((0,kWt.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 hAe=H(ee(),1);function RWt({mode:e}){return e==="dark"?(0,hAe.jsx)(EWt,{fontSize:"small"}):(0,hAe.jsx)(_Wt,{fontSize:"small"})}var th=H(ee(),1);function AWt({mode:e,onToggleColorMode:t,onRestart:r,onUpdate:n}){return[(0,th.jsxs)(ea,{onClick:t,children:[(0,th.jsx)(GI,{children:(0,th.jsx)(RWt,{mode:e})}),(0,th.jsx)(VI,{children:"Toggle dark mode"})]},"color-mode"),(0,th.jsx)(Fc,{},"restart-divider"),...Yae.map(i=>(0,th.jsxs)(ea,{onClick:()=>r(i.target),children:[(0,th.jsx)(GI,{children:(0,th.jsx)(wne,{fontSize:"small"})}),(0,th.jsx)(VI,{children:i.label})]},i.target)),(0,th.jsxs)(ea,{onClick:n,children:[(0,th.jsx)(GI,{children:(0,th.jsx)(wWt,{fontSize:"small"})}),(0,th.jsx)(VI,{children:"Update assist"})]},"update")]}var LWt=H(ee(),1);function PWt({target:e,onClose:t}){let r=Yae.find(n=>n.target===e);return r?(0,LWt.jsx)(ys,{title:r.label,message:r.message,confirmLabel:"Restart",onConfirm:()=>{Xae(e),t()},onCancel:t}):null}var IWt=H(ee(),1);function MWt({onConfirm:e,onClose:t}){return(0,IWt.jsx)(ys,{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 O4=H(ee(),1);function DWt({restartTarget:e,onCloseRestart:t,updating:r,onCloseUpdate:n}){let{launchAssist:i,armUpdateReload:a}=$g();return(0,O4.jsxs)(O4.Fragment,{children:[e&&(0,O4.jsx)(PWt,{target:e,onClose:t}),r&&(0,O4.jsx)(MWt,{onConfirm:()=>{a(),i(["update"])},onClose:n})]})}var OWt=H(ee(),1),NWt=Ut((0,OWt.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var BWt=H(ee(),1),$Wt=Ut((0,BWt.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 aoe=H(ee(),1);function FWt(){let e=va();return(0,aoe.jsx)(Kn,{title:"Config",children:(0,aoe.jsx)(Rr,{size:"small",sx:{color:"inherit"},"aria-label":"Config",onClick:()=>e("/config"),children:(0,aoe.jsx)($Wt,{fontSize:"small"})})})}var dAe=H(ee(),1),zWt=Ut([(0,dAe.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,dAe.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var aU="0.447.0";var ooe=H(Be(),1),fAe=(0,ooe.createContext)(null);function UWt(){return(0,ooe.useContext)(fAe)}var bS=H(ee(),1);function HWt(){let e=UWt();return aU?(0,bS.jsxs)(bS.Fragment,{children:[(0,bS.jsxs)(ft,{variant:"caption",sx:{opacity:.4,userSelect:"none",lineHeight:1},children:["v",aU]}),e&&e!==aU&&(0,bS.jsx)(Kn,{title:`Daemon is running v${e}, but this page was served by v${aU}. Restart the daemon to match.`,children:(0,bS.jsx)(zWt,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})]}):null}var N4=H(ee(),1);function GWt({open:e,onOpen:t}){return(0,N4.jsxs)(et,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,N4.jsx)(HWt,{}),(0,N4.jsx)(FWt,{}),(0,N4.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,N4.jsx)(NWt,{fontSize:"small"})})]})}var xS=H(ee(),1);function WWt({mode:e,toggle:t}){let[r,n]=(0,soe.useState)(null),[i,a]=(0,soe.useState)(null),[o,s]=(0,soe.useState)(!1),l=!!r,u=()=>n(null);return(0,xS.jsxs)(xS.Fragment,{children:[(0,xS.jsx)(GWt,{open:l,onOpen:n}),(0,xS.jsx)(_g,{anchorEl:r,open:l,onClose:u,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:AWt({mode:e,onToggleColorMode:()=>{t(),u()},onRestart:h=>{u(),a(h)},onUpdate:()=>{u(),s(!0)}})}),(0,xS.jsx)(DWt,{restartTarget:i,onCloseRestart:()=>a(null),updating:o,onCloseUpdate:()=>s(!1)})]})}var jWt=H(Be(),1);var qWt=H(ee(),1);function VWt({conflict:e,onConfirm:t,onCancel:r}){let{name:n,cwd:i,port:a}=e.existing,o=sy(i),s=a?` on port ${a}`:"",l=o?` in ${o}`:"";return(0,qWt.jsx)(ys,{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 loe=H(ee(),1);function YWt({socket:e,children:t}){let{serverConflict:r,clearServerConflict:n,retrySession:i,stopSession:a,startRun:o,discardSession:s}=e,l=(0,jWt.useMemo)(()=>({onStop:a,onStart:o,onDiscard:s}),[a,o,s]),u=()=>{r&&(r.runName?o(r.runName,r.cwd,!0):r.sessionId&&i(r.sessionId,!0),n())};return(0,loe.jsxs)(l3e.Provider,{value:l,children:[t,r&&(0,loe.jsx)(VWt,{conflict:r,onConfirm:u,onCancel:n})]})}var B4=H(Be(),1);function XWt(e,t){let r=new Set,n=[];for(let i of t){let a=zL(i),o=K5(i);!a||!o||r.has(a)||(r.add(a),n.push(o))}return e&&!r.has(fne(e,t))&&n.unshift(e),n}function KWt(e,t){let[r,n]=(0,B4.useState)(e);(0,B4.useEffect)(()=>{e&&!r&&n(e)},[e,r]);let i=(0,B4.useMemo)(()=>XWt(e,t),[e,t]);return(0,B4.useMemo)(()=>({repos:i,selectedCwd:r,setSelectedCwd:n}),[i,r])}var uoe=H(Be(),1);var TS=H(Be(),1);var ZWt=H(Be(),1),coe="assist:reloaded-after-update";function QWt(e){(0,ZWt.useEffect)(()=>{globalThis.sessionStorage?.getItem(coe)&&(globalThis.sessionStorage.removeItem(coe),e({message:"Reloaded after updating assist",sessionId:null}))},[e])}var hg=H(Be(),1);function JWt(e){return e.commandType==="assist"&&e.assistArgs?.[0]==="update"&&e.status==="done"}function eVt(e,t){let[r,n]=(0,hg.useState)(!1),[i,a]=(0,hg.useState)(!1),o=(0,hg.useRef)(!1),s=(0,hg.useRef)(e);s.current=e;let l=(0,hg.useRef)(new Set),u=(0,hg.useCallback)(()=>{o.current=!1,a(!1),l.current=new Set(s.current.filter(JWt).map(h=>h.id)),n(!0)},[]);return(0,hg.useEffect)(()=>{if(!r||i)return;if(t){o.current=!0;return}if(!o.current)return;e.some(d=>JWt(d)&&!l.current.has(d.id))&&a(!0)},[r,i,t,e]),{arm:u,completed:i}}function tVt(e,t,r,n){let{arm:i,completed:a}=eVt(e,t),o=(0,TS.useRef)(!1),s=(0,TS.useCallback)(()=>{globalThis.sessionStorage?.setItem(coe,"1")},[]),{error:l,restart:u}=Kae(t,s);return QWt(r),(0,TS.useEffect)(()=>{l&&n(l)},[l,n]),(0,TS.useEffect)(()=>{!a||o.current||(o.current=!0,u())},[a,u]),{armUpdateReload:(0,TS.useCallback)(()=>{o.current=!1,i()},[i])}}function rVt(e){let{armUpdateReload:t}=tVt(e.sessions,e.reconnecting,e.setSuccess,e.setError),r=(0,uoe.useMemo)(()=>({launchAssist:e.createAssistSession,armUpdateReload:t}),[e.createAssistSession,t]),n=va(),i=(0,uoe.useCallback)(a=>{e.selectSession(a),n("/sessions"),e.clearSuccess()},[n,e.selectSession,e.clearSuccess]);return{launch:r,viewLaunchedSession:i}}var nVt=H(Be(),1);function hoe(e,t,r){if(!e)return;let n=t.find(a=>a.id===e);if(n)return K5(n);let i=r.find(a=>a.sessionId===e);return i&&K5(i)}function iVt(e,t,r,n){let i=hoe(e,t,r);(0,nVt.useEffect)(()=>{e&&i&&n({type:"set-active",cwd:i,sessionId:e})},[e,i,n])}var doe=H(Be(),1);function aVt(e,t){let r=(0,doe.useRef)(new Map);(0,doe.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 hVt=H(Be(),1);function oVt(e,t){return[...e,{...t,windows:WT(t.cwd),status:"launching"}]}function sVt(e){let t=e.find(r=>r.status==="launching");return t?e.filter(r=>r.id!==t.id):e}function lVt(e,t){let r=e.find(n=>n.status==="launching");return r?pAe(e,r.id,t):e}function pAe(e,t,r){return e.map(n=>n.id===t&&n.status==="launching"?{...n,status:"error",error:r}:n)}function cVt(e,t){return e.filter(r=>r.id!==t)}function uVt(e){let t=e;return t.type==="create"?{cwd:t.cwd,title:t.prompt?.trim()||(t.design?"New design session":"New session")}:t.type==="create-assist"?{cwd:t.cwd,title:t.title?.trim()||"New session"}:null}function dVt(e,t){return(0,hVt.useCallback)(r=>{let n=e.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify(r));let i=uVt(r);i&&t(i)},[e,t])}var Ey=H(Be(),1);function fVt(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r})}function pVt(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,design:!0})}function mVt(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r,harness:"pi"})}function gVt(e){return(t,r,n)=>e({type:"create-assist",assistArgs:t,cwd:r,title:n?.title,subtitle:n?.subtitle})}function yVt(e){return(t,r,n)=>e({type:"resume",sessionId:t,cwd:r,name:n})}function vVt(e,t){return(r,n)=>{t.delete(r),e({type:"retry",sessionId:r,replace:n})}}function bVt(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function xVt(e,t,r){return n=>{e({type:"dismiss",sessionId:n}),t.delete(n),r.delete(n)}}function TVt(e,t,r){return n=>{e({type:"discard",sessionId:n}),t.delete(n),r.delete(n)}}function SVt(e){return t=>e({type:"stop",sessionId:t})}function wVt(e){return(t,r,n)=>e({type:"create-run",runName:t,cwd:r,replace:n})}function CVt(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function _Vt(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function kVt(e){return(t,r)=>e({type:"set-starred",sessionId:t,starred:r})}function EVt(e){return(t,r)=>e({type:"input",sessionId:t,data:r})}function RVt(e){return(t,r,n)=>e({type:"resize",sessionId:t,cols:r,rows:n})}function AVt(e,t){return(r,n)=>{let i=e.get(r);return i&&n(i),t.set(r,n),()=>t.delete(r)}}function PVt(e){return(t,r,n,i,a,o)=>e({type:"pr-decision",sessionId:t,requestId:r,decision:n,reason:i,comments:a,screenshots:o})}var OM=H(Be(),1);function LVt(e){return{createSession:(0,OM.useMemo)(()=>fVt(e),[e]),createDesignSession:(0,OM.useMemo)(()=>pVt(e),[e]),createPiSession:(0,OM.useMemo)(()=>mVt(e),[e]),createAssistSession:(0,OM.useMemo)(()=>gVt(e),[e]),resumeSession:(0,OM.useMemo)(()=>yVt(e),[e])}}var oU=H(Be(),1);function MVt(e,t,r){let n=(0,oU.useCallback)((s,l)=>{vVt(e,t.current)(s,l)},[e,t]),i=(0,oU.useCallback)(s=>{bVt(e,t.current)(s)},[e,t]),a=(0,oU.useCallback)(s=>{xVt(e,t.current,r.current)(s)},[e,t,r]),o=(0,oU.useCallback)(s=>{TVt(e,t.current,r.current)(s)},[e,t,r]);return{retrySession:n,restartSession:i,dismissSession:a,discardSession:o}}function IVt(e,t,r){let n={...LVt(e),sendInput:(0,Ey.useMemo)(()=>EVt(e),[e]),sendResize:(0,Ey.useMemo)(()=>RVt(e),[e]),sendPrDecision:(0,Ey.useMemo)(()=>PVt(e),[e]),setAutoRun:(0,Ey.useMemo)(()=>CVt(e),[e]),setAutoAdvance:(0,Ey.useMemo)(()=>_Vt(e),[e]),setStarred:(0,Ey.useMemo)(()=>kVt(e),[e]),stopSession:(0,Ey.useMemo)(()=>SVt(e),[e]),startRun:(0,Ey.useMemo)(()=>wVt(e),[e])},i=(0,Ey.useMemo)(()=>AVt(t.current,r.current),[t,r]);return{...n,...MVt(e,t,r),onOutput:i}}var foe=H(Be(),1);function DVt(e,t,r){let n=(0,foe.useCallback)(o=>{r(o),e({type:"fetch-transcript",sessionId:o})},[e,r]),i=(0,foe.useCallback)(()=>{r(null)},[r]),a=(0,foe.useCallback)(o=>{r(null),t(o)},[t,r]);return{viewTranscript:n,clearTranscript:i,selectSession:a}}var dg=H(Be(),1);var NVt=H(Be(),1);function OVt(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 BVt(e,t,r){let n=gs().pathname,i=n.startsWith("/backlog")||n.startsWith("/usage");(0,NVt.useEffect)(()=>{if(i){t(null);return}t(a=>OVt(e,a,r))},[e,t,r,i])}var mAe=H(Be(),1);function $Vt(){let[e,t]=(0,mAe.useState)(null),[r,n]=(0,mAe.useState)(null);return{daemonActiveId:e,setDaemonActiveId:t,daemonVersion:r,setDaemonVersion:n}}var $4=H(Be(),1);function FVt(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 zVt(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 UVt(){let[e,t]=(0,$4.useState)(new Set),r=(0,$4.useRef)(new Map),n=(0,$4.useCallback)(a=>{t(o=>o.has(a)?o:new Set(o).add(a))},[]),i=(0,$4.useCallback)(a=>{let o=zVt(r.current,a);r.current=new Map(a.map(s=>[s.id,s.startedAt])),o.length&&t(s=>FVt(s,o))},[]);return{initialized:e,markInitialized:n,syncSessions:i}}var SS=H(Be(),1);function HVt(){let[e,t]=(0,SS.useState)(null),[r,n]=(0,SS.useState)(null),[i,a]=(0,SS.useState)(null),o=(0,SS.useCallback)(()=>t(null),[]),s=(0,SS.useCallback)(()=>n(null),[]),l=(0,SS.useCallback)(()=>a(null),[]);return{error:e,setError:t,clearError:o,success:r,setSuccess:n,clearSuccess:s,serverConflict:i,setServerConflict:a,clearServerConflict:l}}var Cb=H(Be(),1);var V0n=6e4,q0n="Launch timed out \u2014 the session did not start.";function GVt(){let[e,t]=(0,Cb.useState)([]),r=(0,Cb.useCallback)(o=>{t(s=>oVt(s,{id:crypto.randomUUID(),startedAt:Date.now(),...o}))},[]),n=(0,Cb.useCallback)(()=>t(sVt),[]),i=(0,Cb.useCallback)(o=>t(s=>lVt(s,o)),[]),a=(0,Cb.useCallback)(o=>t(s=>cVt(s,o)),[]);return(0,Cb.useEffect)(()=>{let o=e.filter(l=>l.status==="launching");if(o.length===0)return;let s=o.map(l=>setTimeout(()=>t(u=>pAe(u,l.id,q0n)),Math.max(0,V0n-(Date.now()-l.startedAt))));return()=>s.forEach(clearTimeout)},[e]),{pendingLaunches:e,addPendingLaunch:r,resolvePendingLaunch:n,failPendingLaunch:i,dismissPendingLaunch:a}}var WVt=H(Be(),1);function VVt(e,t){return(0,WVt.useCallback)(r=>{e(r),t(r)},[e,t])}var wS=H(Be(),1);function qVt(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function jVt(e,t){let r=e.sessionId;t.resolvePendingLaunch(),t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:"New session started",sessionId:r})}function YVt(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 XVt(e,t){t.setServerConflict({existing:e.existing,runName:e.runName,cwd:e.cwd,sessionId:e.sessionId})}function KVt(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 ZVt(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd);let n=e.active??{};t.setDaemonActiveId(KVt(n,r))}function QVt(e,t){switch(e.type){case"sessions":ZVt(e,t);break;case"created":jVt(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":XVt(e,t);break;case"limits":t.setRateLimits(e.rateLimits);break;case"clear":qVt(e,t);break;case"output":YVt(e,t);break}}function JVt(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=>{QVt(JSON.parse(i.data),e)},n.onclose=()=>t.onClose?.(),n}function eqt(e,t,r,n){let i=!1,a,o=0,s=!1,l=()=>{i||t(JVt(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 tqt(e){let t=(0,wS.useRef)(null),[r,n]=(0,wS.useState)(!1),{handleSessions:i,markInitialized:a,buffers:o,handlers:s}=e;(0,wS.useEffect)(()=>{let u=()=>{o.current?.clear();let d=s.current;if(d)for(let f of d.values())f("\x1Bc")},h=eqt({...e,setSessions:i},d=>{t.current=d},u,n);return()=>{h(),t.current?.close()}},[i,a,o,s]);let l=(0,wS.useCallback)(()=>{let u=t.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function rqt(){let[e,t]=(0,dg.useState)([]),[r,n]=(0,dg.useState)([]),[i,a]=(0,dg.useState)(null),o=$Vt(),[s,l]=(0,dg.useState)(null),[u,h]=(0,dg.useState)(null),[d,f]=(0,dg.useState)(""),p=HVt(),m=GVt(),[g,y]=(0,dg.useState)(null),{initialized:v,markInitialized:b,syncSessions:x}=UVt(),S=(0,dg.useRef)(new Map),w=(0,dg.useRef)(new Map),C=VVt(x,t),{wsRef:_,requestHistory:k,reconnecting:L}=tqt({handleSessions:C,setHistory:n,setActiveId:a,...o,setTranscript:l,setViewingTranscriptSessionId:h,setCurrentCwd:f,...p,...m,setRateLimits:y,markInitialized:b,buffers:S,handlers:w});return BVt(e,a,o.daemonActiveId),{sessions:e,history:r,activeId:i,setActiveId:a,...o,transcript:s,viewingTranscriptSessionId:u,setViewingTranscriptSessionId:h,currentCwd:d,...p,...m,rateLimits:g,initialized:v,wsRef:_,buffers:S,handlers:w,requestHistory:k,reconnecting:L}}function nqt(){let e=rqt(),{wsRef:t,buffers:r,handlers:n,addPendingLaunch:i,activeId:a,sessions:o}=e,s=dVt(t,i),l=IVt(s,r,n);iVt(a,o,e.history,s),aVt(o,s);let u=DVt(s,e.setActiveId,e.setViewingTranscriptSessionId);return{...e,...l,...u}}var iqt=H(Be(),1);function aqt(e,t,r,n){let i=hoe(e,t,r);(0,iqt.useEffect)(()=>{i&&n(i)},[i,n])}var Vp=H(ee(),1),j0n={zIndex:e=>e.zIndex.drawer+1},Y0n={minHeight:48};function oqt({mode:e,toggle:t}){let r=nqt(),n=KWt(r.currentCwd,r.history);aqt(r.activeId,r.sessions,r.history,n.setSelectedCwd);let{launch:i,viewLaunchedSession:a}=rVt(r);return(0,Vp.jsx)(vO.Provider,{value:n,children:(0,Vp.jsxs)(rde.Provider,{value:i,children:[(0,Vp.jsx)(fAe.Provider,{value:r.daemonVersion,children:(0,Vp.jsx)(WWt,{mode:e,toggle:t})}),(0,Vp.jsx)(Dse,{position:"fixed",elevation:1,sx:j0n,children:(0,Vp.jsx)(TWt,{socket:r,selection:n})}),(0,Vp.jsx)(hw,{variant:"dense",sx:Y0n}),(0,Vp.jsx)(YWt,{socket:r,children:(0,Vp.jsx)(kGt,{socket:r})}),(0,Vp.jsx)(UGt,{socket:r,onViewLaunchedSession:a})]})})}var sqt=H(Be(),1);function lqt(){let[e,t]=(0,sqt.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 F4=H(ee(),1),X0n={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function K0n(){let{mode:e,toggle:t}=lqt(),r=(0,uqt.useMemo)(()=>bg({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:X0n}),[e]);return(0,F4.jsxs)(pH,{theme:r,children:[(0,F4.jsx)(tG,{}),(0,F4.jsx)(Khe,{children:(0,F4.jsx)(oqt,{mode:e,toggle:t})})]})}var cqt=document.getElementById("app");cqt&&(0,hqt.createRoot)(cqt).render((0,F4.jsx)(K0n,{}));})();
3939
3939
  /*! Bundled license information:
3940
3940
 
3941
3941
  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.445.0",
9
+ version: "0.447.0",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -503,7 +503,8 @@ var assistConfigSchema = z2.strictObject({
503
503
  windowsDaemonHost: z2.string().optional(),
504
504
  // why: TCP port the native Windows daemon listens on for the WSL bridge; defaults to 51764
505
505
  windowsDaemonPort: z2.number().optional(),
506
- windowsVersionCheck: z2.enum(["block", "warn", "off"]).default("block")
506
+ windowsVersionCheck: z2.enum(["block", "warn", "off"]).default("block"),
507
+ includeCommittedChanges: z2.boolean().default(false)
507
508
  }).optional(),
508
509
  database: z2.strictObject({
509
510
  url: z2.string().optional()
@@ -8880,6 +8881,61 @@ function getCwdParam(req, res) {
8880
8881
  return cwd;
8881
8882
  }
8882
8883
 
8884
+ // src/commands/sessions/web/windowsCwdToWslPath.ts
8885
+ function windowsCwdToWslPath(cwd) {
8886
+ const match = /^([A-Za-z]):[\\/](.*)$/.exec(cwd);
8887
+ if (!match) return cwd;
8888
+ const drive = match[1].toLowerCase();
8889
+ const rest = match[2].replace(/\\/g, "/");
8890
+ return `/mnt/${drive}/${rest}`;
8891
+ }
8892
+
8893
+ // src/commands/sessions/web/toGitCwd.ts
8894
+ function toGitCwd(cwd) {
8895
+ return detectPlatform() === "wsl" ? windowsCwdToWslPath(cwd) : cwd;
8896
+ }
8897
+
8898
+ // src/commands/sessions/web/resolveDiffBase.ts
8899
+ function baseCandidates(defaultBranch) {
8900
+ return [
8901
+ defaultBranch && `origin/${defaultBranch}`,
8902
+ defaultBranch,
8903
+ "origin/main",
8904
+ "origin/master",
8905
+ "main",
8906
+ "master"
8907
+ ].filter((candidate) => Boolean(candidate));
8908
+ }
8909
+ async function refExists2(cwd, ref) {
8910
+ try {
8911
+ await execGit(cwd, ["rev-parse", "--verify", "--quiet", `${ref}^{commit}`]);
8912
+ return true;
8913
+ } catch {
8914
+ return false;
8915
+ }
8916
+ }
8917
+ async function resolveDiffBase(cwd) {
8918
+ let defaultBranch;
8919
+ try {
8920
+ const config = loadConfigFrom(toGitCwd(cwd));
8921
+ if (!config.sessions?.includeCommittedChanges) return "HEAD";
8922
+ defaultBranch = config.branch?.defaultBranch;
8923
+ } catch {
8924
+ return "HEAD";
8925
+ }
8926
+ for (const candidate of baseCandidates(defaultBranch)) {
8927
+ if (!await refExists2(cwd, candidate)) continue;
8928
+ try {
8929
+ const base = await execGit(cwd, ["merge-base", "HEAD", candidate]);
8930
+ const sha = base.trim();
8931
+ if (sha) return sha;
8932
+ } catch {
8933
+ }
8934
+ return "HEAD";
8935
+ }
8936
+ return "HEAD";
8937
+ }
8938
+
8883
8939
  // src/commands/sessions/web/diff.ts
8884
8940
  var MAX_DIFF_BYTES = 50 * 1024 * 1024;
8885
8941
  async function untrackedFileDiff(cwd, path71) {
@@ -8904,7 +8960,8 @@ async function diff2(req, res) {
8904
8960
  const cwd = getCwdParam(req, res);
8905
8961
  if (!cwd) return;
8906
8962
  try {
8907
- const tracked = await execGit(cwd, ["diff", "HEAD"], {
8963
+ const base = await resolveDiffBase(cwd);
8964
+ const tracked = await execGit(cwd, ["diff", base], {
8908
8965
  maxBuffer: MAX_DIFF_BYTES
8909
8966
  });
8910
8967
  const untracked = await untrackedDiff(cwd);
@@ -8919,22 +8976,6 @@ async function diff2(req, res) {
8919
8976
  // src/commands/sessions/web/fileContent.ts
8920
8977
  import { readFile, stat as stat2 } from "fs/promises";
8921
8978
  import { isAbsolute, relative as relative2, resolve as resolve9 } from "path";
8922
-
8923
- // src/commands/sessions/web/windowsCwdToWslPath.ts
8924
- function windowsCwdToWslPath(cwd) {
8925
- const match = /^([A-Za-z]):[\\/](.*)$/.exec(cwd);
8926
- if (!match) return cwd;
8927
- const drive = match[1].toLowerCase();
8928
- const rest = match[2].replace(/\\/g, "/");
8929
- return `/mnt/${drive}/${rest}`;
8930
- }
8931
-
8932
- // src/commands/sessions/web/toGitCwd.ts
8933
- function toGitCwd(cwd) {
8934
- return detectPlatform() === "wsl" ? windowsCwdToWslPath(cwd) : cwd;
8935
- }
8936
-
8937
- // src/commands/sessions/web/fileContent.ts
8938
8979
  var MAX_FILE_BYTES = 2 * 1024 * 1024;
8939
8980
  function resolveWithinCwd(cwd, path71) {
8940
8981
  const root = resolve9(toGitCwd(cwd));
@@ -9131,13 +9172,44 @@ function githubUrl(req, res) {
9131
9172
  });
9132
9173
  }
9133
9174
 
9175
+ // src/commands/sessions/web/parseDiffNameStatus.ts
9176
+ function categorize(code) {
9177
+ switch (code) {
9178
+ case "A":
9179
+ case "C":
9180
+ return "new";
9181
+ case "D":
9182
+ return "deleted";
9183
+ case "M":
9184
+ case "R":
9185
+ case "T":
9186
+ case "U":
9187
+ return "modified";
9188
+ default:
9189
+ return null;
9190
+ }
9191
+ }
9192
+ function parseDiffNameStatus(output) {
9193
+ const result = { new: [], modified: [], deleted: [] };
9194
+ for (const line of output.split("\n")) {
9195
+ const fields = line.split(" ");
9196
+ const status3 = fields[0];
9197
+ if (!status3 || fields.length < 2) continue;
9198
+ const category = categorize(status3[0]);
9199
+ if (!category) continue;
9200
+ const path71 = fields[fields.length - 1];
9201
+ if (path71) result[category].push(path71);
9202
+ }
9203
+ return result;
9204
+ }
9205
+
9134
9206
  // src/commands/sessions/web/parseGitStatus.ts
9135
9207
  function extractPath(rest) {
9136
9208
  const arrow = rest.indexOf(" -> ");
9137
9209
  return arrow === -1 ? rest : rest.slice(arrow + 4);
9138
9210
  }
9139
9211
  var UNMERGED_STATES = /* @__PURE__ */ new Set(["DD", "AU", "UD", "UA", "DU", "AA", "UU"]);
9140
- function categorize(xy) {
9212
+ function categorize2(xy) {
9141
9213
  if (xy === "??") return "new";
9142
9214
  if (UNMERGED_STATES.has(xy)) return "modified";
9143
9215
  const codes = xy.replace(/ /g, "");
@@ -9152,23 +9224,45 @@ function parseGitStatus(output) {
9152
9224
  const result = { new: [], modified: [], deleted: [] };
9153
9225
  for (const line of output.split("\n")) {
9154
9226
  if (line.length < 4) continue;
9155
- const category = categorize(line.slice(0, 2));
9227
+ const category = categorize2(line.slice(0, 2));
9156
9228
  if (category) result[category].push(extractPath(line.slice(3)));
9157
9229
  }
9158
9230
  return result;
9159
9231
  }
9160
9232
 
9161
9233
  // src/commands/sessions/web/gitStatus.ts
9234
+ async function untrackedPaths(cwd) {
9235
+ const list5 = await execGit(cwd, [
9236
+ "ls-files",
9237
+ "--others",
9238
+ "--exclude-standard"
9239
+ ]);
9240
+ return list5.split("\n").filter(Boolean);
9241
+ }
9242
+ async function branchCounts(cwd, base) {
9243
+ const output = await execGit(cwd, ["diff", "--name-status", base]);
9244
+ const counts = parseDiffNameStatus(output);
9245
+ counts.new.push(...await untrackedPaths(cwd));
9246
+ return counts;
9247
+ }
9248
+ async function workingTreeCounts(cwd) {
9249
+ const output = await execGit(cwd, [
9250
+ "status",
9251
+ "--porcelain",
9252
+ "--untracked-files=all"
9253
+ ]);
9254
+ return parseGitStatus(output);
9255
+ }
9162
9256
  async function gitStatus(req, res) {
9163
9257
  const cwd = getCwdParam(req, res);
9164
9258
  if (!cwd) return;
9165
9259
  try {
9166
- const output = await execGit(cwd, [
9167
- "status",
9168
- "--porcelain",
9169
- "--untracked-files=all"
9170
- ]);
9171
- respondJson(res, 200, parseGitStatus(output));
9260
+ const base = await resolveDiffBase(cwd);
9261
+ respondJson(
9262
+ res,
9263
+ 200,
9264
+ base === "HEAD" ? await workingTreeCounts(cwd) : await branchCounts(cwd, base)
9265
+ );
9172
9266
  } catch {
9173
9267
  respondJson(res, 200, { new: [], modified: [], deleted: [] });
9174
9268
  }
@@ -11140,6 +11234,11 @@ async function insertSubtask(orm, itemId2, title, description) {
11140
11234
  });
11141
11235
  }
11142
11236
 
11237
+ // src/commands/backlog/serializeManualChecks.ts
11238
+ function serializeManualChecks(manualCheck) {
11239
+ return manualCheck && manualCheck.length > 0 ? JSON.stringify(manualCheck) : null;
11240
+ }
11241
+
11143
11242
  // src/commands/backlog/createItemWithDefaults.ts
11144
11243
  async function createItemWithDefaults(fields) {
11145
11244
  const orm = await getDb();
@@ -11155,8 +11254,22 @@ async function createItemWithDefaults(fields) {
11155
11254
  },
11156
11255
  getOrigin()
11157
11256
  );
11158
- if (fields.type === "bug")
11257
+ const phases = fields.phases ?? [];
11258
+ if (phases.length > 0) {
11259
+ for (const [idx, phase] of phases.entries()) {
11260
+ await insertPhaseAt(
11261
+ orm,
11262
+ id,
11263
+ idx,
11264
+ phase.name,
11265
+ phase.tasks,
11266
+ serializeManualChecks(phase.manualChecks),
11267
+ void 0
11268
+ );
11269
+ }
11270
+ } else if (fields.type === "bug") {
11159
11271
  await insertPhaseAt(orm, id, 0, "Fix", ["Fix the bug"], null, void 0);
11272
+ }
11160
11273
  for (const subtask of loadConfig().subtasks ?? []) {
11161
11274
  await insertSubtask(orm, id, subtask.title, subtask.description);
11162
11275
  }
@@ -11285,11 +11398,6 @@ async function resolveInsertPosition(orm, itemId2, position) {
11285
11398
  return pos - 1;
11286
11399
  }
11287
11400
 
11288
- // src/commands/backlog/serializeManualChecks.ts
11289
- function serializeManualChecks(manualCheck) {
11290
- return manualCheck && manualCheck.length > 0 ? JSON.stringify(manualCheck) : null;
11291
- }
11292
-
11293
11401
  // src/commands/backlog/addPhase.ts
11294
11402
  async function addPhase(id, name, options2) {
11295
11403
  if (!ensureRemoteOrigin()) return;
@@ -11457,11 +11565,17 @@ import chalk78 from "chalk";
11457
11565
 
11458
11566
  // src/commands/backlog/propose/proposedItemSchema.ts
11459
11567
  import { z as z5 } from "zod";
11568
+ var proposedPhaseSchema = z5.strictObject({
11569
+ name: z5.string().trim().min(1, "phase name is required"),
11570
+ tasks: z5.array(z5.string().trim().min(1)).min(1, "a phase needs at least one task"),
11571
+ manualChecks: z5.array(z5.string().trim().min(1)).default([])
11572
+ });
11460
11573
  var proposedItemSchema = z5.strictObject({
11461
11574
  name: z5.string().trim().min(1, "name is required"),
11462
11575
  type: z5.enum(["story", "bug"]),
11463
11576
  description: z5.string().optional(),
11464
- acceptanceCriteria: z5.array(z5.string().trim().min(1)).default([])
11577
+ acceptanceCriteria: z5.array(z5.string().trim().min(1)).default([]),
11578
+ phases: z5.array(proposedPhaseSchema).default([])
11465
11579
  });
11466
11580
 
11467
11581
  // src/commands/backlog/propose/readProposedItem.ts
@@ -11500,6 +11614,18 @@ ${issues}`);
11500
11614
  }
11501
11615
 
11502
11616
  // src/commands/backlog/propose/renderProposedItem.ts
11617
+ function renderPhase(phase, i) {
11618
+ const parts = [
11619
+ `### Phase ${i + 1}: ${phase.name}`,
11620
+ phase.tasks.map((task) => `- ${task}`).join("\n")
11621
+ ];
11622
+ if (phase.manualChecks.length > 0)
11623
+ parts.push(
11624
+ "**Manual checks:**",
11625
+ phase.manualChecks.map((check2) => `- ${check2}`).join("\n")
11626
+ );
11627
+ return parts.join("\n\n");
11628
+ }
11503
11629
  function renderProposedItem(item) {
11504
11630
  const sections = [`**Type:** ${item.type}`];
11505
11631
  if (item.description) sections.push("## Description", item.description);
@@ -11508,6 +11634,8 @@ function renderProposedItem(item) {
11508
11634
  "## Acceptance Criteria",
11509
11635
  item.acceptanceCriteria.map((ac, i) => `${i + 1}. ${ac}`).join("\n")
11510
11636
  );
11637
+ if (item.phases.length > 0)
11638
+ sections.push("## Plan", ...item.phases.map(renderPhase));
11511
11639
  return sections.join("\n\n");
11512
11640
  }
11513
11641
 
@@ -30041,6 +30169,11 @@ var sessionsConfigHelp = [
30041
30169
  setter: "assist config set sessions.windowsVersionCheck block",
30042
30170
  note: "Windows daemon version mismatch handling: block | warn | off"
30043
30171
  },
30172
+ {
30173
+ key: "sessions.includeCommittedChanges",
30174
+ setter: "assist config set sessions.includeCommittedChanges true -g",
30175
+ note: "session card counts and /diff span the whole branch (merge-base with the default branch) instead of just uncommitted work (default off)"
30176
+ },
30044
30177
  {
30045
30178
  key: "worktree.enabled",
30046
30179
  setter: "assist config set worktree.enabled true -g --repo",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.445.0",
3
+ "version": "0.447.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {