@staff0rd/assist 0.361.0 → 0.362.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
|
@@ -41,7 +41,6 @@ After installation, the `assist` command will be available globally. You can als
|
|
|
41
41
|
## Claude Commands
|
|
42
42
|
|
|
43
43
|
- `/add-command` - Add a new run command to assist.yml
|
|
44
|
-
- `/associate-jira <KEY> [id]` - Associate a Jira ticket with the backlog item this session is working on (or an explicit id) by calling `assist backlog associate-jira`
|
|
45
44
|
- `/branch <description> [--jira KEY]` - Create a branch off the fresh remote default via `assist branch`, deriving a kebab-case slug from the description and auto-filling the Jira key from the session's backlog item when one is associated
|
|
46
45
|
- `/bug` - File a bug with reproduction steps, expected and actual behavior
|
|
47
46
|
- `/comment` - Add pending review comments to the current PR
|
|
@@ -58,8 +57,7 @@ After installation, the `assist` command will be available globally. You can als
|
|
|
58
57
|
- `/refine` - Refine an existing backlog item through conversation
|
|
59
58
|
- `/restructure` - Analyze and restructure tightly-coupled files
|
|
60
59
|
- `/review-comments` - Process PR review comments one by one
|
|
61
|
-
- `/jira` -
|
|
62
|
-
- `/update-jira [JIRA-KEY]` - Post a concise summary of this session's findings to a Jira ticket via MCP; attaches a passed key to the session's backlog item (else reads the key from it), retargets sub-task comments to the parent, and previews the comment before posting on confirmation
|
|
60
|
+
- `/jira [action] [KEY] [args]` - Dispatch Jira actions. `view` (default for a bare key) fetches and displays the issue; `associate <KEY> [id]` associates a ticket with a backlog item via `assist backlog associate-jira`; `update [KEY]` posts a concise session-summary comment via MCP (attaches a passed key to the session item first, else reads the key from it; retargets sub-task comments to the parent; previews before posting); `started [KEY]` assigns it to the current Atlassian user and transitions it to In Progress; `done [KEY]` transitions it to Done with no assignment change; `help` (or bare `/jira`) lists the actions. A `[KEY]` is optional for every action — when omitted it resolves from the session's current backlog item; started/done act on the exact issue with no parent retargeting
|
|
63
61
|
- `/journal` - Append a journal entry summarising recent work, decisions, and notable observations
|
|
64
62
|
- `/next [id]` - Signal completion and chain into the next backlog item; pass an `id` to run a specific item directly (falls back to the picker if the id is missing, done, won't-do, or blocked)
|
|
65
63
|
- `/standup` - Summarise recent journal entries as a standup update
|
package/claude/commands/jira.md
CHANGED
|
@@ -1,5 +1,120 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: View a Jira work item
|
|
2
|
+
description: View or act on a Jira work item (view, associate, update, started, done, help)
|
|
3
|
+
allowed_args: "[action] [JIRA-KEY] [args]"
|
|
3
4
|
---
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
You are the `/jira` dispatcher. Parse `$ARGUMENTS` into an **action verb** plus optional key/args, then run that action. Actions: `view`, `associate`, `update`, `started`, `done`, `help`.
|
|
7
|
+
|
|
8
|
+
## Step 1: Parse the action
|
|
9
|
+
|
|
10
|
+
Tokenise `$ARGUMENTS` on whitespace.
|
|
11
|
+
|
|
12
|
+
- No tokens → run **help**.
|
|
13
|
+
- First token is a known action verb (`view`, `associate`, `update`, `started`, `done`, `help`) → that is the action; the remaining tokens are its args.
|
|
14
|
+
- First token matches a Jira key (`[A-Z]+-\d+`) → action is **view**, key is that token.
|
|
15
|
+
- Anything else → run **help** (the input was not understood).
|
|
16
|
+
|
|
17
|
+
## Step 2: Resolve the key (for view / started / done / update)
|
|
18
|
+
|
|
19
|
+
These actions operate on a single Jira issue. Resolve it once:
|
|
20
|
+
|
|
21
|
+
- If the action's args include a token matching `[A-Z]+-\d+`, use that key verbatim.
|
|
22
|
+
- Otherwise read it from the backlog item this session is working on — the one you are implementing, reviewing, or otherwise focused on (e.g. via `/next-backlog-item`, a `backlog run`, or earlier in this conversation). Get its id, then run:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
assist backlog show <id> 2>&1
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Use the `Jira: <KEY>` line from the output.
|
|
29
|
+
|
|
30
|
+
If no key can be resolved — none was passed and there is no session item, or the item has no associated key — tell the user there is nothing to act on and ask them to pass an explicit key. Do not guess a key.
|
|
31
|
+
|
|
32
|
+
Resolve the Atlassian `cloudId` once via `mcp__claude_ai_Atlassian__getAccessibleAtlassianResources` and reuse it for every MCP call below.
|
|
33
|
+
|
|
34
|
+
started and done act on the **exact** issue/subtask the key resolves to. Do not retarget to a parent issue.
|
|
35
|
+
|
|
36
|
+
## Action: view
|
|
37
|
+
|
|
38
|
+
Fetch the issue with `mcp__claude_ai_Atlassian__getJiraIssue` and display the result to the user.
|
|
39
|
+
|
|
40
|
+
## Action: associate
|
|
41
|
+
|
|
42
|
+
Associate a Jira ticket with a backlog item by calling the `assist backlog associate-jira` CLI command, which validates the key, confirms the issue exists in Jira, and stores it on the item. Args are `<JIRA-KEY> [backlog item id]`.
|
|
43
|
+
|
|
44
|
+
Identify which token is the Jira key (matches `[A-Z]+-\d+`) and which, if any, is the item id (a bare number).
|
|
45
|
+
|
|
46
|
+
Resolve the target item: use the explicit item id if provided, otherwise the backlog item this session is working on. If there is no explicit id and this session is not working on a backlog item, there is nothing to associate the key with — tell the user and ask them to pass an explicit item id.
|
|
47
|
+
|
|
48
|
+
Call the CLI command with the resolved id and the Jira key:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
assist backlog associate-jira <id> <JIRA-KEY> 2>&1
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
To remove an existing association instead, run:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
assist backlog associate-jira <id> --clear 2>&1
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Display the command output so the user can see the result. If the command reports an error (item not found, malformed key, or the issue could not be fetched), relay it to the user — no key is stored on failure.
|
|
61
|
+
|
|
62
|
+
## Action: update
|
|
63
|
+
|
|
64
|
+
Post a concise comment summarising this session's findings to a Jira ticket. If a key is passed it is first attached to the session's current backlog item; otherwise the key is read from that item.
|
|
65
|
+
|
|
66
|
+
**Resolve the key** as in Step 2, with one addition: if a key was explicitly passed in the args, first attach it to the session's current backlog item, then use it:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
assist backlog associate-jira <id> <JIRA-KEY> 2>&1
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
If the command reports an error (item not found, malformed key, or the issue could not be fetched), relay it to the user and stop — no key is stored on failure.
|
|
73
|
+
|
|
74
|
+
**Resolve the comment target:** fetch the issue with `mcp__claude_ai_Atlassian__getJiraIssue`, requesting fields including `issuetype` and `parent`. If `fields.issuetype.subtask` is true, retarget the comment to the parent: use `fields.parent.key` as the issue you comment on. Otherwise comment on the key itself.
|
|
75
|
+
|
|
76
|
+
**Compose a concise comment** from the conversation context:
|
|
77
|
+
|
|
78
|
+
- One summary line stating what was done or found.
|
|
79
|
+
- A few short bullets with the concrete specifics (files, decisions, outcomes).
|
|
80
|
+
|
|
81
|
+
Keep it concise: no headers, no wall of text, no restating the whole session. If there is little of substance to report, keep it to the single summary line.
|
|
82
|
+
|
|
83
|
+
Do not mention `assist`, the assist backlog, or any backlog item number in the comment — the Jira ticket is outward-facing and must not leak internal tooling references. Refer to commits, PRs, or the work itself instead.
|
|
84
|
+
|
|
85
|
+
**Preview and confirm before posting.** Show the drafted comment and the target issue key to the user. Do not post until the user explicitly confirms. If they ask for edits, revise and show the updated draft again. Once confirmed, post it with `mcp__claude_ai_Atlassian__addCommentToJiraIssue`, using the resolved target key and `contentFormat: markdown`. Display the result so the user can see it landed.
|
|
86
|
+
|
|
87
|
+
## Action: started
|
|
88
|
+
|
|
89
|
+
Move the resolved issue to In Progress and assign it to yourself:
|
|
90
|
+
|
|
91
|
+
1. Get the current Atlassian user with `mcp__claude_ai_Atlassian__atlassianUserInfo` to obtain their `account_id`.
|
|
92
|
+
2. Assign the issue with `mcp__claude_ai_Atlassian__editJiraIssue`, setting `fields.assignee` to `{ "accountId": "<account_id>" }`.
|
|
93
|
+
3. List transitions with `mcp__claude_ai_Atlassian__getTransitionsForJiraIssue`. Find the one whose target status name matches **In Progress** case-insensitively and apply it with `mcp__claude_ai_Atlassian__transitionJiraIssue`.
|
|
94
|
+
|
|
95
|
+
If no matching transition is available, list the available transition names to the user and stop (the assignment above still stands — tell the user it was applied).
|
|
96
|
+
|
|
97
|
+
Report the final assignee and status.
|
|
98
|
+
|
|
99
|
+
## Action: done
|
|
100
|
+
|
|
101
|
+
Move the resolved issue to Done with **no** assignment change:
|
|
102
|
+
|
|
103
|
+
1. List transitions with `mcp__claude_ai_Atlassian__getTransitionsForJiraIssue`. Find the one whose target status name matches **Done** case-insensitively and apply it with `mcp__claude_ai_Atlassian__transitionJiraIssue`.
|
|
104
|
+
|
|
105
|
+
If no matching transition is available, list the available transition names to the user and stop.
|
|
106
|
+
|
|
107
|
+
Report the final status.
|
|
108
|
+
|
|
109
|
+
## Action: help
|
|
110
|
+
|
|
111
|
+
List the available actions and their arguments:
|
|
112
|
+
|
|
113
|
+
- `/jira <KEY>` or `/jira view <KEY>` — view an issue (KEY optional; falls back to the session item's Jira key).
|
|
114
|
+
- `/jira associate <KEY> [id]` — associate a Jira ticket with a backlog item (id optional; falls back to the session item).
|
|
115
|
+
- `/jira update [KEY]` — post a concise session-summary comment to the issue (retargets sub-task comments to the parent; previews before posting).
|
|
116
|
+
- `/jira started [KEY]` — assign the issue to yourself and transition it to In Progress.
|
|
117
|
+
- `/jira done [KEY]` — transition the issue to Done (no assignment change).
|
|
118
|
+
- `/jira help` — show this list.
|
|
119
|
+
|
|
120
|
+
Note that every action's `[KEY]` is optional: when omitted it resolves from the session's current backlog item.
|
|
@@ -379,7 +379,7 @@ ${u.join(`
|
|
|
379
379
|
`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),Zk&&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,o=this._model.finalSelectionEnd;return!r||!o||!t?!1:this._areCoordsInSelection(t,r,o)}isCellInSelection(e,t){let r=this._model.finalSelectionStart,o=this._model.finalSelectionEnd;return!r||!o?!1:this._areCoordsInSelection([e,t],r,o)}_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=kH(r,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let o=this._getMouseBufferCoords(e);return o?(this._selectWordAt(o,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=Xk(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,-Z2),Z2),t/=Z2,t/Math.abs(t)+Math.round(t*(ihe-1)))}shouldForceSelection(e){return _T?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(),she)}_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&&!(_T&&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 o=r.lines.get(this._model.selectionEnd[1]);o&&o.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<nhe&&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 o=Xfe(r[0]-1,r[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(o,!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 o=0;t>=o;o++){let i=e.loadCell(o,this._workCell).getChars().length;this._workCell.getWidth()===0?r--:i>1&&t!==o&&(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,o=!0){if(e[0]>=this._bufferService.cols)return;let i=this._bufferService.buffer,s=i.lines.get(e[1]);if(!s)return;let n=i.translateBufferLineToString(e[1],!1),a=this._convertViewportColToCharacterIndex(s,e[0]),l=a,c=e[0]-a,u=0,p=0,f=0,d=0;if(n.charAt(a)===" "){for(;a>0&&n.charAt(a-1)===" ";)a--;for(;l<n.length&&n.charAt(l+1)===" ";)l++}else{let S=e[0],y=e[0];s.getWidth(S)===0&&(u++,S--),s.getWidth(y)===2&&(p++,y++);let v=s.getString(y).length;for(v>1&&(d+=v-1,l+=v-1);S>0&&a>0&&!this._isCharWordSeparator(s.loadCell(S-1,this._workCell));){s.loadCell(S-1,this._workCell);let b=this._workCell.getChars().length;this._workCell.getWidth()===0?(u++,S--):b>1&&(f+=b-1,a-=b-1),a--,S--}for(;y<s.length&&l+1<n.length&&!this._isCharWordSeparator(s.loadCell(y+1,this._workCell));){s.loadCell(y+1,this._workCell);let b=this._workCell.getChars().length;this._workCell.getWidth()===2?(p++,y++):b>1&&(d+=b-1,l+=b-1),l++,y++}}l++;let h=a+c-u+f,g=Math.min(this._bufferService.cols,l-a+u+p-f-d);if(!(!t&&n.slice(a,l).trim()==="")){if(r&&h===0&&s.getCodePoint(0)!==32){let S=i.lines.get(e[1]-1);if(S&&s.isWrapped&&S.getCodePoint(this._bufferService.cols-1)!==32){let y=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(y){let v=this._bufferService.cols-y.start;h-=v,g+=v}}}if(o&&h+g===this._bufferService.cols&&s.getCodePoint(this._bufferService.cols-1)!==32){let S=i.lines.get(e[1]+1);if(S?.isWrapped&&S.getCodePoint(0)!==32){let y=this._getWordAt([0,e[1]+1],!1,!1,!0);y&&(g+=y.length)}}return{start:h,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=kH(r,this._bufferService.cols)}};Lk=ar([de(3,Qo),de(4,Up),de(5,jk),de(6,Jo),de(7,hl),de(8,fl)],Lk);var MH=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={}}},AH=class{constructor(){this._color=new MH,this._css=new MH}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()}},Ir=Object.freeze((()=>{let e=[Qt.toColor("#2e3436"),Qt.toColor("#cc0000"),Qt.toColor("#4e9a06"),Qt.toColor("#c4a000"),Qt.toColor("#3465a4"),Qt.toColor("#75507b"),Qt.toColor("#06989a"),Qt.toColor("#d3d7cf"),Qt.toColor("#555753"),Qt.toColor("#ef2929"),Qt.toColor("#8ae234"),Qt.toColor("#fce94f"),Qt.toColor("#729fcf"),Qt.toColor("#ad7fa8"),Qt.toColor("#34e2e2"),Qt.toColor("#eeeeec")],t=[0,95,135,175,215,255];for(let r=0;r<216;r++){let o=t[r/36%6|0],i=t[r/6%6|0],s=t[r%6];e.push({css:Rr.toCss(o,i,s),rgba:Rr.toRgba(o,i,s)})}for(let r=0;r<24;r++){let o=8+r*10;e.push({css:Rr.toCss(o,o,o),rgba:Rr.toRgba(o,o,o)})}return e})()),Bp=Qt.toColor("#ffffff"),cv=Qt.toColor("#000000"),LH=Qt.toColor("#ffffff"),OH=cv,ov={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117},che=Bp,Ok=class extends ke{constructor(e){super(),this._optionsService=e,this._contrastCache=new AH,this._halfContrastCache=new AH,this._onChangeColors=this._register(new ne),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:Bp,background:cv,cursor:LH,cursorAccent:OH,selectionForeground:void 0,selectionBackgroundTransparent:ov,selectionBackgroundOpaque:zt.blend(cv,ov),selectionInactiveBackgroundTransparent:ov,selectionInactiveBackgroundOpaque:zt.blend(cv,ov),scrollbarSliderBackground:zt.opacity(Bp,.2),scrollbarSliderHoverBackground:zt.opacity(Bp,.4),scrollbarSliderActiveBackground:zt.opacity(Bp,.5),overviewRulerBorder:Bp,ansi:Ir.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=bt(e.foreground,Bp),t.background=bt(e.background,cv),t.cursor=zt.blend(t.background,bt(e.cursor,LH)),t.cursorAccent=zt.blend(t.background,bt(e.cursorAccent,OH)),t.selectionBackgroundTransparent=bt(e.selectionBackground,ov),t.selectionBackgroundOpaque=zt.blend(t.background,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundTransparent=bt(e.selectionInactiveBackground,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundOpaque=zt.blend(t.background,t.selectionInactiveBackgroundTransparent),t.selectionForeground=e.selectionForeground?bt(e.selectionForeground,PH):void 0,t.selectionForeground===PH&&(t.selectionForeground=void 0),zt.isOpaque(t.selectionBackgroundTransparent)&&(t.selectionBackgroundTransparent=zt.opacity(t.selectionBackgroundTransparent,.3)),zt.isOpaque(t.selectionInactiveBackgroundTransparent)&&(t.selectionInactiveBackgroundTransparent=zt.opacity(t.selectionInactiveBackgroundTransparent,.3)),t.scrollbarSliderBackground=bt(e.scrollbarSliderBackground,zt.opacity(t.foreground,.2)),t.scrollbarSliderHoverBackground=bt(e.scrollbarSliderHoverBackground,zt.opacity(t.foreground,.4)),t.scrollbarSliderActiveBackground=bt(e.scrollbarSliderActiveBackground,zt.opacity(t.foreground,.5)),t.overviewRulerBorder=bt(e.overviewRulerBorder,che),t.ansi=Ir.slice(),t.ansi[0]=bt(e.black,Ir[0]),t.ansi[1]=bt(e.red,Ir[1]),t.ansi[2]=bt(e.green,Ir[2]),t.ansi[3]=bt(e.yellow,Ir[3]),t.ansi[4]=bt(e.blue,Ir[4]),t.ansi[5]=bt(e.magenta,Ir[5]),t.ansi[6]=bt(e.cyan,Ir[6]),t.ansi[7]=bt(e.white,Ir[7]),t.ansi[8]=bt(e.brightBlack,Ir[8]),t.ansi[9]=bt(e.brightRed,Ir[9]),t.ansi[10]=bt(e.brightGreen,Ir[10]),t.ansi[11]=bt(e.brightYellow,Ir[11]),t.ansi[12]=bt(e.brightBlue,Ir[12]),t.ansi[13]=bt(e.brightMagenta,Ir[13]),t.ansi[14]=bt(e.brightCyan,Ir[14]),t.ansi[15]=bt(e.brightWhite,Ir[15]),e.extendedAnsi){let r=Math.min(t.ansi.length-16,e.extendedAnsi.length);for(let o=0;o<r;o++)t.ansi[o+16]=bt(e.extendedAnsi[o],Ir[o+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()}}};Ok=ar([de(0,Jo)],Ok);function bt(e,t){if(e!==void 0)try{return Qt.toColor(e)}catch{}return t}var uhe=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)}},phe=class{constructor(){this._services=new uhe,this._services.set(Hk,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){let r=Ape(e).sort((s,n)=>s.index-n.index),o=[];for(let s of r){let n=this._services.get(s.id);if(!n)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${s.id._id}.`);o.push(n)}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,...o)}},dhe={trace:0,debug:1,info:2,warn:3,error:4,off:5},fhe="xterm.js: ",Dk=class extends ke{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),hhe=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=dhe[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?"":fhe)+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)}};Dk=ar([de(0,Jo)],Dk);var hhe,DH=class extends ke{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this._register(new ne),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new ne),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new ne),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 o=e;o<this._length-t;o++)this._array[this._getCyclicIndex(o)]=this._array[this._getCyclicIndex(o+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let o=this._length-1;o>=e;o--)this._array[this._getCyclicIndex(o+r.length)]=this._array[this._getCyclicIndex(o)];for(let o=0;o<r.length;o++)this._array[this._getCyclicIndex(e+o)]=r[o];if(r.length&&this.onInsertEmitter.fire({index:e,amount:r.length}),this._length+r.length>this._maxLength){let o=this._length+r.length-this._maxLength;this._startIndex+=o,this._length=this._maxLength,this.onTrimEmitter.fire(o)}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 o=e+t+r-this._length;if(o>0)for(this._length+=o;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let o=0;o<t;o++)this.set(e+o+r,this.get(e+o))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}},De=3,Pr=Object.freeze(new bv),oT=0,Q2=2,uv=class K9{constructor(t,r,o=!1){this.isWrapped=o,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(t*De);let i=r||Ds.fromCharData([0,i9,1,0]);for(let s=0;s<t;++s)this.setCell(s,i);this.length=t}get(t){let r=this._data[t*De+0],o=r&2097151;return[this._data[t*De+1],r&2097152?this._combined[t]:o?$c(o):"",r>>22,r&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):o]}set(t,r){this._data[t*De+1]=r[0],r[1].length>1?(this._combined[t]=r[1],this._data[t*De+0]=t|2097152|r[2]<<22):this._data[t*De+0]=r[1].charCodeAt(0)|r[2]<<22}getWidth(t){return this._data[t*De+0]>>22}hasWidth(t){return this._data[t*De+0]&12582912}getFg(t){return this._data[t*De+1]}getBg(t){return this._data[t*De+2]}hasContent(t){return this._data[t*De+0]&4194303}getCodePoint(t){let r=this._data[t*De+0];return r&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):r&2097151}isCombined(t){return this._data[t*De+0]&2097152}getString(t){let r=this._data[t*De+0];return r&2097152?this._combined[t]:r&2097151?$c(r&2097151):""}isProtected(t){return this._data[t*De+2]&536870912}loadCell(t,r){return oT=t*De,r.content=this._data[oT+0],r.fg=this._data[oT+1],r.bg=this._data[oT+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*De+0]=r.content,this._data[t*De+1]=r.fg,this._data[t*De+2]=r.bg}setCellFromCodepoint(t,r,o,i){i.bg&268435456&&(this._extendedAttrs[t]=i.extended),this._data[t*De+0]=r|o<<22,this._data[t*De+1]=i.fg,this._data[t*De+2]=i.bg}addCodepointToCell(t,r,o){let i=this._data[t*De+0];i&2097152?this._combined[t]+=$c(r):i&2097151?(this._combined[t]=$c(i&2097151)+$c(r),i&=-2097152,i|=2097152):i=r|1<<22,o&&(i&=-12582913,i|=o<<22),this._data[t*De+0]=i}insertCells(t,r,o){if(t%=this.length,t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,o),r<this.length-t){let i=new Ds;for(let s=this.length-t-r-1;s>=0;--s)this.setCell(t+r+s,this.loadCell(t+s,i));for(let s=0;s<r;++s)this.setCell(t+s,o)}else for(let i=t;i<this.length;++i)this.setCell(i,o);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,o)}deleteCells(t,r,o){if(t%=this.length,r<this.length-t){let i=new Ds;for(let s=0;s<this.length-t-r;++s)this.setCell(t+s,this.loadCell(t+r+s,i));for(let s=this.length-r;s<this.length;++s)this.setCell(s,o)}else for(let i=t;i<this.length;++i)this.setCell(i,o);t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,o),this.getWidth(t)===0&&!this.hasContent(t)&&this.setCellFromCodepoint(t,0,1,o)}replaceCells(t,r,o,i=!1){if(i){for(t&&this.getWidth(t-1)===2&&!this.isProtected(t-1)&&this.setCellFromCodepoint(t-1,0,1,o),r<this.length&&this.getWidth(r-1)===2&&!this.isProtected(r)&&this.setCellFromCodepoint(r,0,1,o);t<r&&t<this.length;)this.isProtected(t)||this.setCell(t,o),t++;return}for(t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,o),r<this.length&&this.getWidth(r-1)===2&&this.setCellFromCodepoint(r,0,1,o);t<r&&t<this.length;)this.setCell(t++,o)}resize(t,r){if(t===this.length)return this._data.length*4*Q2<this._data.buffer.byteLength;let o=t*De;if(t>this.length){if(this._data.buffer.byteLength>=o*4)this._data=new Uint32Array(this._data.buffer,0,o);else{let i=new Uint32Array(o);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,o);let i=Object.keys(this._combined);for(let n=0;n<i.length;n++){let a=parseInt(i[n],10);a>=t&&delete this._combined[a]}let s=Object.keys(this._extendedAttrs);for(let n=0;n<s.length;n++){let a=parseInt(s[n],10);a>=t&&delete this._extendedAttrs[a]}}return this.length=t,o*4*Q2<this._data.buffer.byteLength}cleanupMemory(){if(this._data.length*4*Q2<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 o=0;o<this.length;++o)this.isProtected(o)||this.setCell(o,t);return}this._combined={},this._extendedAttrs={};for(let o=0;o<this.length;++o)this.setCell(o,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 K9(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*De+0]&4194303)return t+(this._data[t*De+0]>>22);return 0}getNoBgTrimmedLength(){for(let t=this.length-1;t>=0;--t)if(this._data[t*De+0]&4194303||this._data[t*De+2]&50331648)return t+(this._data[t*De+0]>>22);return 0}copyCellsFrom(t,r,o,i,s){let n=t._data;if(s)for(let l=i-1;l>=0;l--){for(let c=0;c<De;c++)this._data[(o+l)*De+c]=n[(r+l)*De+c];n[(r+l)*De+2]&268435456&&(this._extendedAttrs[o+l]=t._extendedAttrs[r+l])}else for(let l=0;l<i;l++){for(let c=0;c<De;c++)this._data[(o+l)*De+c]=n[(r+l)*De+c];n[(r+l)*De+2]&268435456&&(this._extendedAttrs[o+l]=t._extendedAttrs[r+l])}let a=Object.keys(t._combined);for(let l=0;l<a.length;l++){let c=parseInt(a[l],10);c>=r&&(this._combined[c-r+o]=t._combined[c])}}translateToString(t,r,o,i){r=r??0,o=o??this.length,t&&(o=Math.min(o,this.getTrimmedLength())),i&&(i.length=0);let s="";for(;r<o;){let n=this._data[r*De+0],a=n&2097151,l=n&2097152?this._combined[r]:a?$c(a):Uc;if(s+=l,i)for(let c=0;c<l.length;++c)i.push(r);r+=n>>22||1}return i&&i.push(r),s}};function mhe(e,t,r,o,i,s){let n=[];for(let a=0;a<e.length-1;a++){let l=a,c=e.get(++l);if(!c.isWrapped)continue;let u=[e.get(a)];for(;l<e.length&&c.isWrapped;)u.push(c),c=e.get(++l);if(!s&&o>=a&&o<l){a+=u.length-1;continue}let p=0,f=vv(u,p,t),d=1,h=0;for(;d<u.length;){let S=vv(u,d,t),y=S-h,v=r-f,b=Math.min(y,v);u[p].copyCellsFrom(u[d],h,f,b,!1),f+=b,f===r&&(p++,f=0),h+=b,h===S&&(d++,h=0),f===0&&p!==0&&u[p-1].getWidth(r-1)===2&&(u[p].copyCellsFrom(u[p-1],r-1,f++,1,!1),u[p-1].setCell(r-1,i))}u[p].replaceCells(f,r,i);let g=0;for(let S=u.length-1;S>0&&(S>p||u[S].getTrimmedLength()===0);S--)g++;g>0&&(n.push(a+u.length-g),n.push(g)),a+=u.length-1}return n}function ghe(e,t){let r=[],o=0,i=t[o],s=0;for(let n=0;n<e.length;n++)if(i===n){let a=t[++o];e.onDeleteEmitter.fire({index:n-s,amount:a}),n+=a-1,s+=a,i=t[++o]}else r.push(n);return{layout:r,countRemoved:s}}function yhe(e,t){let r=[];for(let o=0;o<t.length;o++)r.push(e.get(t[o]));for(let o=0;o<r.length;o++)e.set(o,r[o]);e.length=t.length}function vhe(e,t,r){let o=[],i=e.map((l,c)=>vv(e,c,t)).reduce((l,c)=>l+c),s=0,n=0,a=0;for(;a<i;){if(i-a<r){o.push(i-a);break}s+=r;let l=vv(e,n,t);s>l&&(s-=l,n++);let c=e[n].getWidth(s-1)===2;c&&s--;let u=c?r-1:r;o.push(u),a+=u}return o}function vv(e,t,r){if(t===e.length-1)return e[t].getTrimmedLength();let o=!e[t].hasContent(r-1)&&e[t].getWidth(r-1)===1,i=e[t+1].getWidth(0)===2;return o&&i?r-1:r}var Y9=class X9{constructor(t){this.line=t,this.isDisposed=!1,this._disposables=[],this._id=X9._nextId++,this._onDispose=this.register(new ne),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),Fp(this._disposables),this._disposables.length=0)}register(t){return this._disposables.push(t),t}};Y9._nextId=1;var bhe=Y9,zr={},Ip=zr.B;zr[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"};zr.A={"#":"\xA3"};zr.B=void 0;zr[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"};zr.C=zr[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"};zr.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"};zr.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"};zr.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"};zr.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"};zr.E=zr[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"};zr.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"};zr.H=zr[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"};zr["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"};var BH=4294967295,IH=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=Pr.clone(),this.savedCharset=Ip,this.markers=[],this._nullCell=Ds.fromCharData([0,i9,1,0]),this._whitespaceCell=Ds.fromCharData([0,Uc,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new ST,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new DH(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 hT),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 hT),this._whitespaceCell}getBlankLine(e,t){return new uv(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>BH?BH:t}fillViewportRows(e){if(this.lines.length===0){e===void 0&&(e=Pr);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 DH(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){let r=this.getNullCell(Pr),o=0,i=this._getCorrectBufferLength(t);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._cols<e)for(let n=0;n<this.lines.length;n++)o+=+this.lines.get(n).resize(e,r);let s=0;if(this._rows<t)for(let n=this._rows;n<t;n++)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 uv(e,r)):this.ybase>0&&this.lines.length<=this.ybase+this.y+s+1?(this.ybase--,s++,this.ydisp>0&&this.ydisp--):this.lines.push(new uv(e,r)));else for(let n=this._rows;n>t;n--)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 n=this.lines.length-i;n>0&&(this.lines.trimStart(n),this.ybase=Math.max(this.ybase-n,0),this.ydisp=Math.max(this.ydisp-n,0),this.savedY=Math.max(this.savedY-n,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),s&&(this.y+=s),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 s=0;s<this.lines.length;s++)o+=+this.lines.get(s).resize(e,r);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),o>.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,o=mhe(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(Pr),r);if(o.length>0){let i=ghe(this.lines,o);yhe(this.lines,i.layout),this._reflowLargerAdjustViewport(e,t,i.countRemoved)}}_reflowLargerAdjustViewport(e,t,r){let o=this.getNullCell(Pr),i=r;for(;i-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new uv(e,o))):(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,o=this.getNullCell(Pr),i=[],s=0;for(let n=this.lines.length-1;n>=0;n--){let a=this.lines.get(n);if(!a||!a.isWrapped&&a.getTrimmedLength()<=e)continue;let l=[a];for(;a.isWrapped&&n>0;)a=this.lines.get(--n),l.unshift(a);if(!r){let b=this.ybase+this.y;if(b>=n&&b<n+l.length)continue}let c=l[l.length-1].getTrimmedLength(),u=vhe(l,this._cols,e),p=u.length-l.length,f;this.ybase===0&&this.y!==this.lines.length-1?f=Math.max(0,this.y-this.lines.maxLength+p):f=Math.max(0,this.lines.length-this.lines.maxLength+p);let d=[];for(let b=0;b<p;b++){let _=this.getBlankLine(Pr,!0);d.push(_)}d.length>0&&(i.push({start:n+l.length+s,newLines:d}),s+=d.length),l.push(...d);let h=u.length-1,g=u[h];g===0&&(h--,g=u[h]);let S=l.length-p-1,y=c;for(;S>=0;){let b=Math.min(y,g);if(l[h]===void 0)break;if(l[h].copyCellsFrom(l[S],y-b,g-b,b,!0),g-=b,g===0&&(h--,g=u[h]),y-=b,y===0){S--;let _=Math.max(S,0);y=vv(l,_,this._cols)}}for(let b=0;b<l.length;b++)u[b]<e&&l[b].setCell(u[b],o);let v=p-f;for(;v-- >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+s)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+p,this.ybase+t-1)}if(i.length>0){let n=[],a=[];for(let g=0;g<this.lines.length;g++)a.push(this.lines.get(g));let l=this.lines.length,c=l-1,u=0,p=i[u];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+s);let f=0;for(let g=Math.min(this.lines.maxLength-1,l+s-1);g>=0;g--)if(p&&p.start>c+f){for(let S=p.newLines.length-1;S>=0;S--)this.lines.set(g--,p.newLines[S]);g++,n.push({index:c+1,amount:p.newLines.length}),f+=p.newLines.length,p=i[++u]}else this.lines.set(g,a[c--]);let d=0;for(let g=n.length-1;g>=0;g--)n[g].index+=d,this.lines.onInsertEmitter.fire(n[g]),d+=n[g].amount;let h=Math.max(0,l+s-this.lines.maxLength);h>0&&this.lines.onTrimEmitter.fire(h)}}translateBufferLineToString(e,t,r=0,o){let i=this.lines.get(e);return i?i.translateToString(t,r,o):""}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 bhe(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)}},_he=class extends ke{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this._register(new ne),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 IH(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new IH(!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)}},Z9=2,Q9=1,Bk=class extends ke{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new ne),this.onResize=this._onResize.event,this._onScroll=this._register(new ne),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,Z9),this.rows=Math.max(e.rawOptions.rows||0,Q9),this.buffers=this._register(new _he(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,o=this.rows!==t;this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t,colsChanged:r,rowsChanged:o})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){let r=this.buffer,o;o=this._cachedBlankLine,(!o||o.length!==this.cols||o.getFg(0)!==e.fg||o.getBg(0)!==e.bg)&&(o=r.getBlankLine(e,t),this._cachedBlankLine=o),o.isWrapped=t;let i=r.ybase+r.scrollTop,s=r.ybase+r.scrollBottom;if(r.scrollTop===0){let n=r.lines.isFull;s===r.lines.length-1?n?r.lines.recycle().copyFrom(o):r.lines.push(o.clone()):r.lines.splice(s+1,0,o.clone()),n?this.isUserScrolling&&(r.ydisp=Math.max(r.ydisp-1,0)):(r.ybase++,this.isUserScrolling||r.ydisp++)}else{let n=s-i+1;r.lines.shiftElements(i+1,n-1,-1),r.lines.set(s,o.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 o=r.ydisp;r.ydisp=Math.max(Math.min(r.ydisp+e,r.ybase),0),o!==r.ydisp&&(t||this._onScroll.fire(r.ydisp))}};Bk=ar([de(0,Jo)],Bk);var Lh={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:_T,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRuler:{}},She=["normal","bold","100","200","300","400","500","600","700","800","900"],xhe=class extends ke{constructor(e){super(),this._onOptionChange=this._register(new ne),this.onOptionChange=this._onOptionChange.event;let t={...Lh};for(let r in e)if(r in t)try{let o=e[r];t[r]=this._sanitizeAndValidateOption(r,o)}catch(o){console.error(o)}this.rawOptions=t,this.options={...t},this._setupOptions(),this._register(Ft(()=>{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 Lh))throw new Error(`No option with key "${r}"`);return this.rawOptions[r]},t=(r,o)=>{if(!(r in Lh))throw new Error(`No option with key "${r}"`);o=this._sanitizeAndValidateOption(r,o),this.rawOptions[r]!==o&&(this.rawOptions[r]=o,this._onOptionChange.fire(r))};for(let r in this.rawOptions){let o={get:e.bind(this,r),set:t.bind(this,r)};Object.defineProperty(this.options,r,o)}}_sanitizeAndValidateOption(e,t){switch(e){case"cursorStyle":if(t||(t=Lh[e]),!The(t))throw new Error(`"${t}" is not a valid value for ${e}`);break;case"wordSeparator":t||(t=Lh[e]);break;case"fontWeight":case"fontWeightBold":if(typeof t=="number"&&1<=t&&t<=1e3)break;t=She.includes(t)?t:Lh[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 The(e){return e==="block"||e==="underline"||e==="bar"}function pv(e,t=5){if(typeof e!="object")return e;let r=Array.isArray(e)?[]:{};for(let o in e)r[o]=t<=1?e[o]:e[o]&&pv(e[o],t-1);return r}var NH=Object.freeze({insertMode:!1}),zH=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),Ik=class extends ke{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 ne),this.onData=this._onData.event,this._onUserInput=this._register(new ne),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new ne),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new ne),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=pv(NH),this.decPrivateModes=pv(zH)}reset(){this.modes=pv(NH),this.decPrivateModes=pv(zH)}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(o=>o.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))}};Ik=ar([de(0,Qo),de(1,c9),de(2,Jo)],Ik);var FH={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 J2(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 ek=String.fromCharCode,$H={DEFAULT:e=>{let t=[J2(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`\x1B[M${ek(t[0])}${ek(t[1])}${ek(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?"m":"M";return`\x1B[<${J2(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?"m":"M";return`\x1B[<${J2(e,!0)};${e.x};${e.y}${t}`}},Nk=class extends ke{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 ne),this.onProtocolChange=this._onProtocolChange.event;for(let o of Object.keys(FH))this.addProtocol(o,FH[o]);for(let o of Object.keys($H))this.addEncoding(o,$H[o]);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 o=t/r,i=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(i/=o+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)}};Nk=ar([de(0,Qo),de(1,Up),de(2,Jo)],Nk);var tk=[[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]],whe=[[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]],Nr;function Che(e,t){let r=0,o=t.length-1,i;if(e<t[0][0]||e>t[o][1])return!1;for(;o>=r;)if(i=r+o>>1,e>t[i][1])r=i+1;else if(e<t[i][0])o=i-1;else return!0;return!1}var Phe=class{constructor(){if(this.version="6",!Nr){Nr=new Uint8Array(65536),Nr.fill(1),Nr[0]=0,Nr.fill(0,1,32),Nr.fill(0,127,160),Nr.fill(2,4352,4448),Nr[9001]=2,Nr[9002]=2,Nr.fill(2,11904,42192),Nr[12351]=1,Nr.fill(2,44032,55204),Nr.fill(2,63744,64256),Nr.fill(2,65040,65050),Nr.fill(2,65072,65136),Nr.fill(2,65280,65377),Nr.fill(2,65504,65511);for(let e=0;e<tk.length;++e)Nr.fill(0,tk[e][0],tk[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?Nr[e]:Che(e,whe)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let r=this.wcwidth(e),o=r===0&&t!==0;if(o){let i=Np.extractWidth(t);i===0?o=!1:i>r&&(r=i)}return Np.createPropertyValue(0,r,o)}},Np=class fT{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new ne,this.onChange=this._onChange.event;let t=new Phe;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,o=!1){return(t&16777215)<<3|(r&3)<<1|(o?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,o=0,i=t.length;for(let s=0;s<i;++s){let n=t.charCodeAt(s);if(55296<=n&&n<=56319){if(++s>=i)return r+this.wcwidth(n);let c=t.charCodeAt(s);56320<=c&&c<=57343?n=(n-55296)*1024+c-56320+65536:r+=this.wcwidth(c)}let a=this.charProperties(n,o),l=fT.extractWidth(a);fT.extractShouldJoin(a)&&(l-=fT.extractWidth(o)),r+=l,o=a}return r}charProperties(t,r){return this._activeProvider.charProperties(t,r)}},Rhe=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 UH(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 iv=2147483647,Ehe=256,J9=class zk{constructor(t=32,r=32){if(this.maxLength=t,this.maxSubParamsLength=r,r>Ehe)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 zk;if(!t.length)return r;for(let o=Array.isArray(t[0])?1:0;o<t.length;++o){let i=t[o];if(Array.isArray(i))for(let s=0;s<i.length;++s)r.addSubParam(i[s]);else r.addParam(i)}return r}clone(){let t=new zk(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 o=this._subParamsIdx[r]>>8,i=this._subParamsIdx[r]&255;i-o>0&&t.push(Array.prototype.slice.call(this._subParams,o,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>iv?iv: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>iv?iv: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,o=this._subParamsIdx[t]&255;return o-r>0?this._subParams.subarray(r,o):null}getSubParamsAll(){let t={};for(let r=0;r<this.length;++r){let o=this._subParamsIdx[r]>>8,i=this._subParamsIdx[r]&255;i-o>0&&(t[r]=this._subParams.slice(o,i))}return t}addDigit(t){let r;if(this._rejectDigits||!(r=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let o=this._digitIsSub?this._subParams:this.params,i=o[r-1];o[r-1]=~i?Math.min(i*10+t,iv):t}},sv=[],khe=class{constructor(){this._state=0,this._active=sv,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 o=r.indexOf(t);o!==-1&&r.splice(o,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=sv}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=sv,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||sv,!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",TT(e,t,r));else for(let o=this._active.length-1;o>=0;o--)this._active[o].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 o=e[t++];if(o===59){this._state=2,this._start();break}if(o<48||57<o){this._state=3;return}this._id===-1&&(this._id=0),this._id=this._id*10+o-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,o=this._active.length-1,i=!1;if(this._stack.paused&&(o=this._stack.loopPosition-1,r=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&r===!1){for(;o>=0&&(r=this._active[o].end(e),r!==!0);o--)if(r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=o,this._stack.fallThrough=!1,r;o--}for(;o>=0;o--)if(r=this._active[o].end(!1),r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=o,this._stack.fallThrough=!0,r}this._active=sv,this._id=-1,this._state=0}}},Gi=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+=TT(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}},nv=[],Mhe=class{constructor(){this._handlers=Object.create(null),this._active=nv,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=nv}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let r=this._handlers[e];return r.push(t),{dispose:()=>{let o=r.indexOf(t);o!==-1&&r.splice(o,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=nv,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||nv,!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",TT(e,t,r));else for(let o=this._active.length-1;o>=0;o--)this._active[o].put(e,t,r)}unhook(e,t=!0){if(!this._active.length)this._handlerFb(this._ident,"UNHOOK",e);else{let r=!1,o=this._active.length-1,i=!1;if(this._stack.paused&&(o=this._stack.loopPosition-1,r=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&r===!1){for(;o>=0&&(r=this._active[o].unhook(e),r!==!0);o--)if(r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=o,this._stack.fallThrough=!1,r;o--}for(;o>=0;o--)if(r=this._active[o].unhook(!1),r instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=o,this._stack.fallThrough=!0,r}this._active=nv,this._ident=0}},dv=new J9;dv.addParam(0);var HH=class{constructor(e){this._handler=e,this._data="",this._params=dv,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():dv,this._data="",this._hitLimit=!1}put(e,t,r){this._hitLimit||(this._data+=TT(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=dv,this._data="",this._hitLimit=!1,r));return this._params=dv,this._data="",this._hitLimit=!1,t}},Ahe=class{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,r,o){this.table[t<<8|e]=r<<4|o}addMany(e,t,r,o){for(let i=0;i<e.length;i++)this.table[t<<8|e[i]]=r<<4|o}},Os=160,Lhe=(function(){let e=new Ahe(4095),t=Array.apply(null,Array(256)).map((a,l)=>l),r=(a,l)=>t.slice(a,l),o=r(32,127),i=r(0,24);i.push(25),i.push.apply(i,r(28,32));let s=r(0,14),n;e.setDefault(1,0),e.addMany(o,0,2,0);for(n in s)e.addMany([24,26,153,154],n,3,0),e.addMany(r(128,144),n,3,0),e.addMany(r(144,152),n,3,0),e.add(156,n,0,0),e.add(27,n,11,1),e.add(157,n,4,8),e.addMany([152,158,159],n,0,7),e.add(155,n,11,3),e.add(144,n,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(o,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(o,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(o,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(Os,0,2,0),e.add(Os,8,5,8),e.add(Os,6,0,6),e.add(Os,11,0,11),e.add(Os,13,13,13),e})(),Ohe=class extends ke{constructor(e=Lhe){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 J9,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(t,r,o)=>{},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(Ft(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new khe),this._dcsParser=this._register(new Mhe),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 s=e.intermediates.charCodeAt(i);if(32>s||s>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");r<<=8,r|=s}}if(e.final.length!==1)throw new Error("final must be a single byte");let o=e.final.charCodeAt(0);if(t[0]>o||o>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return r<<=8,r|=o,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 o=this._escHandlers[r];return o.push(t),{dispose:()=>{let i=o.indexOf(t);i!==-1&&o.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 o=this._csiHandlers[r];return o.push(t),{dispose:()=>{let i=o.indexOf(t);i!==-1&&o.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,o,i){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=r,this._parseStack.transition=o,this._parseStack.chunkPos=i}parse(e,t,r){let o=0,i=0,s=0,n;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,s=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 a=this._parseStack.handlers,l=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(r===!1&&l>-1){for(;l>=0&&(n=a[l](this._params),n!==!0);l--)if(n instanceof Promise)return this._parseStack.handlerPos=l,n}this._parseStack.handlers=[];break;case 4:if(r===!1&&l>-1){for(;l>=0&&(n=a[l](),n!==!0);l--)if(n instanceof Promise)return this._parseStack.handlerPos=l,n}this._parseStack.handlers=[];break;case 6:if(o=e[this._parseStack.chunkPos],n=this._dcsParser.unhook(o!==24&&o!==26,r),n)return n;o===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(o=e[this._parseStack.chunkPos],n=this._oscParser.end(o!==24&&o!==26,r),n)return n;o===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break}this._parseStack.state=0,s=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=this._parseStack.transition&15}for(let a=s;a<t;++a){switch(o=e[a],i=this._transitions.table[this.currentState<<8|(o<160?o:Os)],i>>4){case 2:for(let f=a+1;;++f){if(f>=t||(o=e[f])<32||o>126&&o<Os){this._printHandler(e,a,f),a=f-1;break}if(++f>=t||(o=e[f])<32||o>126&&o<Os){this._printHandler(e,a,f),a=f-1;break}if(++f>=t||(o=e[f])<32||o>126&&o<Os){this._printHandler(e,a,f),a=f-1;break}if(++f>=t||(o=e[f])<32||o>126&&o<Os){this._printHandler(e,a,f),a=f-1;break}}break;case 3:this._executeHandlers[o]?this._executeHandlers[o]():this._executeHandlerFb(o),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:a,code:o,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let l=this._csiHandlers[this._collect<<8|o],c=l?l.length-1:-1;for(;c>=0&&(n=l[c](this._params),n!==!0);c--)if(n instanceof Promise)return this._preserveStack(3,l,c,i,a),n;c<0&&this._csiHandlerFb(this._collect<<8|o,this._params),this.precedingJoinState=0;break;case 8:do switch(o){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(o-48)}while(++a<t&&(o=e[a])>47&&o<60);a--;break;case 9:this._collect<<=8,this._collect|=o;break;case 10:let u=this._escHandlers[this._collect<<8|o],p=u?u.length-1:-1;for(;p>=0&&(n=u[p](),n!==!0);p--)if(n instanceof Promise)return this._preserveStack(4,u,p,i,a),n;p<0&&this._escHandlerFb(this._collect<<8|o),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|o,this._params);break;case 13:for(let f=a+1;;++f)if(f>=t||(o=e[f])===24||o===26||o===27||o>127&&o<Os){this._dcsParser.put(e,a,f),a=f-1;break}break;case 14:if(n=this._dcsParser.unhook(o!==24&&o!==26),n)return this._preserveStack(6,[],0,i,a),n;o===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=a+1;;f++)if(f>=t||(o=e[f])<32||o>127&&o<Os){this._oscParser.put(e,a,f),a=f-1;break}break;case 6:if(n=this._oscParser.end(o!==24&&o!==26),n)return this._preserveStack(5,[],0,i,a),n;o===27&&(i|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break}this.currentState=i&15}}},Dhe=/^([\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})$/,Bhe=/^[\da-f]+$/;function jH(e){if(!e)return;let t=e.toLowerCase();if(t.indexOf("rgb:")===0){t=t.slice(4);let r=Dhe.exec(t);if(r){let o=r[1]?15:r[4]?255:r[7]?4095:65535;return[Math.round(parseInt(r[1]||r[4]||r[7]||r[10],16)/o*255),Math.round(parseInt(r[2]||r[5]||r[8]||r[11],16)/o*255),Math.round(parseInt(r[3]||r[6]||r[9]||r[12],16)/o*255)]}}else if(t.indexOf("#")===0&&(t=t.slice(1),Bhe.exec(t)&&[3,6,9,12].includes(t.length))){let r=t.length/3,o=[0,0,0];for(let i=0;i<3;++i){let s=parseInt(t.slice(r*i,r*i+r),16);o[i]=r===1?s<<4:r===2?s:r===3?s>>4:s>>8}return o}}function rk(e,t){let r=e.toString(16),o=r.length<2?"0"+r:r;switch(t){case 4:return r[0];case 8:return o;case 12:return(o+o).slice(0,3);default:return o+o}}function Ihe(e,t=16){let[r,o,i]=e;return`rgb:${rk(r,t)}/${rk(o,t)}/${rk(i,t)}`}var Nhe={"(":0,")":1,"*":2,"+":3,"-":1,".":2},Fc=131072,WH=10;function VH(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 qH=5e3,GH=0,zhe=class extends ke{constructor(e,t,r,o,i,s,n,a,l=new Ohe){super(),this._bufferService=e,this._charsetService=t,this._coreService=r,this._logService=o,this._optionsService=i,this._oscLinkService=s,this._coreMouseService=n,this._unicodeService=a,this._parser=l,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new kpe,this._utf8Decoder=new Mpe,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=Pr.clone(),this._eraseAttrDataInternal=Pr.clone(),this._onRequestBell=this._register(new ne),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new ne),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new ne),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new ne),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new ne),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new ne),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new ne),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new ne),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new ne),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new ne),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new ne),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new ne),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new ne),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 Fk(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(c=>this._activeBuffer=c.activeBuffer)),this._parser.setCsiHandlerFallback((c,u)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(c),params:u.toArray()})}),this._parser.setEscHandlerFallback(c=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(c)})}),this._parser.setExecuteHandlerFallback(c=>{this._logService.debug("Unknown EXECUTE code: ",{code:c})}),this._parser.setOscHandlerFallback((c,u,p)=>{this._logService.debug("Unknown OSC code: ",{identifier:c,action:u,data:p})}),this._parser.setDcsHandlerFallback((c,u,p)=>{u==="HOOK"&&(p=p.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(c),action:u,payload:p})}),this._parser.setPrintHandler((c,u,p)=>this.print(c,u,p)),this._parser.registerCsiHandler({final:"@"},c=>this.insertChars(c)),this._parser.registerCsiHandler({intermediates:" ",final:"@"},c=>this.scrollLeft(c)),this._parser.registerCsiHandler({final:"A"},c=>this.cursorUp(c)),this._parser.registerCsiHandler({intermediates:" ",final:"A"},c=>this.scrollRight(c)),this._parser.registerCsiHandler({final:"B"},c=>this.cursorDown(c)),this._parser.registerCsiHandler({final:"C"},c=>this.cursorForward(c)),this._parser.registerCsiHandler({final:"D"},c=>this.cursorBackward(c)),this._parser.registerCsiHandler({final:"E"},c=>this.cursorNextLine(c)),this._parser.registerCsiHandler({final:"F"},c=>this.cursorPrecedingLine(c)),this._parser.registerCsiHandler({final:"G"},c=>this.cursorCharAbsolute(c)),this._parser.registerCsiHandler({final:"H"},c=>this.cursorPosition(c)),this._parser.registerCsiHandler({final:"I"},c=>this.cursorForwardTab(c)),this._parser.registerCsiHandler({final:"J"},c=>this.eraseInDisplay(c,!1)),this._parser.registerCsiHandler({prefix:"?",final:"J"},c=>this.eraseInDisplay(c,!0)),this._parser.registerCsiHandler({final:"K"},c=>this.eraseInLine(c,!1)),this._parser.registerCsiHandler({prefix:"?",final:"K"},c=>this.eraseInLine(c,!0)),this._parser.registerCsiHandler({final:"L"},c=>this.insertLines(c)),this._parser.registerCsiHandler({final:"M"},c=>this.deleteLines(c)),this._parser.registerCsiHandler({final:"P"},c=>this.deleteChars(c)),this._parser.registerCsiHandler({final:"S"},c=>this.scrollUp(c)),this._parser.registerCsiHandler({final:"T"},c=>this.scrollDown(c)),this._parser.registerCsiHandler({final:"X"},c=>this.eraseChars(c)),this._parser.registerCsiHandler({final:"Z"},c=>this.cursorBackwardTab(c)),this._parser.registerCsiHandler({final:"`"},c=>this.charPosAbsolute(c)),this._parser.registerCsiHandler({final:"a"},c=>this.hPositionRelative(c)),this._parser.registerCsiHandler({final:"b"},c=>this.repeatPrecedingCharacter(c)),this._parser.registerCsiHandler({final:"c"},c=>this.sendDeviceAttributesPrimary(c)),this._parser.registerCsiHandler({prefix:">",final:"c"},c=>this.sendDeviceAttributesSecondary(c)),this._parser.registerCsiHandler({final:"d"},c=>this.linePosAbsolute(c)),this._parser.registerCsiHandler({final:"e"},c=>this.vPositionRelative(c)),this._parser.registerCsiHandler({final:"f"},c=>this.hVPosition(c)),this._parser.registerCsiHandler({final:"g"},c=>this.tabClear(c)),this._parser.registerCsiHandler({final:"h"},c=>this.setMode(c)),this._parser.registerCsiHandler({prefix:"?",final:"h"},c=>this.setModePrivate(c)),this._parser.registerCsiHandler({final:"l"},c=>this.resetMode(c)),this._parser.registerCsiHandler({prefix:"?",final:"l"},c=>this.resetModePrivate(c)),this._parser.registerCsiHandler({final:"m"},c=>this.charAttributes(c)),this._parser.registerCsiHandler({final:"n"},c=>this.deviceStatus(c)),this._parser.registerCsiHandler({prefix:"?",final:"n"},c=>this.deviceStatusPrivate(c)),this._parser.registerCsiHandler({intermediates:"!",final:"p"},c=>this.softReset(c)),this._parser.registerCsiHandler({intermediates:" ",final:"q"},c=>this.setCursorStyle(c)),this._parser.registerCsiHandler({final:"r"},c=>this.setScrollRegion(c)),this._parser.registerCsiHandler({final:"s"},c=>this.saveCursor(c)),this._parser.registerCsiHandler({final:"t"},c=>this.windowOptions(c)),this._parser.registerCsiHandler({final:"u"},c=>this.restoreCursor(c)),this._parser.registerCsiHandler({intermediates:"'",final:"}"},c=>this.insertColumns(c)),this._parser.registerCsiHandler({intermediates:"'",final:"~"},c=>this.deleteColumns(c)),this._parser.registerCsiHandler({intermediates:'"',final:"q"},c=>this.selectProtected(c)),this._parser.registerCsiHandler({intermediates:"$",final:"p"},c=>this.requestMode(c,!0)),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},c=>this.requestMode(c,!1)),this._parser.setExecuteHandler(Z.BEL,()=>this.bell()),this._parser.setExecuteHandler(Z.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(Z.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(Z.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(Z.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(Z.BS,()=>this.backspace()),this._parser.setExecuteHandler(Z.HT,()=>this.tab()),this._parser.setExecuteHandler(Z.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(Z.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(pT.IND,()=>this.index()),this._parser.setExecuteHandler(pT.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(pT.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new Gi(c=>(this.setTitle(c),this.setIconName(c),!0))),this._parser.registerOscHandler(1,new Gi(c=>this.setIconName(c))),this._parser.registerOscHandler(2,new Gi(c=>this.setTitle(c))),this._parser.registerOscHandler(4,new Gi(c=>this.setOrReportIndexedColor(c))),this._parser.registerOscHandler(8,new Gi(c=>this.setHyperlink(c))),this._parser.registerOscHandler(10,new Gi(c=>this.setOrReportFgColor(c))),this._parser.registerOscHandler(11,new Gi(c=>this.setOrReportBgColor(c))),this._parser.registerOscHandler(12,new Gi(c=>this.setOrReportCursorColor(c))),this._parser.registerOscHandler(104,new Gi(c=>this.restoreIndexedColor(c))),this._parser.registerOscHandler(110,new Gi(c=>this.restoreFgColor(c))),this._parser.registerOscHandler(111,new Gi(c=>this.restoreBgColor(c))),this._parser.registerOscHandler(112,new Gi(c=>this.restoreCursorColor(c))),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 c in zr)this._parser.registerEscHandler({intermediates:"(",final:c},()=>this.selectCharset("("+c)),this._parser.registerEscHandler({intermediates:")",final:c},()=>this.selectCharset(")"+c)),this._parser.registerEscHandler({intermediates:"*",final:c},()=>this.selectCharset("*"+c)),this._parser.registerEscHandler({intermediates:"+",final:c},()=>this.selectCharset("+"+c)),this._parser.registerEscHandler({intermediates:"-",final:c},()=>this.selectCharset("-"+c)),this._parser.registerEscHandler({intermediates:".",final:c},()=>this.selectCharset("."+c)),this._parser.registerEscHandler({intermediates:"/",final:c},()=>this.selectCharset("/"+c));this._parser.registerEscHandler({intermediates:"#",final:"8"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(c=>(this._logService.error("Parsing error: ",c),c)),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new HH((c,u)=>this.requestStatusString(c,u)))}getAttrData(){return this._curAttrData}_preserveStack(e,t,r,o){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=r,this._parseStack.position=o}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((t,r)=>setTimeout(()=>r("#SLOW_TIMEOUT"),qH))]).catch(t=>{if(t!=="#SLOW_TIMEOUT")throw t;console.warn(`async parser handler taking longer than ${qH} ms`)})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let r,o=this._activeBuffer.x,i=this._activeBuffer.y,s=0,n=this._parseStack.paused;if(n){if(r=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(r),r;o=this._parseStack.cursorStartX,i=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>Fc&&(s=this._parseStack.position+Fc)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${typeof e=="string"?` "${e}"`:` "${Array.prototype.map.call(e,c=>String.fromCharCode(c)).join("")}"`}`),this._logService.logLevel===0&&this._logService.trace("parsing data (codes)",typeof e=="string"?e.split("").map(c=>c.charCodeAt(0)):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<Fc&&(this._parseBuffer=new Uint32Array(Math.min(e.length,Fc))),n||this._dirtyRowTracker.clearRange(),e.length>Fc)for(let c=s;c<e.length;c+=Fc){let u=c+Fc<e.length?c+Fc:e.length,p=typeof e=="string"?this._stringDecoder.decode(e.substring(c,u),this._parseBuffer):this._utf8Decoder.decode(e.subarray(c,u),this._parseBuffer);if(r=this._parser.parse(this._parseBuffer,p))return this._preserveStack(o,i,p,c),this._logSlowResolvingAsync(r),r}else if(!n){let c=typeof e=="string"?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(r=this._parser.parse(this._parseBuffer,c))return this._preserveStack(o,i,c,0),this._logSlowResolvingAsync(r),r}(this._activeBuffer.x!==o||this._activeBuffer.y!==i)&&this._onCursorMove.fire();let a=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(a,this._bufferService.rows-1)})}print(e,t,r){let o,i,s=this._charsetService.charset,n=this._optionsService.rawOptions.screenReaderMode,a=this._bufferService.cols,l=this._coreService.decPrivateModes.wraparound,c=this._coreService.modes.insertMode,u=this._curAttrData,p=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&r-t>0&&p.getWidth(this._activeBuffer.x-1)===2&&p.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let f=this._parser.precedingJoinState;for(let d=t;d<r;++d){if(o=e[d],o<127&&s){let y=s[String.fromCharCode(o)];y&&(o=y.charCodeAt(0))}let h=this._unicodeService.charProperties(o,f);i=Np.extractWidth(h);let g=Np.extractShouldJoin(h),S=g?Np.extractWidth(f):0;if(f=h,n&&this._onA11yChar.fire($c(o)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+i-S>a){if(l){let y=p,v=this._activeBuffer.x-S;for(this._activeBuffer.x=S,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),p=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),S>0&&p instanceof uv&&p.copyCellsFrom(y,v,0,S,!1);v<a;)y.setCellFromCodepoint(v++,0,1,u)}else if(this._activeBuffer.x=a-1,i===2)continue}if(g&&this._activeBuffer.x){let y=p.getWidth(this._activeBuffer.x-1)?1:2;p.addCodepointToCell(this._activeBuffer.x-y,o,i);for(let v=i-S;--v>=0;)p.setCellFromCodepoint(this._activeBuffer.x++,0,0,u);continue}if(c&&(p.insertCells(this._activeBuffer.x,i-S,this._activeBuffer.getNullCell(u)),p.getWidth(a-1)===2&&p.setCellFromCodepoint(a-1,0,1,u)),p.setCellFromCodepoint(this._activeBuffer.x++,o,i,u),i>0)for(;--i;)p.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=f,this._activeBuffer.x<a&&r-t>0&&p.getWidth(this._activeBuffer.x)===0&&!p.hasContent(this._activeBuffer.x)&&p.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return e.final==="t"&&!e.prefix&&!e.intermediates?this._parser.registerCsiHandler(e,r=>VH(r.params[0],this._optionsService.rawOptions.windowOptions)?t(r):!0):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new HH(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new Gi(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,o=!1,i=!1){let s=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);s.replaceCells(t,r,this._activeBuffer.getNullCell(this._eraseAttrData()),i),o&&(s.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 o=this._activeBuffer.lines.length-this._bufferService.rows;o>0&&(this._activeBuffer.lines.trimStart(o),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-o,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-o,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,o=this._bufferService.rows-1-this._activeBuffer.scrollBottom,i=this._bufferService.rows-1+this._activeBuffer.ybase-o+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,o;for(o=this._bufferService.rows-1-this._activeBuffer.scrollBottom,o=this._bufferService.rows-1+this._activeBuffer.ybase-o;t--;)this._activeBuffer.lines.splice(r,1),this._activeBuffer.lines.splice(o,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(Pr));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 o=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);o.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),o.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 o=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);o.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),o.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 o=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);o.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),o.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 o=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);o.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),o.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,o=Np.extractWidth(t),i=this._activeBuffer.x-o,s=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(i),n=new Uint32Array(s.length*r),a=0;for(let c=0;c<s.length;){let u=s.codePointAt(c)||0;n[a++]=u,c+=u>65535?2:1}let l=a;for(let c=1;c<r;++c)n.copyWithin(l,0,a),l+=a;return this.print(n,0,l),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(Z.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(Z.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(Z.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(Z.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(Z.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,Ip),this._charsetService.setgCharset(1,Ip),this._charsetService.setgCharset(2,Ip),this._charsetService.setgCharset(3,Ip);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 o=this._coreService.decPrivateModes,{activeProtocol:i,activeEncoding:s}=this._coreMouseService,n=this._coreService,{buffers:a,cols:l}=this._bufferService,{active:c,alt:u}=a,p=this._optionsService.rawOptions,f=(g,S)=>(n.triggerDataEvent(`${Z.ESC}[${t?"":"?"}${g};${S}$y`),!0),d=g=>g?1:2,h=e.params[0];return t?h===2?f(h,4):h===4?f(h,d(n.modes.insertMode)):h===12?f(h,3):h===20?f(h,d(p.convertEol)):f(h,0):h===1?f(h,d(o.applicationCursorKeys)):h===3?f(h,p.windowOptions.setWinLines?l===80?2:l===132?1:0:0):h===6?f(h,d(o.origin)):h===7?f(h,d(o.wraparound)):h===8?f(h,3):h===9?f(h,d(i==="X10")):h===12?f(h,d(p.cursorBlink)):h===25?f(h,d(!n.isCursorHidden)):h===45?f(h,d(o.reverseWraparound)):h===66?f(h,d(o.applicationKeypad)):h===67?f(h,4):h===1e3?f(h,d(i==="VT200")):h===1002?f(h,d(i==="DRAG")):h===1003?f(h,d(i==="ANY")):h===1004?f(h,d(o.sendFocus)):h===1005?f(h,4):h===1006?f(h,d(s==="SGR")):h===1015?f(h,4):h===1016?f(h,d(s==="SGR_PIXELS")):h===1048?f(h,1):h===47||h===1047||h===1049?f(h,d(c===u)):h===2004?f(h,d(o.bracketedPasteMode)):h===2026?f(h,d(o.synchronizedOutput)):f(h,0)}_updateAttrColor(e,t,r,o,i){return t===2?(e|=50331648,e&=-16777216,e|=bv.fromColorRGB([r,o,i])):t===5&&(e&=-50331904,e|=33554432|r&255),e}_extractColor(e,t,r){let o=[0,0,-1,0,0,0],i=0,s=0;do{if(o[s+i]=e.params[t+s],e.hasSubParams(t+s)){let n=e.getSubParams(t+s),a=0;do o[1]===5&&(i=1),o[s+a+1+i]=n[a];while(++a<n.length&&a+s+1+i<o.length);break}if(o[1]===5&&s+i>=2||o[1]===2&&s+i>=5)break;o[1]&&(i=1)}while(++s+t<e.length&&s+i<o.length);for(let n=2;n<o.length;++n)o[n]===-1&&(o[n]=0);switch(o[0]){case 38:r.fg=this._updateAttrColor(r.fg,o[1],o[3],o[4],o[5]);break;case 48:r.bg=this._updateAttrColor(r.bg,o[1],o[3],o[4],o[5]);break;case 58:r.extended=r.extended.clone(),r.extended.underlineColor=this._updateAttrColor(r.extended.underlineColor,o[1],o[3],o[4],o[5])}return s}_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=Pr.fg,e.bg=Pr.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,o=this._curAttrData;for(let i=0;i<t;i++)r=e.params[i],r>=30&&r<=37?(o.fg&=-50331904,o.fg|=16777216|r-30):r>=40&&r<=47?(o.bg&=-50331904,o.bg|=16777216|r-40):r>=90&&r<=97?(o.fg&=-50331904,o.fg|=16777216|r-90|8):r>=100&&r<=107?(o.bg&=-50331904,o.bg|=16777216|r-100|8):r===0?this._processSGR0(o):r===1?o.fg|=134217728:r===3?o.bg|=67108864:r===4?(o.fg|=268435456,this._processUnderline(e.hasSubParams(i)?e.getSubParams(i)[0]:1,o)):r===5?o.fg|=536870912:r===7?o.fg|=67108864:r===8?o.fg|=1073741824:r===9?o.fg|=2147483648:r===2?o.bg|=134217728:r===21?this._processUnderline(2,o):r===22?(o.fg&=-134217729,o.bg&=-134217729):r===23?o.bg&=-67108865:r===24?(o.fg&=-268435457,this._processUnderline(0,o)):r===25?o.fg&=-536870913:r===27?o.fg&=-67108865:r===28?o.fg&=-1073741825:r===29?o.fg&=2147483647:r===39?(o.fg&=-67108864,o.fg|=Pr.fg&16777215):r===49?(o.bg&=-67108864,o.bg|=Pr.bg&16777215):r===38||r===48||r===58?i+=this._extractColor(e,i,o):r===53?o.bg|=1073741824:r===55?o.bg&=-1073741825:r===59?(o.extended=o.extended.clone(),o.extended.underlineColor=-1,o.updateExtended()):r===100?(o.fg&=-67108864,o.fg|=Pr.fg&16777215,o.bg&=-67108864,o.bg|=Pr.bg&16777215):this._logService.debug("Unknown SGR attribute: %d.",r);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${Z.ESC}[0n`);break;case 6:let t=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${Z.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(`${Z.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=Pr.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(!VH(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(`${Z.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(t===0||t===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>WH&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>WH&&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 o=r.shift(),i=r.shift();if(/^\d+$/.exec(o)){let s=parseInt(o);if(KH(s))if(i==="?")t.push({type:0,index:s});else{let n=jH(i);n&&t.push({type:1,index:s,color:n})}}}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(),o=e.slice(t+1);return o?this._createHyperlink(r,o):r.trim()?!1:this._finishHyperlink()}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();let r=e.split(":"),o,i=r.findIndex(s=>s.startsWith("id="));return i!==-1&&(o=r[i].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:o,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 o=0;o<r.length&&!(t>=this._specialColors.length);++o,++t)if(r[o]==="?")this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{let i=jH(r[o]);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 o=0;o<r.length;++o)if(/^\d+$/.exec(r[o])){let i=parseInt(r[o]);KH(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,Ip),!0}selectCharset(e){return e.length!==2?(this.selectDefaultCharset(),!0):(e[0]==="/"||this._charsetService.setgCharset(Nhe[e[0]],zr[e[1]]||Ip),!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=Pr.clone(),this._eraseAttrDataInternal=Pr.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 Ds;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,o=this._activeBuffer.lines.get(r);o&&(o.fill(e),o.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){let r=n=>(this._coreService.triggerDataEvent(`${Z.ESC}${n}${Z.ESC}\\`),!0),o=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${o.scrollTop+1};${o.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)}},Fk=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&&(GH=e,e=t,t=GH),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};Fk=ar([de(0,Qo)],Fk);function KH(e){return 0<=e&&e<256}var Fhe=5e7,YH=12,$he=50,Uhe=class extends ke{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 ne),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 o=this._callbacks.shift();o&&o()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>Fhe)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 o=this._writeBuffer[this._bufferOffset],i=this._action(o,t);if(i){let n=a=>performance.now()-r>=YH?setTimeout(()=>this._innerWrite(0,a)):this._innerWrite(r,a);i.catch(a=>(queueMicrotask(()=>{throw a}),Promise.resolve(!1))).then(n);return}let s=this._callbacks[this._bufferOffset];if(s&&s(),this._bufferOffset++,this._pendingData-=o.length,performance.now()-r>=YH)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>$he&&(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()}},$k=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 a=t.addMarker(t.ybase+t.y),l={data:e,id:this._nextId++,lines:[a]};return a.onDispose(()=>this._removeMarkerFromLink(l,a)),this._dataByLinkId.set(l.id,l),l.id}let r=e,o=this._getEntryIdKey(r),i=this._entriesWithId.get(o);if(i)return this.addLineToLink(i.id,t.ybase+t.y),i.id;let s=t.addMarker(t.ybase+t.y),n={id:this._nextId++,key:this._getEntryIdKey(r),data:r,lines:[s]};return s.onDispose(()=>this._removeMarkerFromLink(n,s)),this._entriesWithId.set(n.key,n),this._dataByLinkId.set(n.id,n),n.id}addLineToLink(e,t){let r=this._dataByLinkId.get(e);if(r&&r.lines.every(o=>o.line!==t)){let o=this._bufferService.buffer.addMarker(t);r.lines.push(o),o.onDispose(()=>this._removeMarkerFromLink(r,o))}}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)))}};$k=ar([de(0,Qo)],$k);var XH=!1,Hhe=class extends ke{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new Dh),this._onBinary=this._register(new ne),this.onBinary=this._onBinary.event,this._onData=this._register(new ne),this.onData=this._onData.event,this._onLineFeed=this._register(new ne),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new ne),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new ne),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new ne),this._instantiationService=new phe,this.optionsService=this._register(new xhe(e)),this._instantiationService.setService(Jo,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(Bk)),this._instantiationService.setService(Qo,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(Dk)),this._instantiationService.setService(c9,this._logService),this.coreService=this._register(this._instantiationService.createInstance(Ik)),this._instantiationService.setService(Up,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(Nk)),this._instantiationService.setService(l9,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(Np)),this._instantiationService.setService(Dpe,this.unicodeService),this._charsetService=this._instantiationService.createInstance(Rhe),this._instantiationService.setService(Ope,this._charsetService),this._oscLinkService=this._instantiationService.createInstance($k),this._instantiationService.setService(u9,this._oscLinkService),this._inputHandler=this._register(new zhe(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(Co.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(Co.forward(this._bufferService.onResize,this._onResize)),this._register(Co.forward(this.coreService.onData,this._onData)),this._register(Co.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 Uhe((t,r)=>this._inputHandler.parse(t,r))),this._register(Co.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new ne),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&&!XH&&(this._logService.warn("writeSync is unreliable and will be removed soon."),XH=!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,Z9),t=Math.max(t,Q9),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(UH.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},()=>(UH(this._bufferService),!1))),this._windowsWrappingHeuristics.value=Ft(()=>{for(let t of e)t.dispose()})}}},jhe={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 Whe(e,t,r,o){let i={type:0,cancel:!1,key:void 0},s=(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=Z.ESC+"OA":i.key=Z.ESC+"[A":e.key==="UIKeyInputLeftArrow"?t?i.key=Z.ESC+"OD":i.key=Z.ESC+"[D":e.key==="UIKeyInputRightArrow"?t?i.key=Z.ESC+"OC":i.key=Z.ESC+"[C":e.key==="UIKeyInputDownArrow"&&(t?i.key=Z.ESC+"OB":i.key=Z.ESC+"[B");break;case 8:i.key=e.ctrlKey?"\b":Z.DEL,e.altKey&&(i.key=Z.ESC+i.key);break;case 9:if(e.shiftKey){i.key=Z.ESC+"[Z";break}i.key=Z.HT,i.cancel=!0;break;case 13:i.key=e.altKey?Z.ESC+Z.CR:Z.CR,i.cancel=!0;break;case 27:i.key=Z.ESC,e.altKey&&(i.key=Z.ESC+Z.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;s?i.key=Z.ESC+"[1;"+(s+1)+"D":t?i.key=Z.ESC+"OD":i.key=Z.ESC+"[D";break;case 39:if(e.metaKey)break;s?i.key=Z.ESC+"[1;"+(s+1)+"C":t?i.key=Z.ESC+"OC":i.key=Z.ESC+"[C";break;case 38:if(e.metaKey)break;s?i.key=Z.ESC+"[1;"+(s+1)+"A":t?i.key=Z.ESC+"OA":i.key=Z.ESC+"[A";break;case 40:if(e.metaKey)break;s?i.key=Z.ESC+"[1;"+(s+1)+"B":t?i.key=Z.ESC+"OB":i.key=Z.ESC+"[B";break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=Z.ESC+"[2~");break;case 46:s?i.key=Z.ESC+"[3;"+(s+1)+"~":i.key=Z.ESC+"[3~";break;case 36:s?i.key=Z.ESC+"[1;"+(s+1)+"H":t?i.key=Z.ESC+"OH":i.key=Z.ESC+"[H";break;case 35:s?i.key=Z.ESC+"[1;"+(s+1)+"F":t?i.key=Z.ESC+"OF":i.key=Z.ESC+"[F";break;case 33:e.shiftKey?i.type=2:e.ctrlKey?i.key=Z.ESC+"[5;"+(s+1)+"~":i.key=Z.ESC+"[5~";break;case 34:e.shiftKey?i.type=3:e.ctrlKey?i.key=Z.ESC+"[6;"+(s+1)+"~":i.key=Z.ESC+"[6~";break;case 112:s?i.key=Z.ESC+"[1;"+(s+1)+"P":i.key=Z.ESC+"OP";break;case 113:s?i.key=Z.ESC+"[1;"+(s+1)+"Q":i.key=Z.ESC+"OQ";break;case 114:s?i.key=Z.ESC+"[1;"+(s+1)+"R":i.key=Z.ESC+"OR";break;case 115:s?i.key=Z.ESC+"[1;"+(s+1)+"S":i.key=Z.ESC+"OS";break;case 116:s?i.key=Z.ESC+"[15;"+(s+1)+"~":i.key=Z.ESC+"[15~";break;case 117:s?i.key=Z.ESC+"[17;"+(s+1)+"~":i.key=Z.ESC+"[17~";break;case 118:s?i.key=Z.ESC+"[18;"+(s+1)+"~":i.key=Z.ESC+"[18~";break;case 119:s?i.key=Z.ESC+"[19;"+(s+1)+"~":i.key=Z.ESC+"[19~";break;case 120:s?i.key=Z.ESC+"[20;"+(s+1)+"~":i.key=Z.ESC+"[20~";break;case 121:s?i.key=Z.ESC+"[21;"+(s+1)+"~":i.key=Z.ESC+"[21~";break;case 122:s?i.key=Z.ESC+"[23;"+(s+1)+"~":i.key=Z.ESC+"[23~";break;case 123:s?i.key=Z.ESC+"[24;"+(s+1)+"~":i.key=Z.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=Z.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=Z.DEL:e.keyCode===219?i.key=Z.ESC:e.keyCode===220?i.key=Z.FS:e.keyCode===221&&(i.key=Z.GS);else if((!r||o)&&e.altKey&&!e.metaKey){let n=jhe[e.keyCode]?.[e.shiftKey?1:0];if(n)i.key=Z.ESC+n;else if(e.keyCode>=65&&e.keyCode<=90){let a=e.ctrlKey?e.keyCode-64:e.keyCode+32,l=String.fromCharCode(a);e.shiftKey&&(l=l.toUpperCase()),i.key=Z.ESC+l}else if(e.keyCode===32)i.key=Z.ESC+(e.ctrlKey?Z.NUL:" ");else if(e.key==="Dead"&&e.code.startsWith("Key")){let a=e.code.slice(3,4);e.shiftKey||(a=a.toLowerCase()),i.key=Z.ESC+a,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=Z.US),e.key==="@"&&(i.key=Z.NUL));break}return i}var yr=0,Vhe=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new ST,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new ST,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,s)=>this._getKey(i)-this._getKey(s)),t=0,r=0,o=new Array(this._array.length+this._insertedValues.length);for(let i=0;i<o.length;i++)r>=this._array.length||this._getKey(e[t])<=this._getKey(this._array[r])?(o[i]=e[t],t++):o[i]=this._array[r++];this._array=o,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||(yr=this._search(t),yr===-1)||this._getKey(this._array[yr])!==t)return!1;do if(this._array[yr]===e)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(yr),!0;while(++yr<this._array.length&&this._getKey(this._array[yr])===t);return!1}_flushDeleted(){this._isFlushingDeleted=!0;let e=this._deletedIndices.sort((i,s)=>i-s),t=0,r=new Array(this._array.length-e.length),o=0;for(let i=0;i<this._array.length;i++)e[t]===i?t++:r[o++]=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&&(yr=this._search(e),!(yr<0||yr>=this._array.length)&&this._getKey(this._array[yr])===e))do yield this._array[yr];while(++yr<this._array.length&&this._getKey(this._array[yr])===e)}forEachByKey(e,t){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(yr=this._search(e),!(yr<0||yr>=this._array.length)&&this._getKey(this._array[yr])===e))do t(this._array[yr]);while(++yr<this._array.length&&this._getKey(this._array[yr])===e)}values(){return this._flushCleanupInserted(),this._flushCleanupDeleted(),[...this._array].values()}_search(e){let t=0,r=this._array.length-1;for(;r>=t;){let o=t+r>>1,i=this._getKey(this._array[o]);if(i>e)r=o-1;else if(i<e)t=o+1;else{for(;o>0&&this._getKey(this._array[o-1])===e;)o--;return o}}return t}},ok=0,ZH=0,qhe=class extends ke{constructor(){super(),this._decorations=new Vhe(e=>e?.marker.line),this._onDecorationRegistered=this._register(new ne),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new ne),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(Ft(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let t=new Ghe(e);if(t){let r=t.marker.onDispose(()=>t.dispose()),o=t.onDispose(()=>{o.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 o=0,i=0;for(let s of this._decorations.getKeyIterator(t))o=s.options.x??0,i=o+(s.options.width??1),e>=o&&e<i&&(!r||(s.options.layer??"bottom")===r)&&(yield s)}forEachDecorationAtCell(e,t,r,o){this._decorations.forEachByKey(t,i=>{ok=i.options.x??0,ZH=ok+(i.options.width??1),e>=ok&&e<ZH&&(!r||(i.options.layer??"bottom")===r)&&o(i)})}},Ghe=class extends Hc{constructor(e){super(),this.options=e,this.onRenderEmitter=this.add(new ne),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new ne),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=Qt.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=Qt.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}},Khe=1e3,Yhe=class{constructor(e,t=Khe){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 o=performance.now();if(o-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=o,this._innerRefresh();else if(!this._additionalRefreshRequested){let i=o-this._lastRefreshMs,s=this._debounceThresholdMS-i;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},s)}}_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)}},QH=20,JH=!1,xT=class extends ke{constructor(e,t,r,o){super(),this._terminal=e,this._coreBrowserService=r,this._renderService=o,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 s=0;s<this._terminal.rows;s++)this._rowElements[s]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[s]);if(this._topBoundaryFocusListener=s=>this._handleBoundaryFocus(s,0),this._bottomBoundaryFocusListener=s=>this._handleBoundaryFocus(s,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 Yhe(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");JH?(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(s=>this._handleResize(s.rows))),this._register(this._terminal.onRender(s=>this._refreshRows(s.start,s.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(s=>this._handleChar(s))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`
|
|
380
380
|
`))),this._register(this._terminal.onA11yTab(s=>this._handleTab(s))),this._register(this._terminal.onKey(s=>this._handleKey(s.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(_e(i,"selectionchange",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(Ft(()=>{JH?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<QH+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
|
|
381
381
|
`&&(this._liveRegionLineCount++,this._liveRegionLineCount===QH+1&&(this._liveRegion.textContent+=sk.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,o=r.lines.length.toString();for(let i=e;i<=t;i++){let s=r.lines.get(r.ydisp+i),n=[],a=s?.translateToString(!0,void 0,void 0,n)||"",l=(r.ydisp+i+1).toString(),c=this._rowElements[i];c&&(a.length===0?(c.textContent="\xA0",this._rowColumns.set(c,[0,1])):(c.textContent=a,this._rowColumns.set(c,n)),c.setAttribute("aria-posinset",l),c.setAttribute("aria-setsize",o),this._alignRowWidth(c))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){let r=e.target,o=this._rowElements[t===0?1:this._rowElements.length-2],i=r.getAttribute("aria-posinset"),s=t===0?"1":`${this._terminal.buffer.lines.length}`;if(i===s||e.relatedTarget!==o)return;let n,a;if(t===0?(n=r,a=this._rowElements.pop(),this._rowContainer.removeChild(a)):(n=this._rowElements.shift(),a=r,this._rowContainer.removeChild(n)),n.removeEventListener("focus",this._topBoundaryFocusListener),a.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 o=this._rowElements.slice(-1)[0];if(r.node.compareDocumentPosition(o)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(r={node:o,offset:o.textContent?.length??0}),!this._rowContainer.contains(r.node))return;let i=({node:a,offset:l})=>{let c=a instanceof Text?a.parentNode:a,u=parseInt(c?.getAttribute("aria-posinset"),10)-1;if(isNaN(u))return console.warn("row is invalid. Race condition?"),null;let p=this._rowColumns.get(c);if(!p)return console.warn("columns is null. Race condition?"),null;let f=l<p.length?p[l]:p.slice(-1)[0]+1;return f>=this._terminal.cols&&(++u,f=0),{row:u,column:f}},s=i(t),n=i(r);if(!(!s||!n)){if(s.row>n.row||s.row===n.row&&s.column>=n.column)throw new Error("invalid range");this._terminal.select(s.column,s.row,(n.row-s.row)*this._terminal.cols-s.column+n.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 o=r*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${o/t})`}};xT=ar([de(1,Hk),de(2,fl),de(3,hl)],xT);var Uk=class extends ke{constructor(e,t,r,o,i){super(),this._element=e,this._mouseService=t,this._renderService=r,this._bufferService=o,this._linkProviderService=i,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new ne),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new ne),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(Ft(()=>{Fp(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(_e(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(_e(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register(_e(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register(_e(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 o=0;o<r.length;o++){let i=r[o];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(o=>{o?.forEach(i=>{i.link.dispose&&i.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(let[o,i]of this._linkProviderService.linkProviders.entries())t?this._activeProviderReplies?.get(o)&&(r=this._checkLinkProviderResult(o,e,r)):i.provideLinks(e.y,s=>{if(this._isMouseOut)return;let n=s?.map(a=>({link:a}));this._activeProviderReplies?.set(o,n),r=this._checkLinkProviderResult(o,e,r),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,t){let r=new Set;for(let o=0;o<t.size;o++){let i=t.get(o);if(i)for(let s=0;s<i.length;s++){let n=i[s],a=n.link.range.start.y<e?0:n.link.range.start.x,l=n.link.range.end.y>e?this._bufferService.cols:n.link.range.end.x;for(let c=a;c<=l;c++){if(r.has(c)){i.splice(s--,1);break}r.add(c)}}}}_checkLinkProviderResult(e,t,r){if(!this._activeProviderReplies)return r;let o=this._activeProviderReplies.get(e),i=!1;for(let s=0;s<e;s++)(!this._activeProviderReplies.has(s)||this._activeProviderReplies.get(s))&&(i=!0);if(!i&&o){let s=o.find(n=>this._linkAtPosition(n.link,t));s&&(r=!0,this._handleNewLink(s))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!r)for(let s=0;s<this._activeProviderReplies.size;s++){let n=this._activeProviderReplies.get(s)?.find(a=>this._linkAtPosition(a.link,t));if(n){r=!0,this._handleNewLink(n);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&&Xhe(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,Fp(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 o=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>=o&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(o,i),this._lastMouseEvent)){let s=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);s&&this._askForLink(s,!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,o=this._bufferService.buffer.ydisp,i=this._createLinkUnderlineEvent(r.start.x-1,r.start.y-o-1,r.end.x,r.end.y-o-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,o=e.range.end.y*this._bufferService.cols+e.range.end.x,i=t.y*this._bufferService.cols+t.x;return r<=i&&i<=o}_positionFromMouseEvent(e,t,r){let o=r.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(o)return{x:o[0],y:o[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,r,o,i){return{x1:e,y1:t,x2:r,y2:o,cols:this._bufferService.cols,fg:i}}};Uk=ar([de(1,jk),de(2,hl),de(3,Qo),de(4,d9)],Uk);function Xhe(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 Zhe=class extends Hhe{constructor(e={}){super(e),this._linkifier=this._register(new Dh),this.browser=$9,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new Dh),this._onCursorMove=this._register(new ne),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new ne),this.onKey=this._onKey.event,this._onRender=this._register(new ne),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new ne),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new ne),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new ne),this.onBell=this._onBell.event,this._onFocus=this._register(new ne),this._onBlur=this._register(new ne),this._onA11yCharEmitter=this._register(new ne),this._onA11yTabEmitter=this._register(new ne),this._onWillOpen=this._register(new ne),this._setup(),this._decorationService=this._instantiationService.createInstance(qhe),this._instantiationService.setService(_v,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(Ffe),this._instantiationService.setService(d9,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(ak)),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(Co.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(Co.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(Co.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(Co.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(t=>this._afterResize(t.cols,t.rows))),this._register(Ft(()=>{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,o="";switch(t.index){case 256:r="foreground",o="10";break;case 257:r="background",o="11";break;case 258:r="cursor",o="12";break;default:r="ansi",o="4;"+t.index}switch(t.type){case 0:let i=zt.toColorRGB(r==="ansi"?this._themeService.colors.ansi[t.index]:this._themeService.colors[r]);this.coreService.triggerDataEvent(`${Z.ESC}]${o};${Ihe(i)}${z9.ST}`);break;case 1:if(r==="ansi")this._themeService.modifyColors(s=>s.ansi[t.index]=Rr.toColor(...t.color));else{let s=r;this._themeService.modifyColors(n=>n[s]=Rr.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(xT,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(Z.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(Z.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),o=this._renderService.dimensions.css.cell.height,i=t.getWidth(r),s=this._renderService.dimensions.css.cell.width*i,n=this.buffer.y*this._renderService.dimensions.css.cell.height,a=r*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+"px",this.textarea.style.top=n+"px",this.textarea.style.width=s+"px",this.textarea.style.height=o+"px",this.textarea.style.lineHeight=o+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this._register(_e(this.element,"copy",t=>{this.hasSelection()&&Rpe(t,this._selectionService)}));let e=t=>Epe(t,this.textarea,this.coreService,this.optionsService);this._register(_e(this.textarea,"paste",e)),this._register(_e(this.element,"paste",e)),U9?this._register(_e(this.element,"mousedown",t=>{t.button===2&&eH(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(_e(this.element,"contextmenu",t=>{eH(t,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),Zk&&this._register(_e(this.element,"auxclick",t=>{t.button===1&&o9(t,this.textarea,this.screenElement)}))}_bindKeys(){this._register(_e(this.textarea,"keyup",e=>this._keyUp(e),!0)),this._register(_e(this.textarea,"keydown",e=>this._keyDown(e),!0)),this._register(_e(this.textarea,"keypress",e=>this._keyPress(e),!0)),this._register(_e(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this._register(_e(this.textarea,"compositionupdate",e=>this._compositionHelper.compositionupdate(e))),this._register(_e(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this._register(_e(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(_e(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",ik.get()),W9||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(Nfe,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(fl,this._coreBrowserService),this._register(_e(this.textarea,"focus",i=>this._handleTextAreaFocus(i))),this._register(_e(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(kk,this._document,this._helperContainer),this._instantiationService.setService(wT,this._charSizeService),this._themeService=this._instantiationService.createInstance(Ok),this._instantiationService.setService(Bh,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(bT),this._instantiationService.setService(p9,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(Ak,this.rows,this.screenElement)),this._instantiationService.setService(hl,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(Pk,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(Mk),this._instantiationService.setService(jk,this._mouseService);let o=this._linkifier.value=this._register(this._instantiationService.createInstance(Uk,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(wk,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(Lk,this.element,this.screenElement,o)),this._instantiationService.setService(Ipe,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(Co.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(Ck,this.screenElement)),this._register(_e(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(xT,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",i=>this._handleScreenReaderModeOptionChange(i))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(vT,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",i=>{!this._overviewRulerRenderer&&i&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(vT,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(Ek,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,t=this.element;function r(s){let n=e._mouseService.getMouseReportCoords(s,e.screenElement);if(!n)return!1;let a,l;switch(s.overrideType||s.type){case"mousemove":l=32,s.buttons===void 0?(a=3,s.button!==void 0&&(a=s.button<3?s.button:3)):a=s.buttons&1?0:s.buttons&4?1:s.buttons&2?2:3;break;case"mouseup":l=0,a=s.button<3?s.button:3;break;case"mousedown":l=1,a=s.button<3?s.button:3;break;case"wheel":if(e._customWheelEventHandler&&e._customWheelEventHandler(s)===!1)return!1;let c=s.deltaY;if(c===0||e.coreMouseService.consumeWheelEvent(s,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;l=c<0?0:1,a=4;break;default:return!1}return l===void 0||a===void 0||a>4?!1:e.coreMouseService.triggerMouseEvent({col:n.col,row:n.row,x:n.x,y:n.y,button:a,action:l,ctrl:s.ctrlKey,alt:s.altKey,shift:s.shiftKey})}let o={mouseup:null,wheel:null,mousedrag:null,mousemove:null},i={mouseup:s=>(r(s),s.buttons||(this._document.removeEventListener("mouseup",o.mouseup),o.mousedrag&&this._document.removeEventListener("mousemove",o.mousedrag)),this.cancel(s)),wheel:s=>(r(s),this.cancel(s,!0)),mousedrag:s=>{s.buttons&&r(s)},mousemove:s=>{s.buttons||r(s)}};this._register(this.coreMouseService.onProtocolChange(s=>{s?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(s)),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()),s&8?o.mousemove||(t.addEventListener("mousemove",i.mousemove),o.mousemove=i.mousemove):(t.removeEventListener("mousemove",o.mousemove),o.mousemove=null),s&16?o.wheel||(t.addEventListener("wheel",i.wheel,{passive:!1}),o.wheel=i.wheel):(t.removeEventListener("wheel",o.wheel),o.wheel=null),s&2?o.mouseup||(o.mouseup=i.mouseup):(this._document.removeEventListener("mouseup",o.mouseup),o.mouseup=null),s&4?o.mousedrag||(o.mousedrag=i.mousedrag):(this._document.removeEventListener("mousemove",o.mousedrag),o.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(_e(t,"mousedown",s=>{if(s.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(s)))return r(s),o.mouseup&&this._document.addEventListener("mouseup",o.mouseup),o.mousedrag&&this._document.addEventListener("mousemove",o.mousedrag),this.cancel(s)})),this._register(_e(t,"wheel",s=>{if(!o.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(s)===!1)return!1;if(!this.buffer.hasScrollback){if(s.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(s,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(s,!0);let n=Z.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(s.deltaY<0?"A":"B");return this.coreService.triggerDataEvent(n,!0),this.cancel(s,!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){r9(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=Whe(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),r.type===3||r.type===2){let o=this.rows-1;return this.scrollLines(r.type===2?-o:o),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===Z.ETX||r.key===Z.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)&&(Qhe(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(Pr));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(Z.ESC+"[I"):this.coreService.triggerDataEvent(Z.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(`${Z.ESC}[4;${r};${t}t`);break;case 1:let o=this._renderService.dimensions.css.cell.width.toFixed(0),i=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${Z.ESC}[6;${i};${o}t`);break}}cancel(e,t){if(!(!this.options.cancelEvents&&!t))return e.preventDefault(),e.stopPropagation(),!1}};function Qhe(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var Jhe=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)}},eme=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 Ds)}translateToString(e,t,r){return this._line.translateToString(e,t,r)}},e9=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 eme(t)}getNullCell(){return new Ds}},tme=class extends ke{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new ne),this.onBufferChange=this._onBufferChange.event,this._normal=new e9(this._core.buffers.normal,"normal"),this._alternate=new e9(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)}},rme=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,o)=>t(r,o.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)}},ome=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}},ime=["cols","rows"],Kn=0,ej=class extends ke{constructor(e){super(),this._core=this._register(new Zhe(e)),this._addonManager=this._register(new Jhe),this._publicOptions={...this._core.options};let t=o=>this._core.options[o],r=(o,i)=>{this._checkReadonlyOptions(o),this._core.options[o]=i};for(let o in this._core.options){let i={get:t.bind(this,o),set:r.bind(this,o)};Object.defineProperty(this._publicOptions,o,i)}}_checkReadonlyOptions(e){if(ime.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 rme(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new ome(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 tme(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
|
|
382
|
-
`,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 ik.get()},set promptLabel(e){ik.set(e)},get tooMuchOutput(){return sk.get()},set tooMuchOutput(e){sk.set(e)}}}_verifyIntegers(...e){for(Kn of e)if(Kn===1/0||isNaN(Kn)||Kn%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(Kn of e)if(Kn&&(Kn===1/0||isNaN(Kn)||Kn%1!==0||Kn<0))throw new Error("This API only accepts positive integers")}};var Qk=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function sme(e){try{return!!new URL(e).host}catch{return!1}}function rj(e,t){let r=e(t),o=e(t+1);return!!r&&!!o&&(o.isWrapped||r.isFull)}function nme(e,t){let r=[];for(let o=t;o-t<64;o++){let i=e(o);if(!i||(r.push(i.text),!rj(e,o)))break}return r}function tj(e,t,r){let o=t;for(let i of e){if(r<i.length)return{x:r+1,y:o+1};r-=i.length,o++}}function ame(e,t,r){let o=r[0],i=tj(e,t,r.index),s=tj(e,t,r.index+o.length-1);if(!(!sme(o)||!i||!s))return{text:o,range:{start:i,end:s}}}function lme(e,t,r){let o=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(o)].flatMap(s=>ame(e,t,s)??[])}function oj(e,t,r=Qk){if(!e(t-1))return[];let o=t-1;for(;o>0&&rj(e,o-1);)o--;return lme(nme(e,o),o,r)}function ij(e,t){let r=o=>{let i=e.buffer.active.getLine(o);if(!i)return;let s=e.cols,n=i.getCell(s-1);return{text:i.translateToString(!0,0,s),isWrapped:i.isWrapped,isFull:!!n&&n.getChars()!==""&&n.getChars()!==" "}};return{provideLinks(o,i){let s=oj(r,o,Qk);i(s.map(n=>({range:n.range,text:n.text,activate:t})))}}}function sj(e){let t=new ej({cursorBlink:!0,fontSize:14,fontFamily:"'Cascadia Code', 'Fira Code', Consolas, monospace",theme:{background:"#1e1e1e",foreground:"#d4d4d4"},linkHandler:{activate:(s,n)=>{window.open(n,"_blank")}}}),r=new LU;t.loadAddon(r);let o=t.registerLinkProvider(ij(t,(s,n)=>{window.open(n,"_blank")}));t.open(e);let i;try{i=new Z7,i.onContextLoss(()=>{i?.dispose(),i=void 0}),t.loadAddon(i)}catch{i=void 0}return r.fit(),{term:t,fitAddon:r,dispose:()=>{o.dispose(),i?.dispose(),t.dispose()}}}function nj(e,t,r,o){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(o),!1):!0}function aj(e,t,r,o,i){let s=sj(e);s.term.onData(c=>r(t,c)),s.term.attachCustomKeyEventHandler(c=>nj(c,s.term,navigator.clipboard,u=>s.term.paste(u)));let n=o(t,c=>s.term.write(c)),a=new ResizeObserver(()=>{s.fitAddon.fit(),i(t,s.term.cols,s.term.rows)});return a.observe(e),{handle:s,cleanup:()=>{a.disconnect(),n(),s.dispose()}}}function lj(e,t,r,o,i,s){let n=(0,Tv.useRef)(null);(0,Tv.useEffect)(()=>{let a=e.current;if(!a)return;let{handle:l,cleanup:c}=aj(a,t,o,i,s);return n.current=l,()=>{c(),n.current=null}},[e,t,i,o,s]),(0,Tv.useEffect)(()=>{let a=n.current;if(!r||!a)return;let l=setTimeout(()=>{a.fitAddon.fit(),a.term.focus(),s(t,a.term.cols,a.term.rows)},50);return()=>clearTimeout(l)},[r,t,s])}var pj=m(x(),1);function uj({sessionId:e,visible:t,onOutput:r,sendInput:o,sendResize:i}){let s=(0,cj.useRef)(null);return lj(s,e,t,o,r,i),(0,pj.jsx)(Y,{ref:s,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"}})}var Hp=m(x(),1);function dj({sessions:e,activeId:t,initialized:r,onOutput:o,sendInput:i,sendResize:s}){let n=e.find(l=>l.id===t),a=n!==void 0&&Tx(n,r);return(0,Hp.jsxs)(Y,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(l=>(0,Hp.jsx)(uj,{sessionId:l.id,visible:l.id===t,onOutput:o,sendInput:i,sendResize:s},l.id)),a&&(0,Hp.jsx)(AU,{}),e.length===0&&(0,Hp.jsx)(Y,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,Hp.jsx)(K,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var fj=m(x(),1),hj=ue((0,fj.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 Bs=m(x(),1);function mj({message:e}){return e.role==="tool"?(0,Bs.jsx)(cme,{tool:e.tool,target:e.target}):(0,Bs.jsx)(ume,{role:e.role,text:e.text})}function cme({tool:e,target:t}){return(0,Bs.jsxs)(Y,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,Bs.jsx)(hj,{sx:{fontSize:14,color:"text.disabled"}}),(0,Bs.jsxs)(K,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,Bs.jsx)(Y,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,Bs.jsxs)(Y,{component:"span",children:[" ",t]})]})]})}function ume({role:e,text:t}){let r=e==="user",o=r?"info.main":"success.main";return(0,Bs.jsxs)(Y,{sx:{mb:1.5,pl:1.5,py:1,pr:1,borderLeft:2,borderColor:o,borderTopRightRadius:1,borderBottomRightRadius:1,bgcolor:r?"action.hover":"transparent"},children:[(0,Bs.jsx)(K,{variant:"caption",sx:{color:o,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,Bs.jsx)(K,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var Qn=m(x(),1);function pme(e){let t=new Map;return e.map(r=>{let o=r.role==="tool"?`tool:${r.tool}:${r.target}`:`${r.role}:${r.text.slice(0,40)}`,i=t.get(o)??0;return t.set(o,i+1),{...r,key:`${o}#${i}`}})}function yj({messages:e,loading:t}){return t?(0,Qn.jsxs)(Y,{sx:gj,children:[(0,Qn.jsx)(at,{size:20}),(0,Qn.jsx)(K,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,Qn.jsx)(Y,{sx:gj,children:(0,Qn.jsx)(K,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,Qn.jsx)(Y,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,Qn.jsx)(Y,{sx:{maxWidth:820,mx:"auto"},children:pme(e).map(r=>(0,Qn.jsx)(mj,{message:r},r.key))})})}var gj={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var Jk=m(x(),1);function vj({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,Jk.jsx)(Y,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,Jk.jsx)(yj,{messages:r?t?.messages??[]:[],loading:!r})})}var e5=m(x(),1);function bj({viewingTranscriptSessionId:e,transcript:t,...r}){return e!==null?(0,e5.jsx)(vj,{sessionId:e,transcript:t}):(0,e5.jsx)(dj,{...r})}var Nh=m(N(),1);function _j(e,t){let r=Math.max(0,e-t),o=Math.floor(r/86400),i=Math.floor(r%86400/3600),s=Math.floor(r%3600/60);return o>0?`${o}d ${i}h`:i>0?`${i}h ${s}m`:`${s}m`}function dme(e,t,r,o){if(t==null)return;let i=Math.max(0,t-o),s=Math.max(0,r-i)/r;if(!(s<.05))return e/s}function kT(e,t,r,o){let i=dme(e,t,r,o);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var fme={ok:"success.main",warn:"warning.main",over:"error.main"};function MT(e){return fme[e]}var wv=m(x(),1),hme={ok:"success",warn:"warning",over:"error"};function Sj({percentage:e,level:t}){return(0,wv.jsxs)(Y,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,wv.jsx)(Xm,{variant:"determinate",value:Math.min(100,e),color:hme[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,wv.jsxs)(Y,{sx:{minWidth:40,textAlign:"right",color:MT(t)},children:[Math.round(e),"%"]})]})}var xj={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 ml=m(x(),1);function Tj({peak:e,now:t}){let{label:r,seconds:o,tint:i}=xj[e.window],s=kT(e.usedPercentage,e.resetsAt,o,t);return(0,ml.jsxs)(xa,{sx:n=>({backgroundColor:i?n.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,ml.jsxs)(Ot,{children:[r,e.resetDetected&&(0,ml.jsx)(Ze,{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}})]}),(0,ml.jsx)(Ot,{sx:{minWidth:160},children:(0,ml.jsx)(Sj,{percentage:e.usedPercentage,level:s})}),(0,ml.jsx)(Ot,{align:"right",children:new Date(e.createdAt).toLocaleString()}),(0,ml.jsx)(Ot,{align:"right",children:new Date(e.resetsAt*1e3).toLocaleString()})]})}var AT=m(N(),1);function LT(e){let[t,r]=(0,AT.useState)(()=>Math.floor(Date.now()/1e3));return(0,AT.useEffect)(()=>{let o=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(o)},[e]),t}var Is=m(x(),1);function wj({peaks:e}){let t=LT(3e4);return(0,Is.jsx)(Sg,{component:et,children:(0,Is.jsxs)(vg,{size:"small",children:[(0,Is.jsx)(xg,{children:(0,Is.jsxs)(xa,{children:[(0,Is.jsx)(Ot,{children:"Window"}),(0,Is.jsx)(Ot,{children:"Peak usage"}),(0,Is.jsx)(Ot,{align:"right",children:"Started"}),(0,Is.jsx)(Ot,{align:"right",children:"Cycle reset"})]})}),(0,Is.jsx)(bg,{children:e.map(r=>(0,Is.jsx)(Tj,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var gl=m(N(),1),o5=30;async function mme(e){return(await fetch(`/api/usage/history?page=${e}&pageSize=${o5}`)).json()}function Cj(){let[e,t]=(0,gl.useState)(0),[r,o]=(0,gl.useState)([]),[i,s]=(0,gl.useState)(0),[n,a]=(0,gl.useState)(!1),[l,c]=(0,gl.useState)(!1);return(0,gl.useEffect)(()=>{let u=!1;return c(!0),mme(e).then(p=>{u||(o(p.rows),s(p.total),a(!0),c(!1))}),()=>{u=!0}},[e]),(0,gl.useEffect)(()=>{if(i===0)return;let u=Math.ceil(i/o5)-1;e>u&&t(u)},[e,i]),{page:e,setPage:t,rows:r,total:i,loaded:n,fetching:l,pageSize:o5}}var jc=m(x(),1);function Pj(){let{page:e,setPage:t,rows:r,total:o,loaded:i,fetching:s,pageSize:n}=Cj(),a=(0,Nh.useRef)(null),[l,c]=(0,Nh.useState)();return(0,Nh.useLayoutEffect)(()=>{r.length===n&&a.current&&c(a.current.offsetHeight)},[r,n]),(0,jc.jsxs)(Ix,{loading:!i,title:"Usage history",isEmpty:o===0,emptyMessage:"No usage peaks recorded yet.",children:[(0,jc.jsx)(Y,{sx:{height:4,mb:1},children:s&&(0,jc.jsx)(Xm,{})}),(0,jc.jsx)(Y,{ref:a,sx:{minHeight:l},children:(0,jc.jsx)(wj,{peaks:r})}),(0,jc.jsx)(CC,{component:"div",count:o,page:e,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(u,p)=>t(p)})]})}var Er=m(x(),1);function gme({socket:e}){return(0,Er.jsx)(Dl,{maxWidth:"md",sx:{py:3,px:2},children:(0,Er.jsx)(VF,{socket:e})})}function yme({socket:e}){return(0,Er.jsx)(bj,{sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onOutput:e.onOutput,sendInput:e.sendInput,sendResize:e.sendResize,viewingTranscriptSessionId:e.viewingTranscriptSessionId,transcript:e.transcript})}function Rj({socket:e}){return(0,Er.jsx)(up,{children:(0,Er.jsxs)(qo,{element:(0,Er.jsx)(bU,{socket:e}),children:[(0,Er.jsx)(qo,{path:"sessions",element:(0,Er.jsx)(yme,{socket:e})}),(0,Er.jsx)(qo,{path:"backlog/*",element:(0,Er.jsx)(gme,{socket:e})}),(0,Er.jsx)(qo,{path:"news",element:(0,Er.jsx)(MU,{})}),(0,Er.jsx)(qo,{path:"usage",element:(0,Er.jsx)(Pj,{})}),(0,Er.jsx)(qo,{path:"backups",element:(0,Er.jsx)(PU,{})}),(0,Er.jsx)(qo,{path:"*",element:(0,Er.jsx)(wE,{to:"/sessions",replace:!0})})]})})}var OT=m(N(),1),vme=5e3;function Ej(e){let[t,r]=(0,OT.useState)(null);return(0,OT.useEffect)(()=>{if(!e){r(null);return}let o=!1,i=async()=>{try{let a=await(await fetch(`/api/git-status?cwd=${encodeURIComponent(e)}`)).json();o||r(a??null)}catch{o||r(null)}};i();let s=setInterval(i,vme);return()=>{o=!0,clearInterval(s)}},[e]),t}var Jn=m(x(),1),bme={display:"flex",alignItems:"center",gap:1,ml:2,fontFamily:"monospace",fontSize:13,cursor:"default"},_me={maxHeight:360,overflow:"auto",fontFamily:"monospace",fontSize:12},Sme={tooltip:{sx:{maxWidth:"none"}}},kj=[{key:"new",label:"New",prefix:"+",color:"success.main"},{key:"modified",label:"Modified",prefix:"~",color:"warning.main"},{key:"deleted",label:"Deleted",prefix:"-",color:"error.main"}];function xme({counts:e}){return(0,Jn.jsx)(Y,{sx:_me,children:kj.filter(t=>e[t.key].length>0).map(t=>(0,Jn.jsxs)(Y,{sx:{mb:.5,"&:last-child":{mb:0}},children:[(0,Jn.jsxs)(Y,{sx:{color:t.color,fontWeight:700},children:[t.label," (",e[t.key].length,")"]}),e[t.key].map(r=>(0,Jn.jsx)(Y,{sx:{pl:1,whiteSpace:"nowrap"},children:r},r))]},t.key))})}function Mj({cwd:e}){let t=Ej(e),r=t?kj.map(o=>({...o,count:t[o.key].length})).filter(o=>o.count>0):[];return!t||r.length===0?null:(0,Jn.jsx)(jt,{title:(0,Jn.jsx)(xme,{counts:t}),slotProps:Sme,children:(0,Jn.jsx)(Y,{sx:bme,children:r.map(o=>(0,Jn.jsxs)(Y,{component:"span",sx:{color:o.color},children:[o.prefix,o.count]},o.key))})})}var zh=m(x(),1),Tme=["/sessions","/backlog","/news"];function Aj(){let e=xo(),t=gr(),r=Tme.findIndex(i=>e.pathname.startsWith(i)),o=i=>{e.pathname!==i&&t(i)};return(0,zh.jsxs)(wg,{value:r===-1?0:r,textColor:"inherit",indicatorColor:"secondary",children:[(0,zh.jsx)(ql,{label:"Sessions",onClick:()=>o("/sessions")}),(0,zh.jsx)(ql,{label:"Backlog",onClick:()=>o("/backlog")}),(0,zh.jsx)(ql,{label:"News",onClick:()=>o("/news")})]})}var Oj=m(N(),1);var i5=m(x(),1);function Lj(e){return(0,i5.jsx)(wl,{viewBox:"-3 -3 30 30",...e,children:(0,i5.jsx)("path",{d:"M23.15 2.587L18.21.21a1.494 1.494 0 0 0-1.705.29l-9.46 8.63-4.12-3.128a.999.999 0 0 0-1.276.057L.327 7.261A1 1 0 0 0 .326 8.74L3.899 12 .326 15.26a1 1 0 0 0 .001 1.479L1.65 17.94a.999.999 0 0 0 1.276.057l4.12-3.128 9.46 8.63a1.492 1.492 0 0 0 1.704.29l4.942-2.377A1.5 1.5 0 0 0 24 20.06V3.939a1.5 1.5 0 0 0-.85-1.352zm-5.146 14.861L10.826 12l7.178-5.448v10.896z"})})}var ea=m(x(),1),wme={color:"inherit"};function Dj({cwd:e}){let[t,r]=(0,Oj.useState)(null);async function o(){try{let i=await fetch(`/api/open-in-code?cwd=${encodeURIComponent(e)}`,{method:"POST"});if(!i.ok){let s=await i.json().catch(()=>null);r(s?.error??"Failed to open VS Code")}}catch{r("Failed to open VS Code")}}return(0,ea.jsxs)(ea.Fragment,{children:[(0,ea.jsx)(jt,{title:"Open in VS Code",children:(0,ea.jsx)("span",{children:(0,ea.jsx)(Le,{sx:wme,disabled:!e,onClick:o,children:(0,ea.jsx)(Lj,{})})})}),(0,ea.jsx)(Mc,{error:t,onClose:()=>r(null)})]})}var BT=m(N(),1),DT=m(x(),1),Cme={color:"inherit"};function Bj({cwd:e}){let[t,r]=(0,BT.useState)(null);return(0,BT.useEffect)(()=>{if(!e){r(null);return}let o=!1;return(async()=>{try{let s=await(await fetch(`/api/github-url?cwd=${encodeURIComponent(e)}`)).json();o||r(s?.url??null)}catch{o||r(null)}})(),()=>{o=!0}},[e]),t?(0,DT.jsx)(jt,{title:"Open in GitHub",children:(0,DT.jsx)(Le,{sx:Cme,onClick:()=>window.open(t,"_blank"),children:(0,DT.jsx)(kx,{})})}):null}var Nj=m(N(),1);var IT=m(x(),1);function Ij({window:e,windowSeconds:t,fallbackLabel:r,now:o}){let i=e?.used_percentage;if(i==null)return null;let s=kT(i,e?.resets_at,t,o),n=e?.resets_at!=null?_j(e.resets_at,o):r;return(0,IT.jsxs)(Y,{component:"span",children:[(0,IT.jsxs)(Y,{component:"span",sx:{color:MT(s)},children:[Math.round(i),"%"]})," ",(0,IT.jsxs)(Y,{component:"span",sx:{color:"text.secondary"},children:["(",n,")"]})]})}var Wc=m(x(),1);function zj({rateLimits:e}){let t=LT(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(o=>o.window?.used_percentage!=null);return(0,Wc.jsx)(Wc.Fragment,{children:r.map((o,i)=>(0,Wc.jsxs)(Nj.Fragment,{children:[i>0?(0,Wc.jsx)(Y,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,Wc.jsx)(Ij,{window:o.window,windowSeconds:o.windowSeconds,fallbackLabel:o.fallbackLabel,now:t})]},o.fallbackLabel))})}var NT=m(x(),1),Pme={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13};function Rme(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Fj({rateLimits:e}){return Rme(e)?(0,NT.jsx)(jt,{title:"Claude account usage (5h / 7d windows) \u2014 view history",children:(0,NT.jsx)(us,{component:Ts,to:"/usage",underline:"hover",color:"inherit",sx:Pme,children:(0,NT.jsx)(zj,{rateLimits:e})})}):null}var $j=m(x(),1),Uj=ue((0,$j.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 yl=m(N(),1);var zT=[{target:"daemon",label:"Restart daemon",message:"This restarts the sessions daemon. Running claude 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 FT(e){return fetch(`/api/restart?target=${e}`,{method:"POST"})}var Eme=15e3;function Hj(e){let[t,r]=(0,yl.useState)(!1),[o,i]=(0,yl.useState)(null),s=(0,yl.useRef)(!1),n=(0,yl.useRef)(void 0);(0,yl.useEffect)(()=>{t&&(e?s.current=!0:s.current&&(clearTimeout(n.current),globalThis.location.reload()))},[t,e]),(0,yl.useEffect)(()=>()=>clearTimeout(n.current),[]);async function a(){r(!0),s.current=!1,n.current=setTimeout(()=>{r(!1),i("Web server did not come back")},Eme);try{if(!(await FT("webserver")).ok)throw new Error("restart failed")}catch{clearTimeout(n.current),r(!1),i("Failed to restart web server")}}return{pending:t,error:o,clearError:()=>i(null),restart:a}}var un=m(x(),1),kme={color:"inherit",mr:1.5};function jj({reconnecting:e}){let{pending:t,error:r,clearError:o,restart:i}=Hj(e);return(0,un.jsxs)(un.Fragment,{children:[(0,un.jsx)(jt,{title:"Restart web server",children:(0,un.jsx)("span",{children:(0,un.jsx)(Le,{sx:kme,disabled:t,onClick:i,children:t?(0,un.jsx)(at,{size:24}):(0,un.jsx)(Uj,{})})})}),(0,un.jsx)(Mc,{error:r,onClose:o})]})}var Fh=m(x(),1);function Mme(e){return e?yh(e)?(0,Fh.jsxs)("span",{style:{display:"flex",flexGrow:1,alignItems:"center",justifyContent:"space-between",gap:6,minWidth:0},children:[wp(e),(0,Fh.jsx)(Ec,{})]}):wp(e):"Select repo..."}function Wj({repos:e,selected:t,onSelect:r}){return(0,Fh.jsx)(gh,{label:Mme(t),children:o=>(0,Fh.jsx)(a$,{repos:e,selected:t,onSelect:r,close:o})})}var s5={"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 Ame(e){return e in s5}function Lme(e,t){let r=[...s5[e].args],o=t?.trim();return o&&r.push(o),r}function Vj(e,t,r,o,i){if(Ame(e)&&t){r(Lme(e,i),t);return}o(e)}var n5=Object.entries(s5).map(([e,{label:t,prompt:r,nav:o}])=>({value:e,label:t,prompt:r,nav:o})),qj="Enter prompt...";var Kj=m(N(),1);var $h=m(x(),1);function Ome(e,t){e.key==="Enter"&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),t.trim()!==""&&e.currentTarget.closest("form")?.requestSubmit())}function Gj({value:e,onChange:t,onSubmit:r}){return(0,$h.jsx)(et,{elevation:4,sx:{...mh,left:"auto",width:320},children:(0,$h.jsxs)(Oe,{component:"form",direction:"row",spacing:1,sx:{p:1,alignItems:"flex-start"},onSubmit:o=>{o.preventDefault(),r()},children:[(0,$h.jsx)(kn,{value:e,onChange:o=>t(o.target.value),onKeyDown:o=>Ome(o,e),placeholder:qj,size:"small",autoFocus:!0,fullWidth:!0,multiline:!0,maxRows:7,slotProps:{input:{sx:{fontSize:13}}}}),(0,$h.jsx)(Qe,{type:"submit",variant:"contained",size:"small",sx:{whiteSpace:"nowrap"},children:"Start"})]})})}var a5=m(x(),1);function $T({disabled:e,onSubmit:t,label:r="prompt",allowEmpty:o=!1}){let[i,s]=(0,Kj.useState)("");return(0,a5.jsx)(gh,{label:r,disabled:e,children:n=>(0,a5.jsx)(Gj,{value:i,onChange:s,onSubmit:()=>{!o&&!i.trim()||(t(i),s(""),n())}})})}var jp=m(x(),1),Dme={textTransform:"none",fontSize:11,fontWeight:600};function Yj({onSelect:e,disabled:t=!1,children:r}){return(0,jp.jsxs)(jp.Fragment,{children:[n5.filter(o=>o.nav&&o.prompt).map(o=>(0,jp.jsx)($T,{label:o.label,allowEmpty:!0,disabled:t,onSubmit:i=>e(o.value,i)},o.value)),r,n5.filter(o=>o.nav&&!o.prompt).map(o=>(0,jp.jsx)(Qe,{size:"small",variant:"outlined",disabled:t,onClick:()=>e(o.value),sx:Dme,children:o.label},o.value))]})}var Cv=m(N(),1);function UT(e){let[t,r]=(0,Cv.useState)([]),[o,i]=(0,Cv.useState)(!0);return(0,Cv.useEffect)(()=>{if(!e){r([]),i(!1);return}let s=!1;return i(!0),fetch(`/api/pr-list?cwd=${encodeURIComponent(e)}`).then(n=>n.json()).then(n=>{s||(r(Array.isArray(n?.prs)?n.prs:[]),i(!1))}).catch(()=>{s||(r([]),i(!1))}),()=>{s=!0}},[e]),{prs:t,loading:o}}var Qj=m(N(),1);var Xi=m(x(),1);function Zj({cwd:e,onPick:t,header:r}){let{prs:o,loading:i}=UT(e);return(0,Xi.jsxs)(et,{elevation:4,sx:{...mh,left:"auto",width:320},children:[r,i?(0,Xi.jsx)(Xj,{text:"Loading open PRs\u2026"}):o.length===0?(0,Xi.jsx)(Xj,{text:"No open PRs"}):(0,Xi.jsx)(Nu,{dense:!0,disablePadding:!0,children:o.map(s=>(0,Xi.jsx)(Bme,{pr:s,onPick:t},s.number))})]})}function Bme({pr:e,onPick:t}){return(0,Xi.jsx)(go,{onMouseDown:r=>r.preventDefault(),onClick:()=>t(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,Xi.jsxs)(Oe,{spacing:.25,sx:{minWidth:0},children:[(0,Xi.jsx)(K,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,Xi.jsxs)(K,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",Sc(e.createdAt)]})]})})}function Xj({text:e}){return(0,Xi.jsx)(Y,{sx:{p:1.5},children:(0,Xi.jsx)(K,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var ta=m(x(),1);function Jj({cwd:e,onSelect:t,close:r}){let[o,i]=(0,Qj.useState)("review");return(0,ta.jsx)(Zj,{cwd:e,header:(0,ta.jsxs)(vC,{row:!0,value:o,onChange:s=>i(s.target.value),sx:{px:1.5,py:.5},children:[(0,ta.jsx)(wn,{value:"review",control:(0,ta.jsx)(fg,{size:"small"}),label:"Review",onMouseDown:s=>s.preventDefault(),slotProps:{typography:{sx:{fontSize:13}}}}),(0,ta.jsx)(wn,{value:"review-comments",control:(0,ta.jsx)(fg,{size:"small"}),label:"Address Comments",onMouseDown:s=>s.preventDefault(),slotProps:{typography:{sx:{fontSize:13}}}}),(0,ta.jsx)(wn,{value:"review-post",control:(0,ta.jsx)(fg,{size:"small"}),label:"Review & post",onMouseDown:s=>s.preventDefault(),slotProps:{typography:{sx:{fontSize:13}}}})]}),onPick:s=>{t(s,o),r()}})}var l5=m(x(),1);function eW({cwd:e,disabled:t,onSelect:r}){let{prs:o,loading:i}=UT(e);return i||o.length===0?null:(0,l5.jsx)(gh,{label:"review",disabled:t,children:s=>(0,l5.jsx)(Jj,{cwd:e,onSelect:r,close:s})})}function tW(e){switch(e){case"review-comments":return["review-comments"];case"review-post":return["review","--no-prompt","--submit"];default:return["review"]}}var Uh=m(x(),1);function rW({onCreate:e,onCreateAssist:t}){let{selectedCwd:r}=Fn(),o=!r;return(0,Uh.jsx)(Oe,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:(0,Uh.jsxs)(Yj,{disabled:o,onSelect:(i,s)=>Vj(i,r,t,()=>{},s),children:[(0,Uh.jsx)($T,{allowEmpty:!0,disabled:o,onSubmit:i=>e(i,r)}),(0,Uh.jsx)(eW,{cwd:r,disabled:o,onSelect:(i,s)=>t([...tW(s),String(i.number)],r,Ax(i))})]})})}var Zi=m(x(),1),Ime={minHeight:48,pl:1,pr:14},Nme={width:240,ml:2};function oW({socket:e,selection:t}){return(0,Zi.jsxs)(Fu,{variant:"dense",disableGutters:!0,sx:Ime,children:[(0,Zi.jsx)(jj,{reconnecting:e.reconnecting}),(0,Zi.jsx)(Aj,{}),(0,Zi.jsx)(Y,{sx:Nme,children:(0,Zi.jsx)(Wj,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd})}),(0,Zi.jsx)(Mj,{cwd:t.selectedCwd}),(0,Zi.jsxs)(Y,{sx:{display:"flex",ml:1,mr:2},children:[(0,Zi.jsx)(Dj,{cwd:t.selectedCwd}),(0,Zi.jsx)(Bj,{cwd:t.selectedCwd})]}),(0,Zi.jsx)(rW,{onCreate:e.createSession,onCreateAssist:e.createAssistSession}),(0,Zi.jsx)(Fj,{rateLimits:e.rateLimits})]})}var jT=m(N(),1);var iW=m(x(),1),sW=ue((0,iW.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 nW=m(x(),1),aW=ue((0,nW.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 lW=m(x(),1),cW=ue((0,lW.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 c5=m(x(),1);function uW({mode:e}){return e==="dark"?(0,c5.jsx)(cW,{fontSize:"small"}):(0,c5.jsx)(aW,{fontSize:"small"})}var ei=m(x(),1);function pW({mode:e,onToggleColorMode:t,onRestart:r,onUpdate:o}){return[(0,ei.jsxs)(go,{onClick:t,children:[(0,ei.jsx)(Qm,{children:(0,ei.jsx)(uW,{mode:e})}),(0,ei.jsx)(eg,{children:"Toggle dark mode"})]},"color-mode"),(0,ei.jsx)(Fl,{},"restart-divider"),...zT.map(i=>(0,ei.jsxs)(go,{onClick:()=>r(i.target),children:[(0,ei.jsx)(Qm,{children:(0,ei.jsx)(Mx,{fontSize:"small"})}),(0,ei.jsx)(eg,{children:i.label})]},i.target)),(0,ei.jsxs)(go,{onClick:o,children:[(0,ei.jsx)(Qm,{children:(0,ei.jsx)(sW,{fontSize:"small"})}),(0,ei.jsx)(eg,{children:"Update assist"})]},"update")]}var dW=m(x(),1),fW=ue((0,dW.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var u5=m(x(),1),hW=ue([(0,u5.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,u5.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var Pv="0.361.0";var HT=m(N(),1),p5=(0,HT.createContext)(null);function mW(){return(0,HT.useContext)(p5)}var Vc=m(x(),1);function gW(){let e=mW();return Pv?(0,Vc.jsxs)(Vc.Fragment,{children:[(0,Vc.jsxs)(K,{variant:"caption",sx:{opacity:.4,userSelect:"none",lineHeight:1},children:["v",Pv]}),e&&e!==Pv&&(0,Vc.jsx)(jt,{title:`Daemon is running v${e}, but this page was served by v${Pv}. Restart the daemon to match.`,children:(0,Vc.jsx)(hW,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})]}):null}var Hh=m(x(),1);function yW({open:e,onOpen:t}){return(0,Hh.jsxs)(Y,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,Hh.jsx)(gW,{}),(0,Hh.jsx)(Le,{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,Hh.jsx)(fW,{fontSize:"small"})})]})}var bW=m(x(),1);function vW({target:e,onClose:t}){let r=zT.find(o=>o.target===e);return r?(0,bW.jsx)(yi,{title:r.label,message:r.message,confirmLabel:"Restart",onConfirm:()=>{FT(e),t()},onCancel:t}):null}var SW=m(x(),1);function _W({onConfirm:e,onClose:t}){return(0,SW.jsx)(yi,{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 vl=m(x(),1);function xW({mode:e,toggle:t}){let[r,o]=(0,jT.useState)(null),[i,s]=(0,jT.useState)(null),[n,a]=(0,jT.useState)(!1),{launchAssist:l}=wc(),c=!!r;return(0,vl.jsxs)(vl.Fragment,{children:[(0,vl.jsx)(yW,{open:c,onOpen:o}),(0,vl.jsx)(zu,{anchorEl:r,open:c,onClose:()=>o(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:pW({mode:e,onToggleColorMode:()=>{t(),o(null)},onRestart:u=>{o(null),s(u)},onUpdate:()=>{o(null),a(!0)}})}),i&&(0,vl.jsx)(vW,{target:i,onClose:()=>s(null)}),n&&(0,vl.jsx)(_W,{onConfirm:()=>l(["update"]),onClose:()=>a(!1)})]})}var WT=m(x(),1);function TW({notice:e,onClose:t,onView:r}){let o=e?.sessionId??null;return(0,WT.jsx)(Pn,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,WT.jsx)(Ho,{severity:"success",variant:"filled",onClose:t,action:o!==null?(0,WT.jsx)(Qe,{color:"inherit",size:"small",onClick:()=>r(o),children:"View"}):void 0,children:e?.message})})}var VT=m(x(),1);function wW({reconnecting:e}){return(0,VT.jsx)(Pn,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,VT.jsx)(Ho,{severity:"info",variant:"filled",icon:(0,VT.jsx)(at,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Wp=m(N(),1);function CW(e,t){let r=new Set,o=[];for(let i of t)i.cwd&&!r.has(i.cwd)&&(r.add(i.cwd),o.push(i.cwd));return e&&!r.has(e)&&o.unshift(e),o}function PW(e,t){let[r,o]=(0,Wp.useState)(e);(0,Wp.useEffect)(()=>{e&&!r&&o(e)},[e,r]);let i=(0,Wp.useMemo)(()=>CW(e,t),[e,t]);return(0,Wp.useMemo)(()=>({repos:i,selectedCwd:r,setSelectedCwd:o}),[i,r])}var qT=m(N(),1);function RW(e){let t=(0,qT.useMemo)(()=>({launchAssist:e.createAssistSession}),[e.createAssistSession]),r=gr(),o=(0,qT.useCallback)(i=>{e.selectSession(i),r("/sessions"),e.clearSuccess()},[r,e.selectSession,e.clearSuccess]);return{launch:t,viewLaunchedSession:o}}var uV=m(N(),1);var EW=m(N(),1);function GT(e,t,r){if(!e)return;let o=t.find(s=>s.id===e);return o?o.cwd:r.find(s=>s.sessionId===e)?.cwd}function kW(e,t,r,o){let i=GT(e,t,r);(0,EW.useEffect)(()=>{e&&i&&o({type:"set-active",cwd:i,sessionId:e})},[e,i,o])}var KT=m(N(),1);function MW(e,t){let r=(0,KT.useRef)(new Map);(0,KT.useEffect)(()=>{let o=new Set;for(let{id:i,status:s}of e)o.add(i),r.current.get(i)!==s&&(r.current.set(i,s),console.debug(`[sessions] render session ${i} status=${s}`),t({type:"ui-status",sessionId:i,status:s}));for(let i of r.current.keys())o.has(i)||r.current.delete(i)},[e,t])}var Qi=m(N(),1);function AW(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r})}function LW(e){return(t,r,o)=>e({type:"create-assist",assistArgs:t,cwd:r,title:o?.title,subtitle:o?.subtitle})}function OW(e){return(t,r,o)=>e({type:"resume",sessionId:t,cwd:r,name:o})}function DW(e,t){return r=>{t.delete(r),e({type:"retry",sessionId:r})}}function BW(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function IW(e,t,r){return o=>{e({type:"dismiss",sessionId:o}),t.delete(o),r.delete(o)}}function NW(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function zW(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function FW(e){return(t,r)=>e({type:"input",sessionId:t,data:r})}function $W(e){return(t,r,o)=>e({type:"resize",sessionId:t,cols:r,rows:o})}function UW(e,t){return(r,o)=>{let i=e.get(r);return i&&o(i),t.set(r,o),()=>t.delete(r)}}function HW(e,t,r){let o={createSession:(0,Qi.useMemo)(()=>AW(e),[e]),createAssistSession:(0,Qi.useMemo)(()=>LW(e),[e]),resumeSession:(0,Qi.useMemo)(()=>OW(e),[e]),sendInput:(0,Qi.useMemo)(()=>FW(e),[e]),sendResize:(0,Qi.useMemo)(()=>$W(e),[e]),setAutoRun:(0,Qi.useMemo)(()=>NW(e),[e]),setAutoAdvance:(0,Qi.useMemo)(()=>zW(e),[e])},i=(0,Qi.useMemo)(()=>UW(t.current,r.current),[t,r]),s=(0,Qi.useCallback)(l=>{DW(e,t.current)(l)},[e,t]),n=(0,Qi.useCallback)(l=>{BW(e,t.current)(l)},[e,t]),a=(0,Qi.useCallback)(l=>{IW(e,t.current,r.current)(l)},[e,t,r]);return{...o,onOutput:i,retrySession:s,restartSession:n,dismissSession:a}}var YT=m(N(),1);function jW(e,t,r){let o=(0,YT.useCallback)(n=>{r(n),e({type:"fetch-transcript",sessionId:n})},[e,r]),i=(0,YT.useCallback)(()=>{r(null)},[r]),s=(0,YT.useCallback)(n=>{r(null),t(n)},[t,r]);return{viewTranscript:o,clearTranscript:i,selectSession:s}}var pn=m(N(),1);var VW=m(N(),1);function WW(e,t,r=null){return t!==null?e.some(o=>o.id===t)?t:e[0]?.id??null:r&&e.some(o=>o.id===r)?r:e[0]?.id??null}function qW(e,t,r){let o=xo().pathname,i=o.startsWith("/backlog")||o.startsWith("/usage");(0,VW.useEffect)(()=>{if(i){t(null);return}t(s=>WW(e,s,r))},[e,t,r,i])}var d5=m(N(),1);function GW(){let[e,t]=(0,d5.useState)(null),[r,o]=(0,d5.useState)(null);return{daemonActiveId:e,setDaemonActiveId:t,daemonVersion:r,setDaemonVersion:o}}var Vp=m(N(),1);function KW(e,t){if(!t.some(o=>e.has(o)))return e;let r=new Set(e);for(let o of t)r.delete(o);return r}function YW(e,t){let r=[];for(let o of t){let i=e.get(o.id);i!==void 0&&i!==o.startedAt&&r.push(o.id)}return r}function XW(){let[e,t]=(0,Vp.useState)(new Set),r=(0,Vp.useRef)(new Map),o=(0,Vp.useCallback)(s=>{t(n=>n.has(s)?n:new Set(n).add(s))},[]),i=(0,Vp.useCallback)(s=>{let n=YW(r.current,s);r.current=new Map(s.map(a=>[a.id,a.startedAt])),n.length&&t(a=>KW(a,n))},[]);return{initialized:e,markInitialized:o,syncSessions:i}}var jh=m(N(),1);function ZW(){let[e,t]=(0,jh.useState)(null),[r,o]=(0,jh.useState)(null),i=(0,jh.useCallback)(()=>t(null),[]),s=(0,jh.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:i,success:r,setSuccess:o,clearSuccess:s}}var QW=m(N(),1);function JW(e,t){return(0,QW.useCallback)(r=>{e(r),t(r)},[e,t])}var qc=m(N(),1);function eV(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function tV(e,t){let r=e.sessionId;t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:"New session started",sessionId:r})}function rV(e,t){let r=e.sessionId,o=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,o+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function oV(e,t){let r=new Set(t.map(i=>i.id)),o=null;for(let i of Object.values(e))r.has(i)&&(o=i);return o}function iV(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd);let o=e.active??{};t.setDaemonActiveId(oV(o,r))}function sV(e,t){switch(e.type){case"sessions":iV(e,t);break;case"created":tV(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":t.setError(e.message);break;case"limits":t.setRateLimits(e.rateLimits);break;case"clear":eV(e,t);break;case"output":rV(e,t);break}}function nV(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",o=new WebSocket(`${r}//${location.host}/ws`);return o.onopen=()=>{t.onOpen?.(),o.send(JSON.stringify({type:"hello"})),o.send(JSON.stringify({type:"history"}))},o.onmessage=i=>{sV(JSON.parse(i.data),e)},o.onclose=()=>t.onClose?.(),o}function aV(e,t,r,o){let i=!1,s,n=0,a=!1,l=()=>{i||t(nV(e,{onOpen:()=>{a&&r(),a=!1,o(!1),n=0},onClose:()=>{if(i)return;a=!0,o(!0);let c=Math.min(300*2**n,2e3);n+=1,s=setTimeout(l,c)}}))};return l(),()=>{i=!0,s&&clearTimeout(s)}}function lV(e){let t=(0,qc.useRef)(null),[r,o]=(0,qc.useState)(!1),{handleSessions:i,markInitialized:s,buffers:n,handlers:a}=e;(0,qc.useEffect)(()=>{let c=()=>{n.current?.clear();let p=a.current;if(p)for(let f of p.values())f("\x1Bc")},u=aV({...e,setSessions:i},p=>{t.current=p},c,o);return()=>{u(),t.current?.close()}},[i,s,n,a]);let l=(0,qc.useCallback)(()=>{let c=t.current;c?.readyState===WebSocket.OPEN&&c.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function cV(){let[e,t]=(0,pn.useState)([]),[r,o]=(0,pn.useState)([]),[i,s]=(0,pn.useState)(null),n=GW(),[a,l]=(0,pn.useState)(null),[c,u]=(0,pn.useState)(null),[p,f]=(0,pn.useState)(""),d=ZW(),[h,g]=(0,pn.useState)(null),{initialized:S,markInitialized:y,syncSessions:v}=XW(),b=(0,pn.useRef)(new Map),_=(0,pn.useRef)(new Map),C=JW(v,t),{wsRef:P,requestHistory:k,reconnecting:L}=lV({handleSessions:C,setHistory:o,setActiveId:s,...n,setTranscript:l,setViewingTranscriptSessionId:u,setCurrentCwd:f,...d,setRateLimits:g,markInitialized:y,buffers:b,handlers:_});return qW(e,s,n.daemonActiveId),{sessions:e,history:r,activeId:i,setActiveId:s,daemonVersion:n.daemonVersion,transcript:a,viewingTranscriptSessionId:c,setViewingTranscriptSessionId:u,currentCwd:p,...d,rateLimits:h,initialized:S,wsRef:P,buffers:b,handlers:_,requestHistory:k,reconnecting:L}}function pV(){let{sessions:e,history:t,activeId:r,setActiveId:o,daemonVersion:i,transcript:s,viewingTranscriptSessionId:n,setViewingTranscriptSessionId:a,currentCwd:l,error:c,clearError:u,success:p,clearSuccess:f,rateLimits:d,initialized:h,wsRef:g,buffers:S,handlers:y,requestHistory:v,reconnecting:b}=cV(),_=(0,uV.useCallback)(B=>{let I=g.current;I?.readyState===WebSocket.OPEN&&I.send(JSON.stringify(B))},[g]),C=HW(_,S,y);kW(r,e,t,_),MW(e,_);let{viewTranscript:P,clearTranscript:k,selectSession:L}=jW(_,o,a);return{sessions:e,history:t,activeId:r,setActiveId:o,daemonVersion:i,selectSession:L,transcript:s,viewingTranscriptSessionId:n,viewTranscript:P,clearTranscript:k,currentCwd:l,error:c,clearError:u,success:p,clearSuccess:f,rateLimits:d,initialized:h,...C,requestHistory:v,reconnecting:b}}var dV=m(N(),1);function fV(e,t,r,o){let i=GT(e,t,r);(0,dV.useEffect)(()=>{i&&o(i)},[i,o])}var Ji=m(x(),1),zme={zIndex:e=>e.zIndex.drawer+1},Fme={minHeight:48};function hV({mode:e,toggle:t}){let r=pV(),o=PW(r.currentCwd,r.history);fV(r.activeId,r.sessions,r.history,o.setSelectedCwd);let{launch:i,viewLaunchedSession:s}=RW(r);return(0,Ji.jsx)(OE.Provider,{value:o,children:(0,Ji.jsxs)(IE.Provider,{value:i,children:[(0,Ji.jsx)(p5.Provider,{value:r.daemonVersion,children:(0,Ji.jsx)(xW,{mode:e,toggle:t})}),(0,Ji.jsx)(gw,{position:"fixed",elevation:1,sx:zme,children:(0,Ji.jsx)(oW,{socket:r,selection:o})}),(0,Ji.jsx)(Fu,{variant:"dense",sx:Fme}),(0,Ji.jsx)(Rj,{socket:r}),(0,Ji.jsx)(wW,{reconnecting:r.reconnecting}),(0,Ji.jsx)(Mc,{error:r.error,onClose:r.clearError}),(0,Ji.jsx)(TW,{notice:r.success,onClose:r.clearSuccess,onView:s})]})})}var mV=m(N(),1);function gV(){let[e,t]=(0,mV.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(o=>{let i=o==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var qp=m(x(),1),$me={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function Ume(){let{mode:e,toggle:t}=gV(),r=(0,vV.useMemo)(()=>bn({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:$me}),[e]);return(0,qp.jsxs)(Ob,{theme:r,children:[(0,qp.jsx)(h_,{}),(0,qp.jsx)(AE,{children:(0,qp.jsx)(hV,{mode:e,toggle:t})})]})}var yV=document.getElementById("app");yV&&(0,bV.createRoot)(yV).render((0,qp.jsx)(Ume,{}));})();
|
|
382
|
+
`,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 ik.get()},set promptLabel(e){ik.set(e)},get tooMuchOutput(){return sk.get()},set tooMuchOutput(e){sk.set(e)}}}_verifyIntegers(...e){for(Kn of e)if(Kn===1/0||isNaN(Kn)||Kn%1!==0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(Kn of e)if(Kn&&(Kn===1/0||isNaN(Kn)||Kn%1!==0||Kn<0))throw new Error("This API only accepts positive integers")}};var Qk=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\^<>`]*[^\s"':,.!?{}|\\^~[\]`()<>]/;function sme(e){try{return!!new URL(e).host}catch{return!1}}function rj(e,t){let r=e(t),o=e(t+1);return!!r&&!!o&&(o.isWrapped||r.isFull)}function nme(e,t){let r=[];for(let o=t;o-t<64;o++){let i=e(o);if(!i||(r.push(i.text),!rj(e,o)))break}return r}function tj(e,t,r){let o=t;for(let i of e){if(r<i.length)return{x:r+1,y:o+1};r-=i.length,o++}}function ame(e,t,r){let o=r[0],i=tj(e,t,r.index),s=tj(e,t,r.index+o.length-1);if(!(!sme(o)||!i||!s))return{text:o,range:{start:i,end:s}}}function lme(e,t,r){let o=new RegExp(r.source,`${r.flags||""}g`);return[...e.join("").matchAll(o)].flatMap(s=>ame(e,t,s)??[])}function oj(e,t,r=Qk){if(!e(t-1))return[];let o=t-1;for(;o>0&&rj(e,o-1);)o--;return lme(nme(e,o),o,r)}function ij(e,t){let r=o=>{let i=e.buffer.active.getLine(o);if(!i)return;let s=e.cols,n=i.getCell(s-1);return{text:i.translateToString(!0,0,s),isWrapped:i.isWrapped,isFull:!!n&&n.getChars()!==""&&n.getChars()!==" "}};return{provideLinks(o,i){let s=oj(r,o,Qk);i(s.map(n=>({range:n.range,text:n.text,activate:t})))}}}function sj(e){let t=new ej({cursorBlink:!0,fontSize:14,fontFamily:"'Cascadia Code', 'Fira Code', Consolas, monospace",theme:{background:"#1e1e1e",foreground:"#d4d4d4"},linkHandler:{activate:(s,n)=>{window.open(n,"_blank")}}}),r=new LU;t.loadAddon(r);let o=t.registerLinkProvider(ij(t,(s,n)=>{window.open(n,"_blank")}));t.open(e);let i;try{i=new Z7,i.onContextLoss(()=>{i?.dispose(),i=void 0}),t.loadAddon(i)}catch{i=void 0}return r.fit(),{term:t,fitAddon:r,dispose:()=>{o.dispose(),i?.dispose(),t.dispose()}}}function nj(e,t,r,o){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(o),!1):!0}function aj(e,t,r,o,i){let s=sj(e);s.term.onData(c=>r(t,c)),s.term.attachCustomKeyEventHandler(c=>nj(c,s.term,navigator.clipboard,u=>s.term.paste(u)));let n=o(t,c=>s.term.write(c)),a=new ResizeObserver(()=>{s.fitAddon.fit(),i(t,s.term.cols,s.term.rows)});return a.observe(e),{handle:s,cleanup:()=>{a.disconnect(),n(),s.dispose()}}}function lj(e,t,r,o,i,s){let n=(0,Tv.useRef)(null);(0,Tv.useEffect)(()=>{let a=e.current;if(!a)return;let{handle:l,cleanup:c}=aj(a,t,o,i,s);return n.current=l,()=>{c(),n.current=null}},[e,t,i,o,s]),(0,Tv.useEffect)(()=>{let a=n.current;if(!r||!a)return;let l=setTimeout(()=>{a.fitAddon.fit(),a.term.focus(),s(t,a.term.cols,a.term.rows)},50);return()=>clearTimeout(l)},[r,t,s])}var pj=m(x(),1);function uj({sessionId:e,visible:t,onOutput:r,sendInput:o,sendResize:i}){let s=(0,cj.useRef)(null);return lj(s,e,t,o,r,i),(0,pj.jsx)(Y,{ref:s,sx:{position:"absolute",inset:"0 0 0 8px",visibility:t?"visible":"hidden",pointerEvents:t?"auto":"none"}})}var Hp=m(x(),1);function dj({sessions:e,activeId:t,initialized:r,onOutput:o,sendInput:i,sendResize:s}){let n=e.find(l=>l.id===t),a=n!==void 0&&Tx(n,r);return(0,Hp.jsxs)(Y,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:[e.map(l=>(0,Hp.jsx)(uj,{sessionId:l.id,visible:l.id===t,onOutput:o,sendInput:i,sendResize:s},l.id)),a&&(0,Hp.jsx)(AU,{}),e.length===0&&(0,Hp.jsx)(Y,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,Hp.jsx)(K,{variant:"body2",color:"text.disabled",children:"Create a session to get started"})})]})}var fj=m(x(),1),hj=ue((0,fj.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 Bs=m(x(),1);function mj({message:e}){return e.role==="tool"?(0,Bs.jsx)(cme,{tool:e.tool,target:e.target}):(0,Bs.jsx)(ume,{role:e.role,text:e.text})}function cme({tool:e,target:t}){return(0,Bs.jsxs)(Y,{sx:{display:"flex",alignItems:"center",gap:1,py:.5,pl:1},children:[(0,Bs.jsx)(hj,{sx:{fontSize:14,color:"text.disabled"}}),(0,Bs.jsxs)(K,{variant:"caption",sx:{color:"text.secondary",fontFamily:"monospace"},children:[(0,Bs.jsx)(Y,{component:"span",sx:{color:"warning.main"},children:e}),t&&(0,Bs.jsxs)(Y,{component:"span",children:[" ",t]})]})]})}function ume({role:e,text:t}){let r=e==="user",o=r?"info.main":"success.main";return(0,Bs.jsxs)(Y,{sx:{mb:1.5,pl:1.5,py:1,pr:1,borderLeft:2,borderColor:o,borderTopRightRadius:1,borderBottomRightRadius:1,bgcolor:r?"action.hover":"transparent"},children:[(0,Bs.jsx)(K,{variant:"caption",sx:{color:o,fontWeight:600,display:"block",mb:.5},children:r?"User":"Assistant"}),(0,Bs.jsx)(K,{variant:"body2",sx:{color:"text.primary",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.6},children:t})]})}var Qn=m(x(),1);function pme(e){let t=new Map;return e.map(r=>{let o=r.role==="tool"?`tool:${r.tool}:${r.target}`:`${r.role}:${r.text.slice(0,40)}`,i=t.get(o)??0;return t.set(o,i+1),{...r,key:`${o}#${i}`}})}function yj({messages:e,loading:t}){return t?(0,Qn.jsxs)(Y,{sx:gj,children:[(0,Qn.jsx)(at,{size:20}),(0,Qn.jsx)(K,{variant:"caption",color:"text.disabled",children:"Loading transcript\u2026"})]}):e.length===0?(0,Qn.jsx)(Y,{sx:gj,children:(0,Qn.jsx)(K,{variant:"body2",color:"text.disabled",children:"No transcript available"})}):(0,Qn.jsx)(Y,{sx:{position:"absolute",inset:0,overflowY:"auto",p:2},children:(0,Qn.jsx)(Y,{sx:{maxWidth:820,mx:"auto"},children:pme(e).map(r=>(0,Qn.jsx)(mj,{message:r},r.key))})})}var gj={position:"absolute",inset:0,display:"flex",flexDirection:"column",gap:1.5,alignItems:"center",justifyContent:"center"};var Jk=m(x(),1);function vj({sessionId:e,transcript:t}){let r=t?.sessionId===e;return(0,Jk.jsx)(Y,{sx:{flex:1,position:"relative",bgcolor:"background.default"},children:(0,Jk.jsx)(yj,{messages:r?t?.messages??[]:[],loading:!r})})}var e5=m(x(),1);function bj({viewingTranscriptSessionId:e,transcript:t,...r}){return e!==null?(0,e5.jsx)(vj,{sessionId:e,transcript:t}):(0,e5.jsx)(dj,{...r})}var Nh=m(N(),1);function _j(e,t){let r=Math.max(0,e-t),o=Math.floor(r/86400),i=Math.floor(r%86400/3600),s=Math.floor(r%3600/60);return o>0?`${o}d ${i}h`:i>0?`${i}h ${s}m`:`${s}m`}function dme(e,t,r,o){if(t==null)return;let i=Math.max(0,t-o),s=Math.max(0,r-i)/r;if(!(s<.05))return e/s}function kT(e,t,r,o){let i=dme(e,t,r,o);return i==null?"ok":i>100?"over":i>75?"warn":"ok"}var fme={ok:"success.main",warn:"warning.main",over:"error.main"};function MT(e){return fme[e]}var wv=m(x(),1),hme={ok:"success",warn:"warning",over:"error"};function Sj({percentage:e,level:t}){return(0,wv.jsxs)(Y,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,wv.jsx)(Xm,{variant:"determinate",value:Math.min(100,e),color:hme[t],sx:{flexGrow:1,height:8,borderRadius:1}}),(0,wv.jsxs)(Y,{sx:{minWidth:40,textAlign:"right",color:MT(t)},children:[Math.round(e),"%"]})]})}var xj={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 ml=m(x(),1);function Tj({peak:e,now:t}){let{label:r,seconds:o,tint:i}=xj[e.window],s=kT(e.usedPercentage,e.resetsAt,o,t);return(0,ml.jsxs)(xa,{sx:n=>({backgroundColor:i?n.palette.mode==="dark"?i.dark:i.light:void 0}),children:[(0,ml.jsxs)(Ot,{children:[r,e.resetDetected&&(0,ml.jsx)(Ze,{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}})]}),(0,ml.jsx)(Ot,{sx:{minWidth:160},children:(0,ml.jsx)(Sj,{percentage:e.usedPercentage,level:s})}),(0,ml.jsx)(Ot,{align:"right",children:new Date(e.createdAt).toLocaleString()}),(0,ml.jsx)(Ot,{align:"right",children:new Date(e.resetsAt*1e3).toLocaleString()})]})}var AT=m(N(),1);function LT(e){let[t,r]=(0,AT.useState)(()=>Math.floor(Date.now()/1e3));return(0,AT.useEffect)(()=>{let o=setInterval(()=>r(Math.floor(Date.now()/1e3)),e);return()=>clearInterval(o)},[e]),t}var Is=m(x(),1);function wj({peaks:e}){let t=LT(3e4);return(0,Is.jsx)(Sg,{component:et,children:(0,Is.jsxs)(vg,{size:"small",children:[(0,Is.jsx)(xg,{children:(0,Is.jsxs)(xa,{children:[(0,Is.jsx)(Ot,{children:"Window"}),(0,Is.jsx)(Ot,{children:"Peak usage"}),(0,Is.jsx)(Ot,{align:"right",children:"Started"}),(0,Is.jsx)(Ot,{align:"right",children:"Cycle reset"})]})}),(0,Is.jsx)(bg,{children:e.map(r=>(0,Is.jsx)(Tj,{peak:r,now:t},`${r.window}-${r.resetsAt}-${r.segment}`))})]})})}var gl=m(N(),1),o5=30;async function mme(e){return(await fetch(`/api/usage/history?page=${e}&pageSize=${o5}`)).json()}function Cj(){let[e,t]=(0,gl.useState)(0),[r,o]=(0,gl.useState)([]),[i,s]=(0,gl.useState)(0),[n,a]=(0,gl.useState)(!1),[l,c]=(0,gl.useState)(!1);return(0,gl.useEffect)(()=>{let u=!1;return c(!0),mme(e).then(p=>{u||(o(p.rows),s(p.total),a(!0),c(!1))}),()=>{u=!0}},[e]),(0,gl.useEffect)(()=>{if(i===0)return;let u=Math.ceil(i/o5)-1;e>u&&t(u)},[e,i]),{page:e,setPage:t,rows:r,total:i,loaded:n,fetching:l,pageSize:o5}}var jc=m(x(),1);function Pj(){let{page:e,setPage:t,rows:r,total:o,loaded:i,fetching:s,pageSize:n}=Cj(),a=(0,Nh.useRef)(null),[l,c]=(0,Nh.useState)();return(0,Nh.useLayoutEffect)(()=>{r.length===n&&a.current&&c(a.current.offsetHeight)},[r,n]),(0,jc.jsxs)(Ix,{loading:!i,title:"Usage history",isEmpty:o===0,emptyMessage:"No usage peaks recorded yet.",children:[(0,jc.jsx)(Y,{sx:{height:4,mb:1},children:s&&(0,jc.jsx)(Xm,{})}),(0,jc.jsx)(Y,{ref:a,sx:{minHeight:l},children:(0,jc.jsx)(wj,{peaks:r})}),(0,jc.jsx)(CC,{component:"div",count:o,page:e,rowsPerPage:n,rowsPerPageOptions:[n],onPageChange:(u,p)=>t(p)})]})}var Er=m(x(),1);function gme({socket:e}){return(0,Er.jsx)(Dl,{maxWidth:"md",sx:{py:3,px:2},children:(0,Er.jsx)(VF,{socket:e})})}function yme({socket:e}){return(0,Er.jsx)(bj,{sessions:e.sessions,activeId:e.activeId,initialized:e.initialized,onOutput:e.onOutput,sendInput:e.sendInput,sendResize:e.sendResize,viewingTranscriptSessionId:e.viewingTranscriptSessionId,transcript:e.transcript})}function Rj({socket:e}){return(0,Er.jsx)(up,{children:(0,Er.jsxs)(qo,{element:(0,Er.jsx)(bU,{socket:e}),children:[(0,Er.jsx)(qo,{path:"sessions",element:(0,Er.jsx)(yme,{socket:e})}),(0,Er.jsx)(qo,{path:"backlog/*",element:(0,Er.jsx)(gme,{socket:e})}),(0,Er.jsx)(qo,{path:"news",element:(0,Er.jsx)(MU,{})}),(0,Er.jsx)(qo,{path:"usage",element:(0,Er.jsx)(Pj,{})}),(0,Er.jsx)(qo,{path:"backups",element:(0,Er.jsx)(PU,{})}),(0,Er.jsx)(qo,{path:"*",element:(0,Er.jsx)(wE,{to:"/sessions",replace:!0})})]})})}var OT=m(N(),1),vme=5e3;function Ej(e){let[t,r]=(0,OT.useState)(null);return(0,OT.useEffect)(()=>{if(!e){r(null);return}let o=!1,i=async()=>{try{let a=await(await fetch(`/api/git-status?cwd=${encodeURIComponent(e)}`)).json();o||r(a??null)}catch{o||r(null)}};i();let s=setInterval(i,vme);return()=>{o=!0,clearInterval(s)}},[e]),t}var Jn=m(x(),1),bme={display:"flex",alignItems:"center",gap:1,ml:2,fontFamily:"monospace",fontSize:13,cursor:"default"},_me={maxHeight:360,overflow:"auto",fontFamily:"monospace",fontSize:12},Sme={tooltip:{sx:{maxWidth:"none"}}},kj=[{key:"new",label:"New",prefix:"+",color:"success.main"},{key:"modified",label:"Modified",prefix:"~",color:"warning.main"},{key:"deleted",label:"Deleted",prefix:"-",color:"error.main"}];function xme({counts:e}){return(0,Jn.jsx)(Y,{sx:_me,children:kj.filter(t=>e[t.key].length>0).map(t=>(0,Jn.jsxs)(Y,{sx:{mb:.5,"&:last-child":{mb:0}},children:[(0,Jn.jsxs)(Y,{sx:{color:t.color,fontWeight:700},children:[t.label," (",e[t.key].length,")"]}),e[t.key].map(r=>(0,Jn.jsx)(Y,{sx:{pl:1,whiteSpace:"nowrap"},children:r},r))]},t.key))})}function Mj({cwd:e}){let t=Ej(e),r=t?kj.map(o=>({...o,count:t[o.key].length})).filter(o=>o.count>0):[];return!t||r.length===0?null:(0,Jn.jsx)(jt,{title:(0,Jn.jsx)(xme,{counts:t}),slotProps:Sme,children:(0,Jn.jsx)(Y,{sx:bme,children:r.map(o=>(0,Jn.jsxs)(Y,{component:"span",sx:{color:o.color},children:[o.prefix,o.count]},o.key))})})}var zh=m(x(),1),Tme=["/sessions","/backlog","/news"];function Aj(){let e=xo(),t=gr(),r=Tme.findIndex(i=>e.pathname.startsWith(i)),o=i=>{e.pathname!==i&&t(i)};return(0,zh.jsxs)(wg,{value:r===-1?0:r,textColor:"inherit",indicatorColor:"secondary",children:[(0,zh.jsx)(ql,{label:"Sessions",onClick:()=>o("/sessions")}),(0,zh.jsx)(ql,{label:"Backlog",onClick:()=>o("/backlog")}),(0,zh.jsx)(ql,{label:"News",onClick:()=>o("/news")})]})}var Oj=m(N(),1);var i5=m(x(),1);function Lj(e){return(0,i5.jsx)(wl,{viewBox:"-3 -3 30 30",...e,children:(0,i5.jsx)("path",{d:"M23.15 2.587L18.21.21a1.494 1.494 0 0 0-1.705.29l-9.46 8.63-4.12-3.128a.999.999 0 0 0-1.276.057L.327 7.261A1 1 0 0 0 .326 8.74L3.899 12 .326 15.26a1 1 0 0 0 .001 1.479L1.65 17.94a.999.999 0 0 0 1.276.057l4.12-3.128 9.46 8.63a1.492 1.492 0 0 0 1.704.29l4.942-2.377A1.5 1.5 0 0 0 24 20.06V3.939a1.5 1.5 0 0 0-.85-1.352zm-5.146 14.861L10.826 12l7.178-5.448v10.896z"})})}var ea=m(x(),1),wme={color:"inherit"};function Dj({cwd:e}){let[t,r]=(0,Oj.useState)(null);async function o(){try{let i=await fetch(`/api/open-in-code?cwd=${encodeURIComponent(e)}`,{method:"POST"});if(!i.ok){let s=await i.json().catch(()=>null);r(s?.error??"Failed to open VS Code")}}catch{r("Failed to open VS Code")}}return(0,ea.jsxs)(ea.Fragment,{children:[(0,ea.jsx)(jt,{title:"Open in VS Code",children:(0,ea.jsx)("span",{children:(0,ea.jsx)(Le,{sx:wme,disabled:!e,onClick:o,children:(0,ea.jsx)(Lj,{})})})}),(0,ea.jsx)(Mc,{error:t,onClose:()=>r(null)})]})}var BT=m(N(),1),DT=m(x(),1),Cme={color:"inherit"};function Bj({cwd:e}){let[t,r]=(0,BT.useState)(null);return(0,BT.useEffect)(()=>{if(!e){r(null);return}let o=!1;return(async()=>{try{let s=await(await fetch(`/api/github-url?cwd=${encodeURIComponent(e)}`)).json();o||r(s?.url??null)}catch{o||r(null)}})(),()=>{o=!0}},[e]),t?(0,DT.jsx)(jt,{title:"Open in GitHub",children:(0,DT.jsx)(Le,{sx:Cme,onClick:()=>window.open(t,"_blank"),children:(0,DT.jsx)(kx,{})})}):null}var Nj=m(N(),1);var IT=m(x(),1);function Ij({window:e,windowSeconds:t,fallbackLabel:r,now:o}){let i=e?.used_percentage;if(i==null)return null;let s=kT(i,e?.resets_at,t,o),n=e?.resets_at!=null?_j(e.resets_at,o):r;return(0,IT.jsxs)(Y,{component:"span",children:[(0,IT.jsxs)(Y,{component:"span",sx:{color:MT(s)},children:[Math.round(i),"%"]})," ",(0,IT.jsxs)(Y,{component:"span",sx:{color:"text.secondary"},children:["(",n,")"]})]})}var Wc=m(x(),1);function zj({rateLimits:e}){let t=LT(3e4),r=[{window:e.five_hour,windowSeconds:18e3,fallbackLabel:"5h"},{window:e.seven_day,windowSeconds:604800,fallbackLabel:"7d"}].filter(o=>o.window?.used_percentage!=null);return(0,Wc.jsx)(Wc.Fragment,{children:r.map((o,i)=>(0,Wc.jsxs)(Nj.Fragment,{children:[i>0?(0,Wc.jsx)(Y,{component:"span",sx:{color:"text.secondary",mr:.5},children:","}):null,(0,Wc.jsx)(Ij,{window:o.window,windowSeconds:o.windowSeconds,fallbackLabel:o.fallbackLabel,now:t})]},o.fallbackLabel))})}var NT=m(x(),1),Pme={display:"flex",alignItems:"center",ml:2,fontFamily:"monospace",fontSize:13};function Rme(e){return e?.five_hour?.used_percentage!=null||e?.seven_day?.used_percentage!=null}function Fj({rateLimits:e}){return Rme(e)?(0,NT.jsx)(jt,{title:"Claude account usage (5h / 7d windows) \u2014 view history",children:(0,NT.jsx)(us,{component:Ts,to:"/usage",underline:"hover",color:"inherit",sx:Pme,children:(0,NT.jsx)(zj,{rateLimits:e})})}):null}var $j=m(x(),1),Uj=ue((0,$j.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 yl=m(N(),1);var zT=[{target:"daemon",label:"Restart daemon",message:"This restarts the sessions daemon. Running claude 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 FT(e){return fetch(`/api/restart?target=${e}`,{method:"POST"})}var Eme=15e3;function Hj(e){let[t,r]=(0,yl.useState)(!1),[o,i]=(0,yl.useState)(null),s=(0,yl.useRef)(!1),n=(0,yl.useRef)(void 0);(0,yl.useEffect)(()=>{t&&(e?s.current=!0:s.current&&(clearTimeout(n.current),globalThis.location.reload()))},[t,e]),(0,yl.useEffect)(()=>()=>clearTimeout(n.current),[]);async function a(){r(!0),s.current=!1,n.current=setTimeout(()=>{r(!1),i("Web server did not come back")},Eme);try{if(!(await FT("webserver")).ok)throw new Error("restart failed")}catch{clearTimeout(n.current),r(!1),i("Failed to restart web server")}}return{pending:t,error:o,clearError:()=>i(null),restart:a}}var un=m(x(),1),kme={color:"inherit",mr:1.5};function jj({reconnecting:e}){let{pending:t,error:r,clearError:o,restart:i}=Hj(e);return(0,un.jsxs)(un.Fragment,{children:[(0,un.jsx)(jt,{title:"Restart web server",children:(0,un.jsx)("span",{children:(0,un.jsx)(Le,{sx:kme,disabled:t,onClick:i,children:t?(0,un.jsx)(at,{size:24}):(0,un.jsx)(Uj,{})})})}),(0,un.jsx)(Mc,{error:r,onClose:o})]})}var Fh=m(x(),1);function Mme(e){return e?yh(e)?(0,Fh.jsxs)("span",{style:{display:"flex",flexGrow:1,alignItems:"center",justifyContent:"space-between",gap:6,minWidth:0},children:[wp(e),(0,Fh.jsx)(Ec,{})]}):wp(e):"Select repo..."}function Wj({repos:e,selected:t,onSelect:r}){return(0,Fh.jsx)(gh,{label:Mme(t),children:o=>(0,Fh.jsx)(a$,{repos:e,selected:t,onSelect:r,close:o})})}var s5={"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 Ame(e){return e in s5}function Lme(e,t){let r=[...s5[e].args],o=t?.trim();return o&&r.push(o),r}function Vj(e,t,r,o,i){if(Ame(e)&&t){r(Lme(e,i),t);return}o(e)}var n5=Object.entries(s5).map(([e,{label:t,prompt:r,nav:o}])=>({value:e,label:t,prompt:r,nav:o})),qj="Enter prompt...";var Kj=m(N(),1);var $h=m(x(),1);function Ome(e,t){e.key==="Enter"&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),t.trim()!==""&&e.currentTarget.closest("form")?.requestSubmit())}function Gj({value:e,onChange:t,onSubmit:r}){return(0,$h.jsx)(et,{elevation:4,sx:{...mh,left:"auto",width:320},children:(0,$h.jsxs)(Oe,{component:"form",direction:"row",spacing:1,sx:{p:1,alignItems:"flex-start"},onSubmit:o=>{o.preventDefault(),r()},children:[(0,$h.jsx)(kn,{value:e,onChange:o=>t(o.target.value),onKeyDown:o=>Ome(o,e),placeholder:qj,size:"small",autoFocus:!0,fullWidth:!0,multiline:!0,maxRows:7,slotProps:{input:{sx:{fontSize:13}}}}),(0,$h.jsx)(Qe,{type:"submit",variant:"contained",size:"small",sx:{whiteSpace:"nowrap"},children:"Start"})]})})}var a5=m(x(),1);function $T({disabled:e,onSubmit:t,label:r="prompt",allowEmpty:o=!1}){let[i,s]=(0,Kj.useState)("");return(0,a5.jsx)(gh,{label:r,disabled:e,children:n=>(0,a5.jsx)(Gj,{value:i,onChange:s,onSubmit:()=>{!o&&!i.trim()||(t(i),s(""),n())}})})}var jp=m(x(),1),Dme={textTransform:"none",fontSize:11,fontWeight:600};function Yj({onSelect:e,disabled:t=!1,children:r}){return(0,jp.jsxs)(jp.Fragment,{children:[n5.filter(o=>o.nav&&o.prompt).map(o=>(0,jp.jsx)($T,{label:o.label,allowEmpty:!0,disabled:t,onSubmit:i=>e(o.value,i)},o.value)),r,n5.filter(o=>o.nav&&!o.prompt).map(o=>(0,jp.jsx)(Qe,{size:"small",variant:"outlined",disabled:t,onClick:()=>e(o.value),sx:Dme,children:o.label},o.value))]})}var Cv=m(N(),1);function UT(e){let[t,r]=(0,Cv.useState)([]),[o,i]=(0,Cv.useState)(!0);return(0,Cv.useEffect)(()=>{if(!e){r([]),i(!1);return}let s=!1;return i(!0),fetch(`/api/pr-list?cwd=${encodeURIComponent(e)}`).then(n=>n.json()).then(n=>{s||(r(Array.isArray(n?.prs)?n.prs:[]),i(!1))}).catch(()=>{s||(r([]),i(!1))}),()=>{s=!0}},[e]),{prs:t,loading:o}}var Qj=m(N(),1);var Xi=m(x(),1);function Zj({cwd:e,onPick:t,header:r}){let{prs:o,loading:i}=UT(e);return(0,Xi.jsxs)(et,{elevation:4,sx:{...mh,left:"auto",width:320},children:[r,i?(0,Xi.jsx)(Xj,{text:"Loading open PRs\u2026"}):o.length===0?(0,Xi.jsx)(Xj,{text:"No open PRs"}):(0,Xi.jsx)(Nu,{dense:!0,disablePadding:!0,children:o.map(s=>(0,Xi.jsx)(Bme,{pr:s,onPick:t},s.number))})]})}function Bme({pr:e,onPick:t}){return(0,Xi.jsx)(go,{onMouseDown:r=>r.preventDefault(),onClick:()=>t(e),sx:{alignItems:"flex-start",py:.75,whiteSpace:"normal"},children:(0,Xi.jsxs)(Oe,{spacing:.25,sx:{minWidth:0},children:[(0,Xi.jsx)(K,{sx:{fontSize:13,lineHeight:1.3,fontWeight:500},children:e.title}),(0,Xi.jsxs)(K,{sx:{fontSize:11,color:"text.secondary"},children:["#",e.number," \xB7 ",e.author," \xB7 ",Sc(e.createdAt)]})]})})}function Xj({text:e}){return(0,Xi.jsx)(Y,{sx:{p:1.5},children:(0,Xi.jsx)(K,{sx:{fontSize:13,color:"text.secondary"},children:e})})}var ta=m(x(),1);function Jj({cwd:e,onSelect:t,close:r}){let[o,i]=(0,Qj.useState)("review");return(0,ta.jsx)(Zj,{cwd:e,header:(0,ta.jsxs)(vC,{row:!0,value:o,onChange:s=>i(s.target.value),sx:{px:1.5,py:.5},children:[(0,ta.jsx)(wn,{value:"review",control:(0,ta.jsx)(fg,{size:"small"}),label:"Review",onMouseDown:s=>s.preventDefault(),slotProps:{typography:{sx:{fontSize:13}}}}),(0,ta.jsx)(wn,{value:"review-comments",control:(0,ta.jsx)(fg,{size:"small"}),label:"Address Comments",onMouseDown:s=>s.preventDefault(),slotProps:{typography:{sx:{fontSize:13}}}}),(0,ta.jsx)(wn,{value:"review-post",control:(0,ta.jsx)(fg,{size:"small"}),label:"Review & post",onMouseDown:s=>s.preventDefault(),slotProps:{typography:{sx:{fontSize:13}}}})]}),onPick:s=>{t(s,o),r()}})}var l5=m(x(),1);function eW({cwd:e,disabled:t,onSelect:r}){let{prs:o,loading:i}=UT(e);return i||o.length===0?null:(0,l5.jsx)(gh,{label:"review",disabled:t,children:s=>(0,l5.jsx)(Jj,{cwd:e,onSelect:r,close:s})})}function tW(e){switch(e){case"review-comments":return["review-comments"];case"review-post":return["review","--no-prompt","--submit"];default:return["review"]}}var Uh=m(x(),1);function rW({onCreate:e,onCreateAssist:t}){let{selectedCwd:r}=Fn(),o=!r;return(0,Uh.jsx)(Oe,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:(0,Uh.jsxs)(Yj,{disabled:o,onSelect:(i,s)=>Vj(i,r,t,()=>{},s),children:[(0,Uh.jsx)($T,{allowEmpty:!0,disabled:o,onSubmit:i=>e(i,r)}),(0,Uh.jsx)(eW,{cwd:r,disabled:o,onSelect:(i,s)=>t([...tW(s),String(i.number)],r,Ax(i))})]})})}var Zi=m(x(),1),Ime={minHeight:48,pl:1,pr:14},Nme={width:240,ml:2};function oW({socket:e,selection:t}){return(0,Zi.jsxs)(Fu,{variant:"dense",disableGutters:!0,sx:Ime,children:[(0,Zi.jsx)(jj,{reconnecting:e.reconnecting}),(0,Zi.jsx)(Aj,{}),(0,Zi.jsx)(Y,{sx:Nme,children:(0,Zi.jsx)(Wj,{repos:t.repos,selected:t.selectedCwd,onSelect:t.setSelectedCwd})}),(0,Zi.jsx)(Mj,{cwd:t.selectedCwd}),(0,Zi.jsxs)(Y,{sx:{display:"flex",ml:1,mr:2},children:[(0,Zi.jsx)(Dj,{cwd:t.selectedCwd}),(0,Zi.jsx)(Bj,{cwd:t.selectedCwd})]}),(0,Zi.jsx)(rW,{onCreate:e.createSession,onCreateAssist:e.createAssistSession}),(0,Zi.jsx)(Fj,{rateLimits:e.rateLimits})]})}var jT=m(N(),1);var iW=m(x(),1),sW=ue((0,iW.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 nW=m(x(),1),aW=ue((0,nW.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 lW=m(x(),1),cW=ue((0,lW.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 c5=m(x(),1);function uW({mode:e}){return e==="dark"?(0,c5.jsx)(cW,{fontSize:"small"}):(0,c5.jsx)(aW,{fontSize:"small"})}var ei=m(x(),1);function pW({mode:e,onToggleColorMode:t,onRestart:r,onUpdate:o}){return[(0,ei.jsxs)(go,{onClick:t,children:[(0,ei.jsx)(Qm,{children:(0,ei.jsx)(uW,{mode:e})}),(0,ei.jsx)(eg,{children:"Toggle dark mode"})]},"color-mode"),(0,ei.jsx)(Fl,{},"restart-divider"),...zT.map(i=>(0,ei.jsxs)(go,{onClick:()=>r(i.target),children:[(0,ei.jsx)(Qm,{children:(0,ei.jsx)(Mx,{fontSize:"small"})}),(0,ei.jsx)(eg,{children:i.label})]},i.target)),(0,ei.jsxs)(go,{onClick:o,children:[(0,ei.jsx)(Qm,{children:(0,ei.jsx)(sW,{fontSize:"small"})}),(0,ei.jsx)(eg,{children:"Update assist"})]},"update")]}var dW=m(x(),1),fW=ue((0,dW.jsx)("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}),"Menu");var u5=m(x(),1),hW=ue([(0,u5.jsx)("path",{d:"M12 5.99 19.53 19H4.47zM12 2 1 21h22z"},"0"),(0,u5.jsx)("path",{d:"M13 16h-2v2h2zm0-6h-2v5h2z"},"1")],"WarningAmber");var Pv="0.362.0";var HT=m(N(),1),p5=(0,HT.createContext)(null);function mW(){return(0,HT.useContext)(p5)}var Vc=m(x(),1);function gW(){let e=mW();return Pv?(0,Vc.jsxs)(Vc.Fragment,{children:[(0,Vc.jsxs)(K,{variant:"caption",sx:{opacity:.4,userSelect:"none",lineHeight:1},children:["v",Pv]}),e&&e!==Pv&&(0,Vc.jsx)(jt,{title:`Daemon is running v${e}, but this page was served by v${Pv}. Restart the daemon to match.`,children:(0,Vc.jsx)(hW,{fontSize:"small",color:"warning","aria-label":"Version mismatch"})})]}):null}var Hh=m(x(),1);function yW({open:e,onOpen:t}){return(0,Hh.jsxs)(Y,{sx:{position:"fixed",top:8,right:16,zIndex:r=>r.zIndex.drawer+2,display:"flex",alignItems:"center",gap:.5,color:"inherit"},children:[(0,Hh.jsx)(gW,{}),(0,Hh.jsx)(Le,{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,Hh.jsx)(fW,{fontSize:"small"})})]})}var bW=m(x(),1);function vW({target:e,onClose:t}){let r=zT.find(o=>o.target===e);return r?(0,bW.jsx)(yi,{title:r.label,message:r.message,confirmLabel:"Restart",onConfirm:()=>{FT(e),t()},onCancel:t}):null}var SW=m(x(),1);function _W({onConfirm:e,onClose:t}){return(0,SW.jsx)(yi,{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 vl=m(x(),1);function xW({mode:e,toggle:t}){let[r,o]=(0,jT.useState)(null),[i,s]=(0,jT.useState)(null),[n,a]=(0,jT.useState)(!1),{launchAssist:l}=wc(),c=!!r;return(0,vl.jsxs)(vl.Fragment,{children:[(0,vl.jsx)(yW,{open:c,onOpen:o}),(0,vl.jsx)(zu,{anchorEl:r,open:c,onClose:()=>o(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:pW({mode:e,onToggleColorMode:()=>{t(),o(null)},onRestart:u=>{o(null),s(u)},onUpdate:()=>{o(null),a(!0)}})}),i&&(0,vl.jsx)(vW,{target:i,onClose:()=>s(null)}),n&&(0,vl.jsx)(_W,{onConfirm:()=>l(["update"]),onClose:()=>a(!1)})]})}var WT=m(x(),1);function TW({notice:e,onClose:t,onView:r}){let o=e?.sessionId??null;return(0,WT.jsx)(Pn,{open:e!==null,autoHideDuration:6e3,onClose:t,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,WT.jsx)(Ho,{severity:"success",variant:"filled",onClose:t,action:o!==null?(0,WT.jsx)(Qe,{color:"inherit",size:"small",onClick:()=>r(o),children:"View"}):void 0,children:e?.message})})}var VT=m(x(),1);function wW({reconnecting:e}){return(0,VT.jsx)(Pn,{open:e,anchorOrigin:{vertical:"bottom",horizontal:"center"},children:(0,VT.jsx)(Ho,{severity:"info",variant:"filled",icon:(0,VT.jsx)(at,{size:16,color:"inherit"}),children:"Reconnecting\u2026"})})}var Wp=m(N(),1);function CW(e,t){let r=new Set,o=[];for(let i of t)i.cwd&&!r.has(i.cwd)&&(r.add(i.cwd),o.push(i.cwd));return e&&!r.has(e)&&o.unshift(e),o}function PW(e,t){let[r,o]=(0,Wp.useState)(e);(0,Wp.useEffect)(()=>{e&&!r&&o(e)},[e,r]);let i=(0,Wp.useMemo)(()=>CW(e,t),[e,t]);return(0,Wp.useMemo)(()=>({repos:i,selectedCwd:r,setSelectedCwd:o}),[i,r])}var qT=m(N(),1);function RW(e){let t=(0,qT.useMemo)(()=>({launchAssist:e.createAssistSession}),[e.createAssistSession]),r=gr(),o=(0,qT.useCallback)(i=>{e.selectSession(i),r("/sessions"),e.clearSuccess()},[r,e.selectSession,e.clearSuccess]);return{launch:t,viewLaunchedSession:o}}var uV=m(N(),1);var EW=m(N(),1);function GT(e,t,r){if(!e)return;let o=t.find(s=>s.id===e);return o?o.cwd:r.find(s=>s.sessionId===e)?.cwd}function kW(e,t,r,o){let i=GT(e,t,r);(0,EW.useEffect)(()=>{e&&i&&o({type:"set-active",cwd:i,sessionId:e})},[e,i,o])}var KT=m(N(),1);function MW(e,t){let r=(0,KT.useRef)(new Map);(0,KT.useEffect)(()=>{let o=new Set;for(let{id:i,status:s}of e)o.add(i),r.current.get(i)!==s&&(r.current.set(i,s),console.debug(`[sessions] render session ${i} status=${s}`),t({type:"ui-status",sessionId:i,status:s}));for(let i of r.current.keys())o.has(i)||r.current.delete(i)},[e,t])}var Qi=m(N(),1);function AW(e){return(t,r)=>e({type:"create",prompt:t||void 0,cwd:r})}function LW(e){return(t,r,o)=>e({type:"create-assist",assistArgs:t,cwd:r,title:o?.title,subtitle:o?.subtitle})}function OW(e){return(t,r,o)=>e({type:"resume",sessionId:t,cwd:r,name:o})}function DW(e,t){return r=>{t.delete(r),e({type:"retry",sessionId:r})}}function BW(e,t){return r=>{t.delete(r),e({type:"restart",sessionId:r})}}function IW(e,t,r){return o=>{e({type:"dismiss",sessionId:o}),t.delete(o),r.delete(o)}}function NW(e){return(t,r)=>e({type:"set-autorun",sessionId:t,enabled:r})}function zW(e){return(t,r)=>e({type:"set-autoadvance",sessionId:t,enabled:r})}function FW(e){return(t,r)=>e({type:"input",sessionId:t,data:r})}function $W(e){return(t,r,o)=>e({type:"resize",sessionId:t,cols:r,rows:o})}function UW(e,t){return(r,o)=>{let i=e.get(r);return i&&o(i),t.set(r,o),()=>t.delete(r)}}function HW(e,t,r){let o={createSession:(0,Qi.useMemo)(()=>AW(e),[e]),createAssistSession:(0,Qi.useMemo)(()=>LW(e),[e]),resumeSession:(0,Qi.useMemo)(()=>OW(e),[e]),sendInput:(0,Qi.useMemo)(()=>FW(e),[e]),sendResize:(0,Qi.useMemo)(()=>$W(e),[e]),setAutoRun:(0,Qi.useMemo)(()=>NW(e),[e]),setAutoAdvance:(0,Qi.useMemo)(()=>zW(e),[e])},i=(0,Qi.useMemo)(()=>UW(t.current,r.current),[t,r]),s=(0,Qi.useCallback)(l=>{DW(e,t.current)(l)},[e,t]),n=(0,Qi.useCallback)(l=>{BW(e,t.current)(l)},[e,t]),a=(0,Qi.useCallback)(l=>{IW(e,t.current,r.current)(l)},[e,t,r]);return{...o,onOutput:i,retrySession:s,restartSession:n,dismissSession:a}}var YT=m(N(),1);function jW(e,t,r){let o=(0,YT.useCallback)(n=>{r(n),e({type:"fetch-transcript",sessionId:n})},[e,r]),i=(0,YT.useCallback)(()=>{r(null)},[r]),s=(0,YT.useCallback)(n=>{r(null),t(n)},[t,r]);return{viewTranscript:o,clearTranscript:i,selectSession:s}}var pn=m(N(),1);var VW=m(N(),1);function WW(e,t,r=null){return t!==null?e.some(o=>o.id===t)?t:e[0]?.id??null:r&&e.some(o=>o.id===r)?r:e[0]?.id??null}function qW(e,t,r){let o=xo().pathname,i=o.startsWith("/backlog")||o.startsWith("/usage");(0,VW.useEffect)(()=>{if(i){t(null);return}t(s=>WW(e,s,r))},[e,t,r,i])}var d5=m(N(),1);function GW(){let[e,t]=(0,d5.useState)(null),[r,o]=(0,d5.useState)(null);return{daemonActiveId:e,setDaemonActiveId:t,daemonVersion:r,setDaemonVersion:o}}var Vp=m(N(),1);function KW(e,t){if(!t.some(o=>e.has(o)))return e;let r=new Set(e);for(let o of t)r.delete(o);return r}function YW(e,t){let r=[];for(let o of t){let i=e.get(o.id);i!==void 0&&i!==o.startedAt&&r.push(o.id)}return r}function XW(){let[e,t]=(0,Vp.useState)(new Set),r=(0,Vp.useRef)(new Map),o=(0,Vp.useCallback)(s=>{t(n=>n.has(s)?n:new Set(n).add(s))},[]),i=(0,Vp.useCallback)(s=>{let n=YW(r.current,s);r.current=new Map(s.map(a=>[a.id,a.startedAt])),n.length&&t(a=>KW(a,n))},[]);return{initialized:e,markInitialized:o,syncSessions:i}}var jh=m(N(),1);function ZW(){let[e,t]=(0,jh.useState)(null),[r,o]=(0,jh.useState)(null),i=(0,jh.useCallback)(()=>t(null),[]),s=(0,jh.useCallback)(()=>o(null),[]);return{error:e,setError:t,clearError:i,success:r,setSuccess:o,clearSuccess:s}}var QW=m(N(),1);function JW(e,t){return(0,QW.useCallback)(r=>{e(r),t(r)},[e,t])}var qc=m(N(),1);function eV(e,t){let r=e.sessionId;t.buffers.current?.delete(r),t.handlers.current?.get(r)?.("\x1Bc")}function tV(e,t){let r=e.sessionId;t.setViewingTranscriptSessionId(null),t.setActiveId(r),e.isNew&&t.setSuccess({message:"New session started",sessionId:r})}function rV(e,t){let r=e.sessionId,o=t.buffers.current?.get(r)??"";t.buffers.current?.set(r,o+e.data),t.handlers.current?.get(r)?.(e.data),t.markInitialized(r)}function oV(e,t){let r=new Set(t.map(i=>i.id)),o=null;for(let i of Object.values(e))r.has(i)&&(o=i);return o}function iV(e,t){let r=e.sessions;t.setSessions(r),e.cwd&&t.setCurrentCwd(e.cwd);let o=e.active??{};t.setDaemonActiveId(oV(o,r))}function sV(e,t){switch(e.type){case"sessions":iV(e,t);break;case"created":tV(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":t.setError(e.message);break;case"limits":t.setRateLimits(e.rateLimits);break;case"clear":eV(e,t);break;case"output":rV(e,t);break}}function nV(e,t={}){let r=location.protocol==="https:"?"wss:":"ws:",o=new WebSocket(`${r}//${location.host}/ws`);return o.onopen=()=>{t.onOpen?.(),o.send(JSON.stringify({type:"hello"})),o.send(JSON.stringify({type:"history"}))},o.onmessage=i=>{sV(JSON.parse(i.data),e)},o.onclose=()=>t.onClose?.(),o}function aV(e,t,r,o){let i=!1,s,n=0,a=!1,l=()=>{i||t(nV(e,{onOpen:()=>{a&&r(),a=!1,o(!1),n=0},onClose:()=>{if(i)return;a=!0,o(!0);let c=Math.min(300*2**n,2e3);n+=1,s=setTimeout(l,c)}}))};return l(),()=>{i=!0,s&&clearTimeout(s)}}function lV(e){let t=(0,qc.useRef)(null),[r,o]=(0,qc.useState)(!1),{handleSessions:i,markInitialized:s,buffers:n,handlers:a}=e;(0,qc.useEffect)(()=>{let c=()=>{n.current?.clear();let p=a.current;if(p)for(let f of p.values())f("\x1Bc")},u=aV({...e,setSessions:i},p=>{t.current=p},c,o);return()=>{u(),t.current?.close()}},[i,s,n,a]);let l=(0,qc.useCallback)(()=>{let c=t.current;c?.readyState===WebSocket.OPEN&&c.send(JSON.stringify({type:"history"}))},[]);return{wsRef:t,requestHistory:l,reconnecting:r}}function cV(){let[e,t]=(0,pn.useState)([]),[r,o]=(0,pn.useState)([]),[i,s]=(0,pn.useState)(null),n=GW(),[a,l]=(0,pn.useState)(null),[c,u]=(0,pn.useState)(null),[p,f]=(0,pn.useState)(""),d=ZW(),[h,g]=(0,pn.useState)(null),{initialized:S,markInitialized:y,syncSessions:v}=XW(),b=(0,pn.useRef)(new Map),_=(0,pn.useRef)(new Map),C=JW(v,t),{wsRef:P,requestHistory:k,reconnecting:L}=lV({handleSessions:C,setHistory:o,setActiveId:s,...n,setTranscript:l,setViewingTranscriptSessionId:u,setCurrentCwd:f,...d,setRateLimits:g,markInitialized:y,buffers:b,handlers:_});return qW(e,s,n.daemonActiveId),{sessions:e,history:r,activeId:i,setActiveId:s,daemonVersion:n.daemonVersion,transcript:a,viewingTranscriptSessionId:c,setViewingTranscriptSessionId:u,currentCwd:p,...d,rateLimits:h,initialized:S,wsRef:P,buffers:b,handlers:_,requestHistory:k,reconnecting:L}}function pV(){let{sessions:e,history:t,activeId:r,setActiveId:o,daemonVersion:i,transcript:s,viewingTranscriptSessionId:n,setViewingTranscriptSessionId:a,currentCwd:l,error:c,clearError:u,success:p,clearSuccess:f,rateLimits:d,initialized:h,wsRef:g,buffers:S,handlers:y,requestHistory:v,reconnecting:b}=cV(),_=(0,uV.useCallback)(B=>{let I=g.current;I?.readyState===WebSocket.OPEN&&I.send(JSON.stringify(B))},[g]),C=HW(_,S,y);kW(r,e,t,_),MW(e,_);let{viewTranscript:P,clearTranscript:k,selectSession:L}=jW(_,o,a);return{sessions:e,history:t,activeId:r,setActiveId:o,daemonVersion:i,selectSession:L,transcript:s,viewingTranscriptSessionId:n,viewTranscript:P,clearTranscript:k,currentCwd:l,error:c,clearError:u,success:p,clearSuccess:f,rateLimits:d,initialized:h,...C,requestHistory:v,reconnecting:b}}var dV=m(N(),1);function fV(e,t,r,o){let i=GT(e,t,r);(0,dV.useEffect)(()=>{i&&o(i)},[i,o])}var Ji=m(x(),1),zme={zIndex:e=>e.zIndex.drawer+1},Fme={minHeight:48};function hV({mode:e,toggle:t}){let r=pV(),o=PW(r.currentCwd,r.history);fV(r.activeId,r.sessions,r.history,o.setSelectedCwd);let{launch:i,viewLaunchedSession:s}=RW(r);return(0,Ji.jsx)(OE.Provider,{value:o,children:(0,Ji.jsxs)(IE.Provider,{value:i,children:[(0,Ji.jsx)(p5.Provider,{value:r.daemonVersion,children:(0,Ji.jsx)(xW,{mode:e,toggle:t})}),(0,Ji.jsx)(gw,{position:"fixed",elevation:1,sx:zme,children:(0,Ji.jsx)(oW,{socket:r,selection:o})}),(0,Ji.jsx)(Fu,{variant:"dense",sx:Fme}),(0,Ji.jsx)(Rj,{socket:r}),(0,Ji.jsx)(wW,{reconnecting:r.reconnecting}),(0,Ji.jsx)(Mc,{error:r.error,onClose:r.clearError}),(0,Ji.jsx)(TW,{notice:r.success,onClose:r.clearSuccess,onView:s})]})})}var mV=m(N(),1);function gV(){let[e,t]=(0,mV.useState)(()=>{try{return localStorage.getItem("theme-mode")??"dark"}catch{return"dark"}});return{mode:e,toggle:()=>t(o=>{let i=o==="dark"?"light":"dark";try{localStorage.setItem("theme-mode",i)}catch{}return i})}}var qp=m(x(),1),$me={MuiButtonBase:{styleOverrides:{root:{cursor:"pointer","&.Mui-disabled":{cursor:"default"}}}},MuiLink:{styleOverrides:{root:{cursor:"pointer"}}}};function Ume(){let{mode:e,toggle:t}=gV(),r=(0,vV.useMemo)(()=>bn({palette:{mode:e,...e==="dark"&&{background:{default:"#1e1e1e",paper:"#252526"}}},components:$me}),[e]);return(0,qp.jsxs)(Ob,{theme:r,children:[(0,qp.jsx)(h_,{}),(0,qp.jsx)(AE,{children:(0,qp.jsx)(hV,{mode:e,toggle:t})})]})}var yV=document.getElementById("app");yV&&(0,bV.createRoot)(yV).render((0,qp.jsx)(Ume,{}));})();
|
|
383
383
|
/*! Bundled license information:
|
|
384
384
|
|
|
385
385
|
react/cjs/react.production.js:
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Associate a Jira ticket with a backlog item
|
|
3
|
-
allowed_args: "<JIRA-KEY> [backlog item id]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
You are associating a Jira ticket with a backlog item by calling the `assist backlog associate-jira` CLI command, which validates the key, confirms the issue exists in Jira, and stores it on the item.
|
|
7
|
-
|
|
8
|
-
## Step 1: Parse arguments
|
|
9
|
-
|
|
10
|
-
`$ARGUMENTS` contains a Jira key (e.g. `PROJ-123`) and an optional backlog item id. Identify which token is the Jira key (matches `[A-Z]+-\d+`) and which, if any, is the item id (a bare number).
|
|
11
|
-
|
|
12
|
-
## Step 2: Resolve the target item
|
|
13
|
-
|
|
14
|
-
If an explicit item id was provided, use it.
|
|
15
|
-
|
|
16
|
-
Otherwise, use the backlog item this session is working on — the one you are implementing, reviewing, or otherwise focused on (e.g. via `/next-backlog-item`, a `backlog run`, or earlier in this conversation). Use its id directly.
|
|
17
|
-
|
|
18
|
-
If there is no explicit id and this session is not working on a backlog item, there is nothing to associate the key with — tell the user and ask them to pass an explicit item id.
|
|
19
|
-
|
|
20
|
-
## Step 3: Associate the key
|
|
21
|
-
|
|
22
|
-
Call the CLI command with the resolved id and the Jira key:
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
assist backlog associate-jira <id> <JIRA-KEY> 2>&1
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
The command validates the key shape, fetches the issue to confirm it exists, prints its title, and stores the key. To remove an existing association instead, run:
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
assist backlog associate-jira <id> --clear 2>&1
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Display the command output so the user can see the result. If the command reports an error (item not found, malformed key, or the issue could not be fetched), relay it to the user — no key is stored on failure.
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Post a concise summary of this session's findings to a Jira ticket
|
|
3
|
-
allowed_args: "[JIRA-KEY]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
You are posting a concise comment summarising this session's findings to a Jira ticket via the Atlassian MCP. If a key is passed it is first attached to the session's current backlog item; otherwise the key is read from that item.
|
|
7
|
-
|
|
8
|
-
## Step 1: Resolve the session's backlog item
|
|
9
|
-
|
|
10
|
-
Determine the backlog item this session is working on — the one you are implementing, reviewing, or otherwise focused on (e.g. via `/next-backlog-item`, a `backlog run`, or earlier in this conversation). You need its id for the steps below.
|
|
11
|
-
|
|
12
|
-
## Step 2: Resolve the Jira key
|
|
13
|
-
|
|
14
|
-
If `$ARGUMENTS` contains a Jira key (matches `[A-Z]+-\d+`), attach it to the session's current backlog item, then use it:
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
assist backlog associate-jira <id> <JIRA-KEY> 2>&1
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
If the command reports an error (item not found, malformed key, or the issue could not be fetched), relay it to the user and stop — no key is stored on failure.
|
|
21
|
-
|
|
22
|
-
If no key was passed, read it from the session item:
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
assist backlog show <id> 2>&1
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Use the `Jira: <KEY>` line from the output.
|
|
29
|
-
|
|
30
|
-
If no key can be resolved — none was passed and the item has no associated key (or there is no session item) — tell the user clearly that there is nothing to post to and do nothing further. Do not guess a key.
|
|
31
|
-
|
|
32
|
-
## Step 3: Fetch the issue and resolve the comment target
|
|
33
|
-
|
|
34
|
-
Fetch the issue with the `mcp__claude_ai_Atlassian__getJiraIssue` tool, requesting fields including `issuetype` and `parent`.
|
|
35
|
-
|
|
36
|
-
If `fields.issuetype` indicates a sub-task (`fields.issuetype.subtask` is true), retarget the comment to the parent: use `fields.parent.key` as the issue you comment on. Otherwise comment on the key itself.
|
|
37
|
-
|
|
38
|
-
## Step 4: Compose a concise comment
|
|
39
|
-
|
|
40
|
-
Draft a terse summary of this session's findings from the conversation context:
|
|
41
|
-
|
|
42
|
-
- One summary line stating what was done or found.
|
|
43
|
-
- A few short bullets with the concrete specifics (files, decisions, outcomes).
|
|
44
|
-
|
|
45
|
-
Keep it concise: no headers, no wall of text, no restating the whole session. If there is little of substance to report, keep it to the single summary line.
|
|
46
|
-
|
|
47
|
-
Do not mention `assist`, the assist backlog, or any backlog item number in the comment — the Jira ticket is outward-facing and must not leak internal tooling references. Refer to commits, PRs, or the work itself instead.
|
|
48
|
-
|
|
49
|
-
## Step 5: Preview and confirm before posting
|
|
50
|
-
|
|
51
|
-
Show the drafted comment and the target issue key to the user. Do not post until the user explicitly confirms. If they ask for edits, revise and show the updated draft again.
|
|
52
|
-
|
|
53
|
-
Once confirmed, post it with the `mcp__claude_ai_Atlassian__addCommentToJiraIssue` tool, using the resolved target key and `contentFormat: markdown`. Display the result so the user can see it landed.
|