dmux 5.6.0 → 5.6.2
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/dist/DmuxApp.d.ts.map +1 -1
- package/dist/DmuxApp.js +38 -13
- package/dist/DmuxApp.js.map +1 -1
- package/dist/components/popups/projectSelectPopup.d.ts +6 -0
- package/dist/components/popups/projectSelectPopup.d.ts.map +1 -1
- package/dist/components/popups/projectSelectPopup.js +23 -4
- package/dist/components/popups/projectSelectPopup.js.map +1 -1
- package/dist/components/popups/reopenWorktreePopup.d.ts +34 -2
- package/dist/components/popups/reopenWorktreePopup.d.ts.map +1 -1
- package/dist/components/popups/reopenWorktreePopup.js +321 -66
- package/dist/components/popups/reopenWorktreePopup.js.map +1 -1
- package/dist/hooks/useInputHandling.d.ts +4 -1
- package/dist/hooks/useInputHandling.d.ts.map +1 -1
- package/dist/hooks/useInputHandling.js +67 -22
- package/dist/hooks/useInputHandling.js.map +1 -1
- package/dist/hooks/useNavigation.d.ts.map +1 -1
- package/dist/hooks/useNavigation.js +7 -8
- package/dist/hooks/useNavigation.js.map +1 -1
- package/dist/services/PaneAnalyzer.d.ts +1 -1
- package/dist/services/PaneAnalyzer.d.ts.map +1 -1
- package/dist/services/PaneAnalyzer.js +5 -2
- package/dist/services/PaneAnalyzer.js.map +1 -1
- package/dist/services/PopupManager.d.ts +11 -8
- package/dist/services/PopupManager.d.ts.map +1 -1
- package/dist/services/PopupManager.js +50 -8
- package/dist/services/PopupManager.js.map +1 -1
- package/dist/services/StatusDetector.d.ts.map +1 -1
- package/dist/services/StatusDetector.js +1 -1
- package/dist/services/StatusDetector.js.map +1 -1
- package/dist/services/WorktreeCleanupService.d.ts +2 -0
- package/dist/services/WorktreeCleanupService.d.ts.map +1 -1
- package/dist/services/WorktreeCleanupService.js +68 -6
- package/dist/services/WorktreeCleanupService.js.map +1 -1
- package/dist/utils/generated-agents-doc.d.ts +1 -1
- package/dist/utils/generated-agents-doc.js +1 -1
- package/dist/utils/paneAttentionHeuristics.d.ts +1 -0
- package/dist/utils/paneAttentionHeuristics.d.ts.map +1 -1
- package/dist/utils/paneAttentionHeuristics.js +89 -9
- package/dist/utils/paneAttentionHeuristics.js.map +1 -1
- package/dist/utils/paneCreation.d.ts +5 -0
- package/dist/utils/paneCreation.d.ts.map +1 -1
- package/dist/utils/paneCreation.js +88 -71
- package/dist/utils/paneCreation.js.map +1 -1
- package/dist/utils/projectRoot.d.ts +8 -0
- package/dist/utils/projectRoot.d.ts.map +1 -1
- package/dist/utils/projectRoot.js +73 -6
- package/dist/utils/projectRoot.js.map +1 -1
- package/dist/utils/reopenWorktree.d.ts +2 -0
- package/dist/utils/reopenWorktree.d.ts.map +1 -1
- package/dist/utils/reopenWorktree.js +5 -4
- package/dist/utils/reopenWorktree.js.map +1 -1
- package/dist/utils/resumeBranches.d.ts +29 -0
- package/dist/utils/resumeBranches.d.ts.map +1 -0
- package/dist/utils/resumeBranches.js +640 -0
- package/dist/utils/resumeBranches.js.map +1 -0
- package/dist/workers/PaneWorker.js +30 -17
- package/dist/workers/PaneWorker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,17 +1,66 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Popup for
|
|
4
|
-
* Shows a list of orphaned worktrees that can be reopened
|
|
3
|
+
* Popup for resuming local or remote branches.
|
|
5
4
|
*/
|
|
6
|
-
import React, { useState } from 'react';
|
|
5
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
7
6
|
import { render, Box, Text, useInput, useApp } from 'ink';
|
|
8
7
|
import * as fs from 'fs';
|
|
8
|
+
import { pathToFileURL } from 'url';
|
|
9
9
|
import { PopupContainer, PopupWrapper, writeSuccessAndExit } from './shared/index.js';
|
|
10
|
-
import {
|
|
10
|
+
import { POPUP_CONFIG } from './config.js';
|
|
11
|
+
import { getResumableBranches } from '../../utils/resumeBranches.js';
|
|
12
|
+
const MAX_VISIBLE_WORKTREES = 8;
|
|
13
|
+
const CONTENT_BOX_WIDTH = 72;
|
|
14
|
+
const CONTENT_INNER_WIDTH = CONTENT_BOX_WIDTH - 4;
|
|
15
|
+
const BRANCH_COLUMN_WIDTH = 34;
|
|
16
|
+
const LAST_WORKED_COLUMN_WIDTH = 16;
|
|
17
|
+
const SOURCE_FILTERS = [
|
|
18
|
+
{ key: 'worktrees', label: 'Worktrees' },
|
|
19
|
+
{ key: 'local', label: 'Local' },
|
|
20
|
+
{ key: 'remote', label: 'Remote' },
|
|
21
|
+
];
|
|
22
|
+
function toPopupBranch(worktree) {
|
|
23
|
+
return {
|
|
24
|
+
branchName: worktree.branchName,
|
|
25
|
+
slug: worktree.slug,
|
|
26
|
+
path: worktree.path,
|
|
27
|
+
lastModified: worktree.lastModified?.toISOString(),
|
|
28
|
+
hasUncommittedChanges: worktree.hasUncommittedChanges,
|
|
29
|
+
hasWorktree: worktree.hasWorktree,
|
|
30
|
+
hasLocalBranch: worktree.hasLocalBranch,
|
|
31
|
+
hasRemoteBranch: worktree.hasRemoteBranch,
|
|
32
|
+
isRemote: worktree.isRemote,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function loadRemoteResumableBranches(projectRoot, activePaneSlugs) {
|
|
36
|
+
return getResumableBranches(projectRoot, activePaneSlugs, {
|
|
37
|
+
includeRemoteBranches: true,
|
|
38
|
+
}).map((candidate) => toPopupBranch(candidate));
|
|
39
|
+
}
|
|
40
|
+
function isFilterTypingInput(input, key) {
|
|
41
|
+
if (!input) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (key.ctrl || key.meta || key.return || key.tab || key.escape) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
if (key.upArrow
|
|
48
|
+
|| key.downArrow
|
|
49
|
+
|| key.leftArrow
|
|
50
|
+
|| key.rightArrow
|
|
51
|
+
|| key.pageUp
|
|
52
|
+
|| key.pageDown) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
11
57
|
/**
|
|
12
58
|
* Format relative time (e.g., "2 hours ago", "3 days ago")
|
|
13
59
|
*/
|
|
14
60
|
function formatRelativeTime(dateStr) {
|
|
61
|
+
if (!dateStr) {
|
|
62
|
+
return '--';
|
|
63
|
+
}
|
|
15
64
|
const date = new Date(dateStr);
|
|
16
65
|
const now = new Date();
|
|
17
66
|
const diffMs = now.getTime() - date.getTime();
|
|
@@ -30,78 +79,275 @@ function formatRelativeTime(dateStr) {
|
|
|
30
79
|
}
|
|
31
80
|
return 'just now';
|
|
32
81
|
}
|
|
33
|
-
|
|
34
|
-
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
35
|
-
const { exit } = useApp();
|
|
36
|
-
const maxVisible = 8;
|
|
37
|
-
useInput((input, key) => {
|
|
38
|
-
if (key.upArrow) {
|
|
39
|
-
setSelectedIndex(Math.max(0, selectedIndex - 1));
|
|
40
|
-
}
|
|
41
|
-
else if (key.downArrow) {
|
|
42
|
-
setSelectedIndex(Math.min(worktrees.length - 1, selectedIndex + 1));
|
|
43
|
-
}
|
|
44
|
-
else if (key.return && worktrees.length > 0) {
|
|
45
|
-
// User selected a worktree to reopen
|
|
46
|
-
const selected = worktrees[selectedIndex];
|
|
47
|
-
writeSuccessAndExit(resultFile, { slug: selected.slug, path: selected.path }, exit);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
if (worktrees.length === 0) {
|
|
51
|
-
return (React.createElement(PopupWrapper, { resultFile: resultFile },
|
|
52
|
-
React.createElement(PopupContainer, { footer: "Press ESC to close" },
|
|
53
|
-
React.createElement(Box, { flexDirection: "column" },
|
|
54
|
-
React.createElement(Text, { dimColor: true }, "No closed worktrees found."),
|
|
55
|
-
React.createElement(Text, { dimColor: true }, "All worktrees have active panes.")))));
|
|
56
|
-
}
|
|
57
|
-
const totalWorktrees = worktrees.length;
|
|
82
|
+
function getVisibleWindow(totalItems, selectedIndex, maxVisible) {
|
|
58
83
|
let startIndex = 0;
|
|
59
|
-
let endIndex = Math.min(maxVisible,
|
|
84
|
+
let endIndex = Math.min(maxVisible, totalItems);
|
|
60
85
|
if (selectedIndex >= endIndex) {
|
|
61
86
|
endIndex = selectedIndex + 1;
|
|
62
87
|
startIndex = Math.max(0, endIndex - maxVisible);
|
|
63
88
|
}
|
|
64
89
|
else if (selectedIndex < startIndex) {
|
|
65
90
|
startIndex = selectedIndex;
|
|
66
|
-
endIndex = Math.min(startIndex + maxVisible,
|
|
91
|
+
endIndex = Math.min(startIndex + maxVisible, totalItems);
|
|
67
92
|
}
|
|
68
|
-
if (selectedIndex >= maxVisible / 2 &&
|
|
93
|
+
if (selectedIndex >= maxVisible / 2 && totalItems > maxVisible) {
|
|
69
94
|
startIndex = Math.max(0, selectedIndex - Math.floor(maxVisible / 2));
|
|
70
|
-
endIndex = Math.min(startIndex + maxVisible,
|
|
95
|
+
endIndex = Math.min(startIndex + maxVisible, totalItems);
|
|
71
96
|
startIndex = Math.max(0, endIndex - maxVisible);
|
|
72
97
|
}
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
return { startIndex, endIndex };
|
|
99
|
+
}
|
|
100
|
+
function getWorktreeDetails(worktree) {
|
|
101
|
+
const details = [];
|
|
102
|
+
if (worktree.hasRemoteBranch) {
|
|
103
|
+
details.push('remote');
|
|
104
|
+
}
|
|
105
|
+
if (worktree.hasUncommittedChanges) {
|
|
106
|
+
details.push('dirty');
|
|
107
|
+
}
|
|
108
|
+
return details.join(' ');
|
|
109
|
+
}
|
|
110
|
+
export const ReopenWorktreePopupApp = ({ resultFile, projectName, worktrees, initialState, projectRoot, activePaneSlugs = [], loadRemoteBranches = loadRemoteResumableBranches, }) => {
|
|
111
|
+
const [availableWorktrees, setAvailableWorktrees] = useState(worktrees);
|
|
112
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
113
|
+
const [filterQuery, setFilterQuery] = useState(initialState.filterQuery);
|
|
114
|
+
const [includeWorktrees, setIncludeWorktrees] = useState(initialState.includeWorktrees);
|
|
115
|
+
const [includeLocalBranches, setIncludeLocalBranches] = useState(initialState.includeLocalBranches);
|
|
116
|
+
const [includeRemoteBranches, setIncludeRemoteBranches] = useState(initialState.includeRemoteBranches);
|
|
117
|
+
const [remoteLoaded, setRemoteLoaded] = useState(initialState.remoteLoaded);
|
|
118
|
+
const [isLoadingRemote, setIsLoadingRemote] = useState(false);
|
|
119
|
+
const [remoteLoadError, setRemoteLoadError] = useState(null);
|
|
120
|
+
const [focusedSourceIndex, setFocusedSourceIndex] = useState(0);
|
|
121
|
+
const [focusArea, setFocusArea] = useState('list');
|
|
122
|
+
const { exit } = useApp();
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
setAvailableWorktrees(worktrees);
|
|
125
|
+
}, [worktrees]);
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
if (!includeRemoteBranches || remoteLoaded || !projectRoot) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
let cancelled = false;
|
|
131
|
+
setIsLoadingRemote(true);
|
|
132
|
+
setRemoteLoadError(null);
|
|
133
|
+
const timer = setTimeout(() => {
|
|
134
|
+
try {
|
|
135
|
+
const remoteBranches = loadRemoteBranches(projectRoot, activePaneSlugs);
|
|
136
|
+
if (cancelled) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
setAvailableWorktrees(remoteBranches);
|
|
140
|
+
setRemoteLoaded(true);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (cancelled) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
setRemoteLoadError(error instanceof Error ? error.message : String(error));
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
if (!cancelled) {
|
|
150
|
+
setIsLoadingRemote(false);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}, 0);
|
|
154
|
+
return () => {
|
|
155
|
+
cancelled = true;
|
|
156
|
+
clearTimeout(timer);
|
|
157
|
+
};
|
|
158
|
+
}, [
|
|
159
|
+
activePaneSlugs,
|
|
160
|
+
includeRemoteBranches,
|
|
161
|
+
loadRemoteBranches,
|
|
162
|
+
projectRoot,
|
|
163
|
+
remoteLoaded,
|
|
164
|
+
]);
|
|
165
|
+
const sourceFilteredWorktrees = useMemo(() => (availableWorktrees.filter((worktree) => ((includeWorktrees && worktree.hasWorktree)
|
|
166
|
+
|| (includeLocalBranches && worktree.hasLocalBranch)
|
|
167
|
+
|| (includeRemoteBranches && worktree.hasRemoteBranch)))), [availableWorktrees, includeLocalBranches, includeRemoteBranches, includeWorktrees]);
|
|
168
|
+
const filteredWorktrees = useMemo(() => {
|
|
169
|
+
const normalizedQuery = filterQuery.trim().toLowerCase();
|
|
170
|
+
if (!normalizedQuery) {
|
|
171
|
+
return sourceFilteredWorktrees;
|
|
172
|
+
}
|
|
173
|
+
return sourceFilteredWorktrees.filter((worktree) => {
|
|
174
|
+
const branchName = worktree.branchName.toLowerCase();
|
|
175
|
+
const slug = worktree.slug?.toLowerCase() || '';
|
|
176
|
+
return branchName.includes(normalizedQuery) || slug.includes(normalizedQuery);
|
|
177
|
+
});
|
|
178
|
+
}, [filterQuery, sourceFilteredWorktrees]);
|
|
179
|
+
useEffect(() => {
|
|
180
|
+
setSelectedIndex((current) => Math.min(current, Math.max(0, filteredWorktrees.length - 1)));
|
|
181
|
+
}, [filteredWorktrees.length]);
|
|
182
|
+
const toggleSourceFilter = (sourceKey) => {
|
|
183
|
+
if (sourceKey === 'worktrees') {
|
|
184
|
+
setIncludeWorktrees((current) => !current);
|
|
185
|
+
setSelectedIndex(0);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (sourceKey === 'local') {
|
|
189
|
+
setIncludeLocalBranches((current) => !current);
|
|
190
|
+
setSelectedIndex(0);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
setIncludeRemoteBranches((current) => !current);
|
|
194
|
+
setSelectedIndex(0);
|
|
195
|
+
};
|
|
196
|
+
useInput((input, key) => {
|
|
197
|
+
if (key.tab) {
|
|
198
|
+
setFocusArea((current) => current === 'list' ? 'sources' : 'list');
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (focusArea === 'sources') {
|
|
202
|
+
if (key.leftArrow) {
|
|
203
|
+
setFocusedSourceIndex((current) => Math.max(0, current - 1));
|
|
204
|
+
}
|
|
205
|
+
else if (key.rightArrow) {
|
|
206
|
+
setFocusedSourceIndex((current) => Math.min(SOURCE_FILTERS.length - 1, current + 1));
|
|
207
|
+
}
|
|
208
|
+
else if (key.downArrow) {
|
|
209
|
+
setFocusArea('list');
|
|
210
|
+
}
|
|
211
|
+
else if (input === '1') {
|
|
212
|
+
setFocusedSourceIndex(0);
|
|
213
|
+
toggleSourceFilter('worktrees');
|
|
214
|
+
}
|
|
215
|
+
else if (input === '2') {
|
|
216
|
+
setFocusedSourceIndex(1);
|
|
217
|
+
toggleSourceFilter('local');
|
|
218
|
+
}
|
|
219
|
+
else if (input === '3') {
|
|
220
|
+
setFocusedSourceIndex(2);
|
|
221
|
+
toggleSourceFilter('remote');
|
|
222
|
+
}
|
|
223
|
+
else if (input === ' ' || key.return) {
|
|
224
|
+
toggleSourceFilter(SOURCE_FILTERS[focusedSourceIndex]?.key ?? 'worktrees');
|
|
225
|
+
}
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
if (key.backspace || key.delete) {
|
|
229
|
+
setFilterQuery((current) => current.slice(0, -1));
|
|
230
|
+
setSelectedIndex(0);
|
|
231
|
+
}
|
|
232
|
+
else if (isFilterTypingInput(input, key)) {
|
|
233
|
+
setFilterQuery((current) => `${current}${input}`);
|
|
234
|
+
setSelectedIndex(0);
|
|
235
|
+
}
|
|
236
|
+
else if (key.leftArrow || (key.upArrow && selectedIndex === 0)) {
|
|
237
|
+
setFocusArea('sources');
|
|
238
|
+
}
|
|
239
|
+
else if (key.upArrow) {
|
|
240
|
+
setSelectedIndex((current) => Math.max(0, current - 1));
|
|
241
|
+
}
|
|
242
|
+
else if (key.downArrow) {
|
|
243
|
+
setSelectedIndex((current) => (filteredWorktrees.length === 0
|
|
244
|
+
? 0
|
|
245
|
+
: Math.min(filteredWorktrees.length - 1, current + 1)));
|
|
246
|
+
}
|
|
247
|
+
else if (key.return && filteredWorktrees.length > 0 && !isLoadingRemote) {
|
|
248
|
+
const selected = filteredWorktrees[selectedIndex];
|
|
249
|
+
writeSuccessAndExit(resultFile, {
|
|
250
|
+
action: 'select',
|
|
251
|
+
candidate: selected,
|
|
252
|
+
}, exit);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
const totalWorktrees = availableWorktrees.length;
|
|
256
|
+
const totalSourceFilteredWorktrees = sourceFilteredWorktrees.length;
|
|
257
|
+
const totalFilteredWorktrees = filteredWorktrees.length;
|
|
258
|
+
const showEmptyState = totalFilteredWorktrees === 0;
|
|
259
|
+
const { startIndex, endIndex } = getVisibleWindow(totalFilteredWorktrees, selectedIndex, MAX_VISIBLE_WORKTREES);
|
|
260
|
+
const visibleWorktrees = filteredWorktrees.slice(startIndex, endIndex);
|
|
261
|
+
const renderedRowCount = showEmptyState ? 1 : visibleWorktrees.length;
|
|
262
|
+
const emptyRows = Math.max(0, MAX_VISIBLE_WORKTREES - renderedRowCount);
|
|
263
|
+
const moreAbove = startIndex > 0;
|
|
264
|
+
const moreBelow = endIndex < totalFilteredWorktrees;
|
|
265
|
+
const filterActive = filterQuery.trim().length > 0;
|
|
266
|
+
const filterDisplay = filterQuery || 'Search branches';
|
|
267
|
+
const filterCursor = focusArea === 'list' ? '|' : '';
|
|
268
|
+
const searchFocused = focusArea === 'list';
|
|
269
|
+
const footer = focusArea === 'sources'
|
|
270
|
+
? '←→ move • Space toggle • ↓ back • 1/2/3 quick toggle • ESC cancel'
|
|
271
|
+
: 'Type filter • ↑↓ navigate • ↑/← filters • Enter resume • ESC cancel';
|
|
272
|
+
const filterMessage = isLoadingRemote
|
|
273
|
+
? 'Loading remote branches...'
|
|
274
|
+
: remoteLoadError
|
|
275
|
+
? `Remote scan failed: ${remoteLoadError}`
|
|
276
|
+
: filterActive
|
|
277
|
+
? `No matches for "${filterQuery}"`
|
|
278
|
+
: totalSourceFilteredWorktrees === 0 && !remoteLoaded && !includeRemoteBranches
|
|
279
|
+
? 'No local branches or worktrees. Enable remote to scan remotes.'
|
|
280
|
+
: 'No branches match the selected sources.';
|
|
281
|
+
const remoteLabel = isLoadingRemote ? 'Remote…' : 'Remote';
|
|
282
|
+
const remoteLabelColor = remoteLoadError
|
|
283
|
+
? POPUP_CONFIG.errorColor
|
|
284
|
+
: isLoadingRemote
|
|
285
|
+
? POPUP_CONFIG.titleColor
|
|
286
|
+
: undefined;
|
|
75
287
|
return (React.createElement(PopupWrapper, { resultFile: resultFile },
|
|
76
|
-
React.createElement(PopupContainer, { footer:
|
|
77
|
-
React.createElement(Box, {
|
|
78
|
-
React.createElement(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
288
|
+
React.createElement(PopupContainer, { footer: footer },
|
|
289
|
+
React.createElement(Box, { borderStyle: POPUP_CONFIG.inputBorderStyle, borderColor: searchFocused ? POPUP_CONFIG.inputBorderColor : POPUP_CONFIG.borderColor, paddingX: 1, marginTop: 1, width: CONTENT_BOX_WIDTH, flexDirection: "column" },
|
|
290
|
+
React.createElement(Box, { width: CONTENT_INNER_WIDTH },
|
|
291
|
+
React.createElement(Text, { bold: true, color: searchFocused ? POPUP_CONFIG.inputBorderColor : POPUP_CONFIG.borderColor },
|
|
292
|
+
"\uF002",
|
|
293
|
+
' '),
|
|
294
|
+
React.createElement(Text, { color: searchFocused ? 'white' : undefined, dimColor: !filterQuery, wrap: "truncate-end" }, `${filterDisplay}${filterCursor}`))),
|
|
295
|
+
React.createElement(Box, { borderStyle: POPUP_CONFIG.inputBorderStyle, borderColor: focusArea === 'sources' ? POPUP_CONFIG.inputBorderColor : POPUP_CONFIG.borderColor, paddingX: 1, marginTop: 1, width: CONTENT_BOX_WIDTH, flexDirection: "column" },
|
|
296
|
+
React.createElement(Box, { width: CONTENT_INNER_WIDTH }, SOURCE_FILTERS.map((source, index) => {
|
|
297
|
+
const isFocused = focusArea === 'sources' && focusedSourceIndex === index;
|
|
298
|
+
const isEnabled = source.key === 'worktrees'
|
|
299
|
+
? includeWorktrees
|
|
300
|
+
: source.key === 'local'
|
|
301
|
+
? includeLocalBranches
|
|
302
|
+
: includeRemoteBranches;
|
|
303
|
+
const marker = isEnabled ? '◉' : '◎';
|
|
304
|
+
const label = source.key === 'remote' ? remoteLabel : source.label;
|
|
305
|
+
const color = source.key === 'remote' && remoteLabelColor
|
|
306
|
+
? remoteLabelColor
|
|
307
|
+
: isFocused
|
|
308
|
+
? POPUP_CONFIG.titleColor
|
|
309
|
+
: 'white';
|
|
310
|
+
return (React.createElement(Box, { key: source.key, marginRight: 2 },
|
|
311
|
+
React.createElement(Text, { color: isEnabled ? POPUP_CONFIG.successColor : POPUP_CONFIG.dimColor, bold: isEnabled }, marker),
|
|
312
|
+
React.createElement(Text, { color: color, bold: isFocused },
|
|
313
|
+
' ',
|
|
314
|
+
label)));
|
|
315
|
+
}))),
|
|
316
|
+
React.createElement(Box, { flexDirection: "column", borderStyle: POPUP_CONFIG.inputBorderStyle, borderColor: POPUP_CONFIG.borderColor, paddingX: 1, marginTop: 1, width: CONTENT_BOX_WIDTH },
|
|
317
|
+
React.createElement(Box, { width: CONTENT_INNER_WIDTH },
|
|
318
|
+
React.createElement(Box, { width: BRANCH_COLUMN_WIDTH, paddingRight: 1 },
|
|
319
|
+
React.createElement(Text, { dimColor: true }, "Branch")),
|
|
320
|
+
React.createElement(Box, { width: LAST_WORKED_COLUMN_WIDTH, paddingRight: 1 },
|
|
321
|
+
React.createElement(Text, { dimColor: true }, "Last worked")),
|
|
322
|
+
React.createElement(Box, { flexGrow: 1 },
|
|
323
|
+
React.createElement(Text, { dimColor: true }, "Status"))),
|
|
324
|
+
showEmptyState ? (React.createElement(Box, { width: CONTENT_INNER_WIDTH },
|
|
325
|
+
React.createElement(Text, { dimColor: true, wrap: "truncate-end" }, filterMessage))) : (visibleWorktrees.map((worktree, idx) => {
|
|
326
|
+
const index = startIndex + idx;
|
|
327
|
+
const isSelected = index === selectedIndex;
|
|
328
|
+
const details = getWorktreeDetails(worktree);
|
|
329
|
+
return (React.createElement(Box, { key: worktree.branchName, width: CONTENT_INNER_WIDTH },
|
|
330
|
+
React.createElement(Box, { width: BRANCH_COLUMN_WIDTH, paddingRight: 1 },
|
|
331
|
+
React.createElement(Text, { color: isSelected ? POPUP_CONFIG.titleColor : 'white', bold: isSelected, wrap: "truncate-end" },
|
|
332
|
+
isSelected ? '▶ ' : ' ',
|
|
333
|
+
worktree.branchName)),
|
|
334
|
+
React.createElement(Box, { width: LAST_WORKED_COLUMN_WIDTH, paddingRight: 1 },
|
|
335
|
+
React.createElement(Text, { color: isSelected ? POPUP_CONFIG.titleColor : undefined, dimColor: !isSelected, wrap: "truncate-end" }, formatRelativeTime(worktree.lastModified))),
|
|
336
|
+
React.createElement(Box, { flexGrow: 1 },
|
|
337
|
+
React.createElement(Text, { color: worktree.hasUncommittedChanges ? 'yellow' : undefined, dimColor: !worktree.hasUncommittedChanges, wrap: "truncate-end" }, details || ' '))));
|
|
338
|
+
})),
|
|
339
|
+
Array.from({ length: emptyRows }).map((_, index) => (React.createElement(Box, { key: `empty-${index}`, width: CONTENT_INNER_WIDTH },
|
|
340
|
+
React.createElement(Text, null, " ")))),
|
|
341
|
+
React.createElement(Box, { width: CONTENT_INNER_WIDTH },
|
|
342
|
+
React.createElement(Text, { dimColor: true },
|
|
343
|
+
totalFilteredWorktrees,
|
|
344
|
+
" of ",
|
|
345
|
+
totalWorktrees,
|
|
346
|
+
" resumable branch",
|
|
347
|
+
totalWorktrees === 1 ? '' : 'es',
|
|
348
|
+
moreAbove ? ` • ${startIndex} above` : '',
|
|
349
|
+
moreBelow ? ` • ${totalFilteredWorktrees - endIndex} below` : '',
|
|
350
|
+
filterActive ? ' • filtered' : ''))))));
|
|
105
351
|
};
|
|
106
352
|
// Entry point
|
|
107
353
|
function main() {
|
|
@@ -120,7 +366,16 @@ function main() {
|
|
|
120
366
|
console.error('Error: Failed to read or parse data file');
|
|
121
367
|
process.exit(1);
|
|
122
368
|
}
|
|
123
|
-
render(React.createElement(ReopenWorktreePopupApp, { resultFile: resultFile, worktrees: data.worktrees
|
|
369
|
+
render(React.createElement(ReopenWorktreePopupApp, { resultFile: resultFile, projectName: data.projectName, worktrees: data.worktrees, initialState: data.initialState ?? {
|
|
370
|
+
includeWorktrees: true,
|
|
371
|
+
includeLocalBranches: true,
|
|
372
|
+
includeRemoteBranches: false,
|
|
373
|
+
remoteLoaded: false,
|
|
374
|
+
filterQuery: '',
|
|
375
|
+
}, projectRoot: data.projectRoot, activePaneSlugs: data.activePaneSlugs }));
|
|
376
|
+
}
|
|
377
|
+
const entryPointHref = process.argv[1] ? pathToFileURL(process.argv[1]).href : '';
|
|
378
|
+
if (import.meta.url === entryPointHref) {
|
|
379
|
+
main();
|
|
124
380
|
}
|
|
125
|
-
main();
|
|
126
381
|
//# sourceMappingURL=reopenWorktreePopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reopenWorktreePopup.js","sourceRoot":"","sources":["../../../src/components/popups/reopenWorktreePopup.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reopenWorktreePopup.js","sourceRoot":"","sources":["../../../src/components/popups/reopenWorktreePopup.tsx"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAsCrE,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,CAAC,CAAC;AAClD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,cAAc,GAAG;IACrB,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACxC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAChC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;CAC1B,CAAC;AAKX,SAAS,aAAa,CACpB,QAAyD;IAEzD,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE;QAClD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,WAAmB,EACnB,eAAyB;IAEzB,OAAO,oBAAoB,CAAC,WAAW,EAAE,eAAe,EAAE;QACxD,qBAAqB,EAAE,IAAI;KAC5B,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,GAA4B;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,GAAG,CAAC,OAAO;WACR,GAAG,CAAC,SAAS;WACb,GAAG,CAAC,SAAS;WACb,GAAG,CAAC,UAAU;WACd,GAAG,CAAC,MAAM;WACV,GAAG,CAAC,QAAQ,EACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAE5C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,WAAW,CAAC;IAC/D,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,YAAY,CAAC;IACnE,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,cAAc,CAAC;IAC3E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,aAAqB,EAAE,UAAkB;IACrF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEhD,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;QAC9B,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC;QAC7B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,aAAa,GAAG,UAAU,EAAE,CAAC;QACtC,UAAU,GAAG,aAAa,CAAC;QAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,aAAa,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;QAC/D,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;QACzD,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAyB;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAuC,CAAC,EACzE,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,GAAG,EAAE,EACpB,kBAAkB,GAAG,2BAA2B,GACjD,EAAE,EAAE;IACH,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACzE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACxF,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACpG,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACvG,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,MAAM,CAAC,CAAC;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,qBAAqB,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;gBAExE,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO;gBACT,CAAC;gBAED,qBAAqB,CAAC,cAAc,CAAC,CAAC;gBACtC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO;gBACT,CAAC;gBAED,kBAAkB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7E,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,eAAe;QACf,qBAAqB;QACrB,kBAAkB;QAClB,WAAW;QACX,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAC5C,kBAAkB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtC,CAAC,gBAAgB,IAAI,QAAQ,CAAC,WAAW,CAAC;WACvC,CAAC,oBAAoB,IAAI,QAAQ,CAAC,cAAc,CAAC;WACjD,CAAC,qBAAqB,IAAI,QAAQ,CAAC,eAAe,CAAC,CACvD,CAAC,CACH,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAExF,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAChD,OAAO,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CACpC,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1C,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/B,MAAM,kBAAkB,GAAG,CAAC,SAA0B,EAAE,EAAE;QACxD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3C,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,uBAAuB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC/C,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAChD,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,qBAAqB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAC1B,qBAAqB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YACvF,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACzB,YAAY,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACzB,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACzB,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBACzB,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACzB,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvC,kBAAkB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3C,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC;YAClD,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACjE,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACvB,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC5B,iBAAiB,CAAC,MAAM,KAAK,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CACxD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;YAClD,mBAAmB,CAA4B,UAAU,EAAE;gBACzD,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,QAAQ;aACpB,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACjD,MAAM,4BAA4B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACpE,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACxD,MAAM,cAAc,GAAG,sBAAsB,KAAK,CAAC,CAAC;IACpD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAC/C,sBAAsB,EACtB,aAAa,EACb,qBAAqB,CACtB,CAAC;IACF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,GAAG,gBAAgB,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,QAAQ,GAAG,sBAAsB,CAAC;IACpD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,WAAW,IAAI,iBAAiB,CAAC;IACvD,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,SAAS,KAAK,MAAM,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS;QACpC,CAAC,CAAC,mEAAmE;QACrE,CAAC,CAAC,qEAAqE,CAAC;IAC1E,MAAM,aAAa,GAAG,eAAe;QACnC,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,eAAe;YACf,CAAC,CAAC,uBAAuB,eAAe,EAAE;YAC1C,CAAC,CAAC,YAAY;gBACZ,CAAC,CAAC,mBAAmB,WAAW,GAAG;gBACnC,CAAC,CAAC,4BAA4B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,qBAAqB;oBAC7E,CAAC,CAAC,gEAAgE;oBAClE,CAAC,CAAC,yCAAyC,CAAC;IACpD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,MAAM,gBAAgB,GAAG,eAAe;QACtC,CAAC,CAAC,YAAY,CAAC,UAAU;QACzB,CAAC,CAAC,eAAe;YACf,CAAC,CAAC,YAAY,CAAC,UAAU;YACzB,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,oBAAC,YAAY,IAAC,UAAU,EAAE,UAAU;QAClC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;YAC5B,oBAAC,GAAG,IACF,WAAW,EAAE,YAAY,CAAC,gBAAgB,EAC1C,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EACrF,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAC,QAAQ;gBAEtB,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB;oBAC7B,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW;;wBACtF,GAAG,CACA;oBACP,oBAAC,IAAI,IACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC1C,QAAQ,EAAE,CAAC,WAAW,EACtB,IAAI,EAAC,cAAc,IAElB,GAAG,aAAa,GAAG,YAAY,EAAE,CAC7B,CACH,CACF;YAEN,oBAAC,GAAG,IACF,WAAW,EAAE,YAAY,CAAC,gBAAgB,EAC1C,WAAW,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAC/F,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAC,QAAQ;gBAEtB,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB,IAC5B,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACpC,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,IAAI,kBAAkB,KAAK,KAAK,CAAC;oBAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,KAAK,WAAW;wBAC1C,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO;4BACtB,CAAC,CAAC,oBAAoB;4BACtB,CAAC,CAAC,qBAAqB,CAAC;oBAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBACnE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,gBAAgB;wBACvD,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,SAAS;4BACT,CAAC,CAAC,YAAY,CAAC,UAAU;4BACzB,CAAC,CAAC,OAAO,CAAC;oBAEd,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;wBAClC,oBAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,IACxF,MAAM,CACF;wBACP,oBAAC,IAAI,IACH,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,SAAS;4BAEd,GAAG;4BAAE,KAAK,CACN,CACH,CACP,CAAC;gBACJ,CAAC,CAAC,CACE,CACF;YAEN,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,YAAY,CAAC,gBAAgB,EAC1C,WAAW,EAAE,YAAY,CAAC,WAAW,EACrC,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,iBAAiB;gBAExB,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB;oBAC7B,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;wBAC9C,oBAAC,IAAI,IAAC,QAAQ,mBAAc,CACxB;oBACN,oBAAC,GAAG,IAAC,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;wBACnD,oBAAC,IAAI,IAAC,QAAQ,wBAAmB,CAC7B;oBACN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;wBACd,oBAAC,IAAI,IAAC,QAAQ,mBAAc,CACxB,CACF;gBAEL,cAAc,CAAC,CAAC,CAAC,CAChB,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB;oBAC7B,oBAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,EAAC,cAAc,IAC/B,aAAa,CACT,CACH,CACP,CAAC,CAAC,CAAC,CACF,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;oBACrC,MAAM,KAAK,GAAG,UAAU,GAAG,GAAG,CAAC;oBAC/B,MAAM,UAAU,GAAG,KAAK,KAAK,aAAa,CAAC;oBAC3C,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAE7C,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,mBAAmB;wBACvD,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;4BAC9C,oBAAC,IAAI,IACH,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EACrD,IAAI,EAAE,UAAU,EAChB,IAAI,EAAC,cAAc;gCAElB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gCAAE,QAAQ,CAAC,UAAU,CACzC,CACH;wBACN,oBAAC,GAAG,IAAC,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC;4BACnD,oBAAC,IAAI,IACH,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACvD,QAAQ,EAAE,CAAC,UAAU,EACrB,IAAI,EAAC,cAAc,IAElB,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CACrC,CACH;wBACN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;4BACd,oBAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC5D,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EACzC,IAAI,EAAC,cAAc,IAElB,OAAO,IAAI,GAAG,CACV,CACH,CACF,CACP,CAAC;gBACJ,CAAC,CAAC,CACH;gBAEA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACnD,oBAAC,GAAG,IAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB;oBACpD,oBAAC,IAAI,YAAS,CACV,CACP,CAAC;gBAEF,oBAAC,GAAG,IAAC,KAAK,EAAE,mBAAmB;oBAC7B,oBAAC,IAAI,IAAC,QAAQ;wBACX,sBAAsB;;wBAAM,cAAc;;wBAAmB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;wBAC7F,SAAS,CAAC,CAAC,CAAC,QAAQ,UAAU,QAAQ,CAAC,CAAC,CAAC,EAAE;wBAC3C,SAAS,CAAC,CAAC,CAAC,QAAQ,sBAAsB,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE;wBAClE,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAC/B,CACH,CACF,CACS,CACJ,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc;AACd,SAAS,IAAI;IACX,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAMH,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CACJ,oBAAC,sBAAsB,IACrB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI;YACjC,gBAAgB,EAAE,IAAI;YACtB,oBAAoB,EAAE,IAAI;YAC1B,qBAAqB,EAAE,KAAK;YAC5B,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,EAAE;SAChB,EACD,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,eAAe,EAAE,IAAI,CAAC,eAAe,GACrC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC;IACvC,IAAI,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { DmuxPane, SidebarProject } from "../types.js";
|
|
2
|
+
import type { TrackProjectActivity } from "../types/activity.js";
|
|
3
|
+
import { type ResumableBranchCandidate } from "../utils/resumeBranches.js";
|
|
2
4
|
import type { PopupManager } from "../services/PopupManager.js";
|
|
3
5
|
import { type ProjectActionItem } from "../utils/projectActions.js";
|
|
4
6
|
import type { AgentName } from "../utils/agentLaunch.js";
|
|
@@ -40,12 +42,13 @@ interface UseInputHandlingParams {
|
|
|
40
42
|
popupManager: PopupManager;
|
|
41
43
|
actionSystem: ActionSystem;
|
|
42
44
|
controlPaneId: string | undefined;
|
|
45
|
+
trackProjectActivity: TrackProjectActivity;
|
|
43
46
|
setStatusMessage: (message: string) => void;
|
|
44
47
|
copyNonGitFiles: (worktreePath: string, sourceProjectRoot?: string) => Promise<void>;
|
|
45
48
|
runCommandInternal: (type: "test" | "dev", pane: DmuxPane) => Promise<void>;
|
|
46
49
|
handlePaneCreationWithAgent: (prompt: string, targetProjectRoot?: string) => Promise<void>;
|
|
47
50
|
handleCreateChildWorktree: (pane: DmuxPane) => Promise<void>;
|
|
48
|
-
handleReopenWorktree: (
|
|
51
|
+
handleReopenWorktree: (candidate: ResumableBranchCandidate, targetProjectRoot?: string) => Promise<void>;
|
|
49
52
|
setDevSourceFromPane: (pane: DmuxPane) => Promise<void>;
|
|
50
53
|
savePanes: (panes: DmuxPane[]) => Promise<void>;
|
|
51
54
|
sidebarProjects: SidebarProject[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputHandling.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputHandling.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"useInputHandling.d.ts","sourceRoot":"","sources":["../../src/hooks/useInputHandling.ts"],"names":[],"mappings":"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"}
|