dmux 4.1.0 → 5.0.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 +12 -6
- package/dist/DmuxApp.d.ts.map +1 -1
- package/dist/DmuxApp.js +119 -183
- package/dist/DmuxApp.js.map +1 -1
- package/dist/actions/implementations/closeAction.d.ts.map +1 -1
- package/dist/actions/implementations/closeAction.js +15 -40
- package/dist/actions/implementations/closeAction.js.map +1 -1
- package/dist/actions/types.d.ts +0 -1
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js +7 -0
- package/dist/actions/types.js.map +1 -1
- package/dist/components/panes/PanesGrid.d.ts +2 -0
- package/dist/components/panes/PanesGrid.d.ts.map +1 -1
- package/dist/components/panes/PanesGrid.js +122 -42
- package/dist/components/panes/PanesGrid.js.map +1 -1
- package/dist/components/popups/agentChoicePopup.d.ts +1 -1
- package/dist/components/popups/agentChoicePopup.js +37 -23
- package/dist/components/popups/agentChoicePopup.js.map +1 -1
- package/dist/components/popups/newPanePopup.js +4 -3
- package/dist/components/popups/newPanePopup.js.map +1 -1
- package/dist/components/popups/shortcutsPopup.js +6 -4
- package/dist/components/popups/shortcutsPopup.js.map +1 -1
- package/dist/components/ui/FooterHelp.d.ts +0 -8
- package/dist/components/ui/FooterHelp.d.ts.map +1 -1
- package/dist/components/ui/FooterHelp.js +5 -24
- package/dist/components/ui/FooterHelp.js.map +1 -1
- package/dist/hooks/useActionSystem.d.ts +1 -2
- package/dist/hooks/useActionSystem.d.ts.map +1 -1
- package/dist/hooks/useActionSystem.js +9 -25
- package/dist/hooks/useActionSystem.js.map +1 -1
- package/dist/hooks/useAgentDetection.d.ts +2 -1
- package/dist/hooks/useAgentDetection.d.ts.map +1 -1
- package/dist/hooks/useAgentDetection.js.map +1 -1
- package/dist/hooks/useAgentStatus.d.ts.map +1 -1
- package/dist/hooks/useAgentStatus.js +18 -6
- package/dist/hooks/useAgentStatus.js.map +1 -1
- package/dist/hooks/useInputHandling.d.ts +6 -9
- package/dist/hooks/useInputHandling.d.ts.map +1 -1
- package/dist/hooks/useInputHandling.js +91 -69
- package/dist/hooks/useInputHandling.js.map +1 -1
- package/dist/hooks/useLayoutManagement.d.ts +1 -2
- package/dist/hooks/useLayoutManagement.d.ts.map +1 -1
- package/dist/hooks/useLayoutManagement.js +2 -9
- package/dist/hooks/useLayoutManagement.js.map +1 -1
- package/dist/hooks/useNavigation.d.ts +1 -1
- package/dist/hooks/useNavigation.d.ts.map +1 -1
- package/dist/hooks/useNavigation.js +29 -36
- package/dist/hooks/useNavigation.js.map +1 -1
- package/dist/hooks/usePaneCreation.d.ts +10 -4
- package/dist/hooks/usePaneCreation.d.ts.map +1 -1
- package/dist/hooks/usePaneCreation.js +20 -49
- package/dist/hooks/usePaneCreation.js.map +1 -1
- package/dist/hooks/usePaneLoading.d.ts.map +1 -1
- package/dist/hooks/usePaneLoading.js +21 -23
- package/dist/hooks/usePaneLoading.js.map +1 -1
- package/dist/hooks/usePaneRunner.d.ts +1 -1
- package/dist/hooks/usePaneRunner.d.ts.map +1 -1
- package/dist/hooks/usePaneRunner.js +5 -2
- package/dist/hooks/usePaneRunner.js.map +1 -1
- package/dist/hooks/usePaneSync.d.ts.map +1 -1
- package/dist/hooks/usePaneSync.js +29 -20
- package/dist/hooks/usePaneSync.js.map +1 -1
- package/dist/hooks/usePanes.d.ts.map +1 -1
- package/dist/hooks/usePanes.js +61 -65
- package/dist/hooks/usePanes.js.map +1 -1
- package/dist/hooks/useServices.d.ts +4 -7
- package/dist/hooks/useServices.d.ts.map +1 -1
- package/dist/hooks/useServices.js +0 -4
- package/dist/hooks/useServices.js.map +1 -1
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
- package/dist/hooks/useTerminalWidth.js +0 -14
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/hooks/useWorktreeActions.d.ts +1 -2
- package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
- package/dist/hooks/useWorktreeActions.js +2 -8
- package/dist/hooks/useWorktreeActions.js.map +1 -1
- package/dist/index.js +260 -51
- package/dist/index.js.map +1 -1
- package/dist/server/embedded-assets.d.ts.map +1 -1
- package/dist/server/embedded-assets.js +381 -236
- package/dist/server/embedded-assets.js.map +1 -1
- package/dist/server/routes/panesRoutes.d.ts.map +1 -1
- package/dist/server/routes/panesRoutes.js +16 -2
- package/dist/server/routes/panesRoutes.js.map +1 -1
- package/dist/services/PopupManager.d.ts +5 -7
- package/dist/services/PopupManager.d.ts.map +1 -1
- package/dist/services/PopupManager.js +8 -42
- package/dist/services/PopupManager.js.map +1 -1
- package/dist/types.d.ts +2 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/agentLaunch.d.ts +12 -0
- package/dist/utils/agentLaunch.d.ts.map +1 -0
- package/dist/utils/agentLaunch.js +56 -0
- package/dist/utils/agentLaunch.js.map +1 -0
- package/dist/utils/paneCreation.d.ts +4 -0
- package/dist/utils/paneCreation.d.ts.map +1 -1
- package/dist/utils/paneCreation.js +33 -17
- package/dist/utils/paneCreation.js.map +1 -1
- package/dist/utils/paneGrouping.d.ts +15 -0
- package/dist/utils/paneGrouping.d.ts.map +1 -0
- package/dist/utils/paneGrouping.js +24 -0
- package/dist/utils/paneGrouping.js.map +1 -0
- package/dist/utils/paneProject.d.ts +16 -0
- package/dist/utils/paneProject.d.ts.map +1 -0
- package/dist/utils/paneProject.js +40 -0
- package/dist/utils/paneProject.js.map +1 -0
- package/dist/utils/paneRebinding.d.ts.map +1 -1
- package/dist/utils/paneRebinding.js +13 -7
- package/dist/utils/paneRebinding.js.map +1 -1
- package/dist/utils/paneTitle.d.ts +13 -0
- package/dist/utils/paneTitle.d.ts.map +1 -0
- package/dist/utils/paneTitle.js +48 -0
- package/dist/utils/paneTitle.js.map +1 -0
- package/dist/utils/projectActions.d.ts +32 -0
- package/dist/utils/projectActions.d.ts.map +1 -0
- package/dist/utils/projectActions.js +108 -0
- package/dist/utils/projectActions.js.map +1 -0
- package/dist/utils/projectRoot.d.ts +10 -0
- package/dist/utils/projectRoot.d.ts.map +1 -0
- package/dist/utils/projectRoot.js +66 -0
- package/dist/utils/projectRoot.js.map +1 -0
- package/dist/utils/reopenWorktree.d.ts +2 -0
- package/dist/utils/reopenWorktree.d.ts.map +1 -1
- package/dist/utils/reopenWorktree.js +14 -4
- package/dist/utils/reopenWorktree.js.map +1 -1
- package/dist/utils/shellPaneDetection.d.ts.map +1 -1
- package/dist/utils/shellPaneDetection.js +21 -0
- package/dist/utils/shellPaneDetection.js.map +1 -1
- package/dist/utils/tmux.d.ts.map +1 -1
- package/dist/utils/tmux.js +0 -8
- package/dist/utils/tmux.js.map +1 -1
- package/dist/utils/tmuxConfigOnboarding.d.ts +19 -0
- package/dist/utils/tmuxConfigOnboarding.d.ts.map +1 -0
- package/dist/utils/tmuxConfigOnboarding.js +299 -0
- package/dist/utils/tmuxConfigOnboarding.js.map +1 -0
- package/dist/workers/panePollingWorker.js +0 -6
- package/dist/workers/panePollingWorker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,61 +1,75 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Standalone popup for choosing
|
|
3
|
+
* Standalone popup for choosing one agent or an A/B agent pair
|
|
4
4
|
* Runs in a tmux popup modal and writes result to a file
|
|
5
5
|
*/
|
|
6
6
|
import React, { useState } from 'react';
|
|
7
7
|
import { render, Box, Text, useInput, useApp } from 'ink';
|
|
8
8
|
import { PopupContainer, PopupWrapper, writeSuccessAndExit } from './shared/index.js';
|
|
9
9
|
import { PopupFooters, POPUP_CONFIG } from './config.js';
|
|
10
|
+
import { buildAgentLaunchOptions, } from '../../utils/agentLaunch.js';
|
|
10
11
|
const AgentChoicePopupApp = ({ resultFile, availableAgents, defaultAgent }) => {
|
|
12
|
+
const options = buildAgentLaunchOptions(availableAgents);
|
|
11
13
|
const [selectedIndex, setSelectedIndex] = useState(() => {
|
|
12
|
-
const
|
|
14
|
+
const defaultSingleAgent = defaultAgent || availableAgents[0] || 'claude';
|
|
15
|
+
const defaultIdx = options.findIndex((option) => option.agents.length === 1 && option.agents[0] === defaultSingleAgent);
|
|
13
16
|
return Math.max(0, defaultIdx);
|
|
14
17
|
});
|
|
15
18
|
const { exit } = useApp();
|
|
16
|
-
const
|
|
19
|
+
const selectedOption = options[selectedIndex] || options[0];
|
|
17
20
|
useInput((input, key) => {
|
|
21
|
+
if (options.length === 0)
|
|
22
|
+
return;
|
|
18
23
|
if (key.upArrow) {
|
|
19
24
|
setSelectedIndex(Math.max(0, selectedIndex - 1));
|
|
20
25
|
}
|
|
21
26
|
else if (key.downArrow) {
|
|
22
|
-
setSelectedIndex(Math.min(
|
|
27
|
+
setSelectedIndex(Math.min(options.length - 1, selectedIndex + 1));
|
|
23
28
|
}
|
|
24
|
-
else if (key.leftArrow || input
|
|
25
|
-
// Find
|
|
26
|
-
const claudeIdx =
|
|
29
|
+
else if (key.leftArrow || input.toLowerCase() === 'c') {
|
|
30
|
+
// Find Claude index
|
|
31
|
+
const claudeIdx = options.findIndex((option) => option.agents.length === 1 && option.agents[0] === 'claude');
|
|
27
32
|
if (claudeIdx >= 0)
|
|
28
33
|
setSelectedIndex(claudeIdx);
|
|
29
34
|
}
|
|
30
|
-
else if (key.rightArrow || input
|
|
31
|
-
// Find
|
|
32
|
-
const opencodeIdx =
|
|
35
|
+
else if (key.rightArrow || input.toLowerCase() === 'o') {
|
|
36
|
+
// Find OpenCode index
|
|
37
|
+
const opencodeIdx = options.findIndex((option) => option.agents.length === 1 && option.agents[0] === 'opencode');
|
|
33
38
|
if (opencodeIdx >= 0)
|
|
34
39
|
setSelectedIndex(opencodeIdx);
|
|
35
40
|
}
|
|
36
|
-
else if (input
|
|
41
|
+
else if (input.toLowerCase() === 'x') {
|
|
37
42
|
// Find codex index
|
|
38
|
-
const codexIdx =
|
|
43
|
+
const codexIdx = options.findIndex((option) => option.agents.length === 1 && option.agents[0] === 'codex');
|
|
39
44
|
if (codexIdx >= 0)
|
|
40
45
|
setSelectedIndex(codexIdx);
|
|
41
46
|
}
|
|
47
|
+
else if (/^[1-9]$/.test(input)) {
|
|
48
|
+
const numericIndex = Number.parseInt(input, 10) - 1;
|
|
49
|
+
if (numericIndex >= 0 && numericIndex < options.length) {
|
|
50
|
+
setSelectedIndex(numericIndex);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
42
53
|
else if (key.return) {
|
|
54
|
+
if (!selectedOption)
|
|
55
|
+
return;
|
|
43
56
|
// User confirmed choice
|
|
44
|
-
writeSuccessAndExit(resultFile,
|
|
57
|
+
writeSuccessAndExit(resultFile, selectedOption.agents, exit);
|
|
45
58
|
}
|
|
46
59
|
});
|
|
47
60
|
return (React.createElement(PopupWrapper, { resultFile: resultFile },
|
|
48
61
|
React.createElement(PopupContainer, { footer: PopupFooters.choice() },
|
|
49
|
-
React.createElement(Box, { flexDirection: "column" },
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
React.createElement(
|
|
54
|
-
isSelected ?
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
React.createElement(Box, { flexDirection: "column" },
|
|
63
|
+
options.length === 0 && (React.createElement(Text, { dimColor: true }, "No agents available")),
|
|
64
|
+
options.map((option, index) => {
|
|
65
|
+
const isSelected = index === selectedIndex;
|
|
66
|
+
return (React.createElement(Box, { key: option.id, marginBottom: index < options.length - 1 ? 1 : 0 },
|
|
67
|
+
React.createElement(Text, { color: isSelected ? POPUP_CONFIG.titleColor : 'white', bold: isSelected },
|
|
68
|
+
isSelected ? '▶ ' : ' ',
|
|
69
|
+
index + 1,
|
|
70
|
+
". ",
|
|
71
|
+
option.label)));
|
|
72
|
+
})))));
|
|
59
73
|
};
|
|
60
74
|
// Entry point
|
|
61
75
|
function main() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentChoicePopup.js","sourceRoot":"","sources":["../../../src/components/popups/agentChoicePopup.tsx"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentChoicePopup.js","sourceRoot":"","sources":["../../../src/components/popups/agentChoicePopup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,10 @@ import CleanTextInput from "../inputs/CleanTextInput.js";
|
|
|
11
11
|
import { scanProjectFiles, fuzzyMatchFiles } from "../../utils/fileScanner.js";
|
|
12
12
|
import fs from "fs";
|
|
13
13
|
import path from "path";
|
|
14
|
+
const PROJECT_PATH_ARG = process.argv[3];
|
|
15
|
+
const FILE_SCAN_ROOT = PROJECT_PATH_ARG || process.cwd();
|
|
14
16
|
// Debug logging to file
|
|
15
|
-
const DEBUG_LOG = path.join(
|
|
17
|
+
const DEBUG_LOG = path.join(FILE_SCAN_ROOT, '.dmux', 'file-picker-debug.log');
|
|
16
18
|
function debugLog(message, data) {
|
|
17
19
|
const timestamp = new Date().toISOString();
|
|
18
20
|
const logLine = `[${timestamp}] ${message} ${data ? JSON.stringify(data, null, 2) : ''}\n`;
|
|
@@ -94,8 +96,7 @@ const NewPanePopupApp = ({ resultFile }) => {
|
|
|
94
96
|
// User is actively typing a query, show file list
|
|
95
97
|
debugLog('[@Detection] Showing file list for query:', { query });
|
|
96
98
|
try {
|
|
97
|
-
const
|
|
98
|
-
const { files } = scanProjectFiles(projectPath);
|
|
99
|
+
const { files } = scanProjectFiles(FILE_SCAN_ROOT);
|
|
99
100
|
const matches = fuzzyMatchFiles(query, files);
|
|
100
101
|
setFilteredFiles(matches);
|
|
101
102
|
setAtPosition(atBeforeCursor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newPanePopup.js","sourceRoot":"","sources":["../../../src/components/popups/newPanePopup.tsx"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EACL,cAAc,EAEd,YAAY,EACZ,mBAAmB,EACnB,QAAQ,GACT,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,cAAc,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,
|
|
1
|
+
{"version":3,"file":"newPanePopup.js","sourceRoot":"","sources":["../../../src/components/popups/newPanePopup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { render, Box, Text, useInput, useApp } from 'ink';
|
|
|
7
7
|
import * as fs from 'fs';
|
|
8
8
|
import { PopupWrapper } from './shared/index.js';
|
|
9
9
|
import { POPUP_CONFIG } from './config.js';
|
|
10
|
-
const ShortcutsPopupApp = ({ resultFile, hasSidebarLayout,
|
|
10
|
+
const ShortcutsPopupApp = ({ resultFile, hasSidebarLayout, }) => {
|
|
11
11
|
const { exit } = useApp();
|
|
12
12
|
useInput((input, key) => {
|
|
13
13
|
if (key.escape || input === 'q' || input === '?') {
|
|
@@ -24,12 +24,14 @@ const ShortcutsPopupApp = ({ resultFile, hasSidebarLayout, showRemoteKey }) => {
|
|
|
24
24
|
{ key: 'j', description: 'Jump to selected pane' },
|
|
25
25
|
{ key: 'm', description: 'Open kebab menu for selected pane' },
|
|
26
26
|
{ key: 'x', description: 'Close selected pane' },
|
|
27
|
-
{ key: 'n', description: 'Create new pane' },
|
|
27
|
+
{ key: 'n', description: 'Create new pane (main project)' },
|
|
28
|
+
{ key: 't', description: 'Create terminal pane (main project)' },
|
|
29
|
+
{ key: 'p', description: 'Create pane in another project' },
|
|
30
|
+
{ key: 'N', description: 'Create pane in another project (legacy)' },
|
|
28
31
|
{ key: 'r', description: 'Reopen closed worktree' },
|
|
29
32
|
{ key: 'l', description: 'View logs' },
|
|
30
33
|
{ key: 's', description: 'Open settings' },
|
|
31
34
|
...(hasSidebarLayout ? [{ key: 'L', description: 'Toggle sidebar layout' }] : []),
|
|
32
|
-
...(showRemoteKey ? [{ key: 'R', description: 'Open remote dashboard' }] : []),
|
|
33
35
|
{ key: 'q', description: 'Quit dmux (Ctrl+C twice)' },
|
|
34
36
|
{ key: '↑↓←→', description: 'Navigate panes spatially' },
|
|
35
37
|
{ key: 'Enter', description: 'Select highlighted item' },
|
|
@@ -64,7 +66,7 @@ const main = async () => {
|
|
|
64
66
|
}
|
|
65
67
|
try {
|
|
66
68
|
const data = JSON.parse(fs.readFileSync(dataFile, 'utf-8'));
|
|
67
|
-
render(React.createElement(ShortcutsPopupApp, { resultFile: resultFile, hasSidebarLayout: data.hasSidebarLayout || false
|
|
69
|
+
render(React.createElement(ShortcutsPopupApp, { resultFile: resultFile, hasSidebarLayout: data.hasSidebarLayout || false }));
|
|
68
70
|
}
|
|
69
71
|
catch (error) {
|
|
70
72
|
console.error('Failed to read data file:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shortcutsPopup.js","sourceRoot":"","sources":["../../../src/components/popups/shortcutsPopup.tsx"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,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,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"shortcutsPopup.js","sourceRoot":"","sources":["../../../src/components/popups/shortcutsPopup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,17 +3,9 @@ import type { Toast } from '../../services/ToastService.js';
|
|
|
3
3
|
interface FooterHelpProps {
|
|
4
4
|
show: boolean;
|
|
5
5
|
gridInfo?: string;
|
|
6
|
-
showRemoteKey?: boolean;
|
|
7
6
|
quitConfirmMode?: boolean;
|
|
8
|
-
hasSidebarLayout?: boolean;
|
|
9
|
-
serverPort?: number;
|
|
10
7
|
unreadErrorCount?: number;
|
|
11
8
|
unreadWarningCount?: number;
|
|
12
|
-
localIp?: string;
|
|
13
|
-
tunnelUrl?: string | null;
|
|
14
|
-
tunnelCreating?: boolean;
|
|
15
|
-
tunnelSpinner?: string;
|
|
16
|
-
tunnelCopied?: boolean;
|
|
17
9
|
currentToast?: Toast | null;
|
|
18
10
|
toastQueueLength?: number;
|
|
19
11
|
toastQueuePosition?: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FooterHelp.d.ts","sourceRoot":"","sources":["../../../src/components/ui/FooterHelp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAG5D,UAAU,eAAe;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"FooterHelp.d.ts","sourceRoot":"","sources":["../../../src/components/ui/FooterHelp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAG5D,UAAU,eAAe;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+HxC,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { memo } from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import ToastNotification from './ToastNotification.js';
|
|
4
|
-
const FooterHelp = memo(({ show, gridInfo,
|
|
4
|
+
const FooterHelp = memo(({ show, gridInfo, quitConfirmMode = false, unreadErrorCount = 0, unreadWarningCount = 0, currentToast, toastQueueLength = 0, toastQueuePosition }) => {
|
|
5
5
|
if (!show)
|
|
6
6
|
return null;
|
|
7
7
|
if (quitConfirmMode) {
|
|
@@ -61,34 +61,15 @@ const FooterHelp = memo(({ show, gridInfo, showRemoteKey = false, quitConfirmMod
|
|
|
61
61
|
React.createElement(Text, null,
|
|
62
62
|
React.createElement(Text, null, "\uD83E\uDEB5 "),
|
|
63
63
|
React.createElement(Text, { color: "cyan" }, "[l]"),
|
|
64
|
-
React.createElement(Text, { bold: true }, "ogs")
|
|
64
|
+
React.createElement(Text, { bold: true }, "ogs"),
|
|
65
|
+
React.createElement(Text, { dimColor: true }, " \u2022 "),
|
|
66
|
+
React.createElement(Text, { color: "cyan" }, "[p]"),
|
|
67
|
+
React.createElement(Text, { bold: true }, "rojects")),
|
|
65
68
|
(hasErrors || hasWarnings) && (React.createElement(Text, null,
|
|
66
69
|
hasErrors && React.createElement(Text, { color: "red", bold: true }, unreadErrorCount),
|
|
67
70
|
hasErrors && hasWarnings && React.createElement(Text, { dimColor: true }, " | "),
|
|
68
71
|
hasWarnings && React.createElement(Text, { color: "yellow", bold: true }, unreadWarningCount),
|
|
69
72
|
React.createElement(Text, null, " ")))),
|
|
70
|
-
(serverPort ?? 0) > 0 && (React.createElement(React.Fragment, null,
|
|
71
|
-
React.createElement(Divider, null),
|
|
72
|
-
React.createElement(Text, null,
|
|
73
|
-
React.createElement(Text, null, "\uD83C\uDFE0 "),
|
|
74
|
-
React.createElement(Text, { color: "cyan" },
|
|
75
|
-
"http://",
|
|
76
|
-
localIp || '127.0.0.1',
|
|
77
|
-
":",
|
|
78
|
-
serverPort)),
|
|
79
|
-
React.createElement(Text, null,
|
|
80
|
-
React.createElement(Text, null, "\uD83C\uDF10 "),
|
|
81
|
-
tunnelCopied ? (React.createElement(Text, { color: "green" }, "Copied!")) : tunnelCreating ? (React.createElement(React.Fragment, null,
|
|
82
|
-
React.createElement(Text, { color: "yellow" },
|
|
83
|
-
tunnelSpinner,
|
|
84
|
-
" "),
|
|
85
|
-
React.createElement(Text, { dimColor: true }, "Creating tunnel..."))) : tunnelUrl ? (React.createElement(React.Fragment, null,
|
|
86
|
-
React.createElement(Text, { color: "green" }, "Connected. "),
|
|
87
|
-
React.createElement(Text, { color: "cyan" }, "[R]"),
|
|
88
|
-
React.createElement(Text, null, " to view"))) : (React.createElement(React.Fragment, null,
|
|
89
|
-
React.createElement(Text, { color: "cyan" }, "[R]"),
|
|
90
|
-
React.createElement(Text, null, "emote tunnel")))),
|
|
91
|
-
React.createElement(Divider, null))),
|
|
92
73
|
React.createElement(Text, { dimColor: true },
|
|
93
74
|
"Press ",
|
|
94
75
|
React.createElement(Text, { color: "cyan" }, "[?]"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FooterHelp.js","sourceRoot":"","sources":["../../../src/components/ui/FooterHelp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"FooterHelp.js","sourceRoot":"","sources":["../../../src/components/ui/FooterHelp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@ interface UseActionSystemParams {
|
|
|
15
15
|
projectName: string;
|
|
16
16
|
onPaneUpdate?: (pane: DmuxPane) => void;
|
|
17
17
|
onPaneRemove?: (paneId: string) => void;
|
|
18
|
-
forceRepaint?: () => void;
|
|
19
18
|
onActionResult?: (result: ActionResult) => Promise<void>;
|
|
20
19
|
popupLaunchers?: {
|
|
21
20
|
launchConfirmPopup?: (title: string, message: string, yesLabel?: string, noLabel?: string) => Promise<boolean>;
|
|
@@ -30,7 +29,7 @@ interface UseActionSystemParams {
|
|
|
30
29
|
launchProgressPopup?: (message: string, type: 'info' | 'success' | 'error', timeout: number) => Promise<void>;
|
|
31
30
|
};
|
|
32
31
|
}
|
|
33
|
-
export default function useActionSystem({ panes, savePanes, sessionName, projectName, onPaneUpdate, onPaneRemove,
|
|
32
|
+
export default function useActionSystem({ panes, savePanes, sessionName, projectName, onPaneUpdate, onPaneRemove, onActionResult, popupLaunchers, }: UseActionSystemParams): {
|
|
34
33
|
actionState: TUIActionState;
|
|
35
34
|
executeAction: (actionId: PaneAction, pane: DmuxPane, params?: any) => Promise<void>;
|
|
36
35
|
executeCallback: (callback: (() => Promise<ActionResult>) | null, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionSystem.d.ts","sourceRoot":"","sources":["../../src/hooks/useActionSystem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAiB,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,qBAAqB;IAC7B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,
|
|
1
|
+
{"version":3,"file":"useActionSystem.d.ts","sourceRoot":"","sources":["../../src/hooks/useActionSystem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAiB,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,qBAAqB;IAC7B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzD,cAAc,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/G,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACvL,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC3H,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/G,CAAC;CACH;AAsED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACf,EAAE,qBAAqB;;8BAiBV,UAAU,QACd,QAAQ,WACL,GAAG;gCA0BF,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,YACpC;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE;8BAgDnB,MAAM,cAAc;;;EAuBlE"}
|
|
@@ -13,27 +13,18 @@ import { handleActionResult, createInitialTUIState } from '../adapters/tuiAction
|
|
|
13
13
|
*
|
|
14
14
|
* @param result - The action result to handle
|
|
15
15
|
* @param popupLaunchers - Available popup launchers
|
|
16
|
-
* @param context - Action context for forceRepaint
|
|
17
|
-
* @param setActionState - State setter for inline fallback
|
|
18
16
|
*/
|
|
19
|
-
async function handleResultWithPopups(result, popupLaunchers
|
|
20
|
-
console.error(`[useActionSystem] handleResultWithPopups called with type: ${result.type}, title: ${result.title || result.message?.substring(0, 50)}`);
|
|
17
|
+
async function handleResultWithPopups(result, popupLaunchers) {
|
|
21
18
|
// Handle confirm dialogs
|
|
22
19
|
if (result.type === 'confirm' && popupLaunchers?.launchConfirmPopup) {
|
|
23
|
-
console.error(`[useActionSystem] Launching confirm popup: ${result.title}`);
|
|
24
20
|
const confirmed = await popupLaunchers.launchConfirmPopup(result.title || 'Confirm', result.message, result.confirmLabel, result.cancelLabel);
|
|
25
|
-
console.error(`[useActionSystem] Popup result: confirmed=${confirmed}`);
|
|
26
21
|
if (confirmed && result.onConfirm) {
|
|
27
|
-
console.error(`[useActionSystem] Calling onConfirm callback`);
|
|
28
22
|
const nextResult = await result.onConfirm();
|
|
29
|
-
|
|
30
|
-
await handleResultWithPopups(nextResult, popupLaunchers, context, setActionState);
|
|
23
|
+
await handleResultWithPopups(nextResult, popupLaunchers);
|
|
31
24
|
}
|
|
32
25
|
else if (!confirmed && result.onCancel) {
|
|
33
|
-
console.error(`[useActionSystem] Calling onCancel callback`);
|
|
34
26
|
const nextResult = await result.onCancel();
|
|
35
|
-
|
|
36
|
-
await handleResultWithPopups(nextResult, popupLaunchers, context, setActionState);
|
|
27
|
+
await handleResultWithPopups(nextResult, popupLaunchers);
|
|
37
28
|
}
|
|
38
29
|
return;
|
|
39
30
|
}
|
|
@@ -42,7 +33,7 @@ async function handleResultWithPopups(result, popupLaunchers, context, setAction
|
|
|
42
33
|
const selectedId = await popupLaunchers.launchChoicePopup(result.title || 'Choose', result.message, result.options || []);
|
|
43
34
|
if (selectedId && result.onSelect) {
|
|
44
35
|
const nextResult = await result.onSelect(selectedId);
|
|
45
|
-
await handleResultWithPopups(nextResult, popupLaunchers
|
|
36
|
+
await handleResultWithPopups(nextResult, popupLaunchers);
|
|
46
37
|
}
|
|
47
38
|
return;
|
|
48
39
|
}
|
|
@@ -51,7 +42,7 @@ async function handleResultWithPopups(result, popupLaunchers, context, setAction
|
|
|
51
42
|
const inputValue = await popupLaunchers.launchInputPopup(result.title || 'Input', result.message, result.placeholder, result.defaultValue);
|
|
52
43
|
if (inputValue !== null && result.onSubmit) {
|
|
53
44
|
const nextResult = await result.onSubmit(inputValue);
|
|
54
|
-
await handleResultWithPopups(nextResult, popupLaunchers
|
|
45
|
+
await handleResultWithPopups(nextResult, popupLaunchers);
|
|
55
46
|
}
|
|
56
47
|
return;
|
|
57
48
|
}
|
|
@@ -60,14 +51,8 @@ async function handleResultWithPopups(result, popupLaunchers, context, setAction
|
|
|
60
51
|
const { default: stateManager } = await import('../shared/StateManager.js');
|
|
61
52
|
const type = result.type === 'error' ? 'error' : result.type === 'success' ? 'success' : 'info';
|
|
62
53
|
stateManager.showToast(result.message, type);
|
|
63
|
-
// Force repaint after showing toast
|
|
64
|
-
if (context.forceRepaint) {
|
|
65
|
-
setTimeout(() => {
|
|
66
|
-
context.forceRepaint();
|
|
67
|
-
}, 100);
|
|
68
|
-
}
|
|
69
54
|
}
|
|
70
|
-
export default function useActionSystem({ panes, savePanes, sessionName, projectName, onPaneUpdate, onPaneRemove,
|
|
55
|
+
export default function useActionSystem({ panes, savePanes, sessionName, projectName, onPaneUpdate, onPaneRemove, onActionResult, popupLaunchers, }) {
|
|
71
56
|
// TUI state for rendering dialogs
|
|
72
57
|
const [actionState, setActionState] = useState(createInitialTUIState());
|
|
73
58
|
// Create action context
|
|
@@ -78,16 +63,15 @@ export default function useActionSystem({ panes, savePanes, sessionName, project
|
|
|
78
63
|
savePanes,
|
|
79
64
|
onPaneUpdate,
|
|
80
65
|
onPaneRemove,
|
|
81
|
-
forceRepaint,
|
|
82
66
|
onActionResult,
|
|
83
|
-
}), [panes, sessionName, projectName, savePanes, onPaneUpdate, onPaneRemove,
|
|
67
|
+
}), [panes, sessionName, projectName, savePanes, onPaneUpdate, onPaneRemove, onActionResult]);
|
|
84
68
|
// Execute an action and handle the result
|
|
85
69
|
const executeActionWithHandling = useCallback(async (actionId, pane, params) => {
|
|
86
70
|
try {
|
|
87
71
|
const result = await executeAction(actionId, pane, context, params);
|
|
88
72
|
// If popup launchers are available, handle interactive results with popups
|
|
89
73
|
if (popupLaunchers) {
|
|
90
|
-
await handleResultWithPopups(result, popupLaunchers
|
|
74
|
+
await handleResultWithPopups(result, popupLaunchers);
|
|
91
75
|
}
|
|
92
76
|
else {
|
|
93
77
|
// Fall back to inline dialogs if popup launchers not available
|
|
@@ -131,7 +115,7 @@ export default function useActionSystem({ panes, savePanes, sessionName, project
|
|
|
131
115
|
}
|
|
132
116
|
// Handle the result (may trigger more dialogs)
|
|
133
117
|
if (popupLaunchers) {
|
|
134
|
-
await handleResultWithPopups(result, popupLaunchers
|
|
118
|
+
await handleResultWithPopups(result, popupLaunchers);
|
|
135
119
|
}
|
|
136
120
|
else {
|
|
137
121
|
handleActionResult(result, actionState, (updates) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionSystem.js","sourceRoot":"","sources":["../../src/hooks/useActionSystem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,aAAa,EAAkC,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"useActionSystem.js","sourceRoot":"","sources":["../../src/hooks/useActionSystem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,aAAa,EAAkC,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,iCAAiC,CAAC;AAqBzC;;;;;;GAMG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAoB,EACpB,cAAuD;IAEvD,yBAAyB;IACzB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,EAAE,kBAAkB,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,kBAAkB,CACvD,MAAM,CAAC,KAAK,IAAI,SAAS,EACzB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,CACnB,CAAC;QAEF,IAAI,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,EAAE,iBAAiB,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,iBAAiB,CACvD,MAAM,CAAC,KAAK,IAAI,QAAQ,EACxB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,OAAO,IAAI,EAAE,CACrB,CAAC;QAEF,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,gBAAgB,CACtD,MAAM,CAAC,KAAK,IAAI,OAAO,EACvB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,CACpB,CAAC;QAEF,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO;IACT,CAAC;IAED,8DAA8D;IAC9D,uCAAuC;IACvC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACQ;IACtB,kCAAkC;IAClC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAiB,qBAAqB,EAAE,CAAC,CAAC;IAExF,wBAAwB;IACxB,MAAM,OAAO,GAAkB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,KAAK;QACL,WAAW;QACX,WAAW;QACX,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,cAAc;KACf,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAE9F,0CAA0C;IAC1C,MAAM,yBAAyB,GAAG,WAAW,CAAC,KAAK,EACjD,QAAoB,EACpB,IAAc,EACd,MAAY,EACZ,EAAE;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEpE,2EAA2E;YAC3E,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;oBAClD,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0BAA0B;YAC1B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,GAAG,IAAI;gBACP,aAAa,EAAE,kBAAkB,KAAK,EAAE;gBACxC,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3C,qDAAqD;IACrD,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,EACvC,QAA8C,EAC9C,OAA8D,EAC9D,EAAE;QACF,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC,eAAe;QACrE,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,eAAe,CAAC;QAEpE,IAAI,CAAC;YACH,0CAA0C;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACjB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtB,GAAG,IAAI;oBACP,kBAAkB,EAAE,IAAI;oBACxB,eAAe;oBACf,eAAe,EAAE,SAAS;iBAC3B,CAAC,CAAC,CAAC;YACN,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAEhC,gBAAgB;YAChB,IAAI,YAAY,EAAE,CAAC;gBACjB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtB,GAAG,IAAI;oBACP,kBAAkB,EAAE,KAAK;iBAC1B,CAAC,CAAC,CAAC;YACN,CAAC;YAED,+CAA+C;YAC/C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;oBAClD,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+BAA+B;YAC/B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,GAAG,IAAI;gBACP,kBAAkB,EAAE,KAAK;gBACzB,aAAa,EAAE,qBAAqB,KAAK,EAAE;gBAC3C,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3C,0BAA0B;IAC1B,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,UAAgC,EAAE,EAAE;QACnE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,GAAG,IAAI;YACP,CAAC,UAAU,CAAC,EAAE,KAAK;SACpB,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,uBAAuB;IACvB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,GAAG,IAAI;YACP,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,WAAW;QACX,aAAa,EAAE,yBAAyB;QACxC,eAAe;QACf,WAAW;QACX,WAAW;QACX,cAAc;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentDetection.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgentDetection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAgentDetection.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgentDetection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,OAAO,UAAU,iBAAiB;;EAmBxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentDetection.js","sourceRoot":"","sources":["../../src/hooks/useAgentDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useAgentDetection.js","sourceRoot":"","sources":["../../src/hooks/useAgentDetection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgentStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useAgentStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgentStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIzD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAGD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;AAElE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,oBAAoB,GAAG,cAAc,CAgF9G"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { useEffect, useState, useRef } from 'react';
|
|
2
2
|
import { getStatusDetector } from '../services/StatusDetector.js';
|
|
3
|
+
import { LogService } from '../services/LogService.js';
|
|
3
4
|
export default function useAgentStatus({ panes, suspend, onPaneRemoved }) {
|
|
4
5
|
const [statuses, setStatuses] = useState(new Map());
|
|
5
6
|
const statusDetector = useRef(getStatusDetector());
|
|
6
7
|
const panesRef = useRef(panes);
|
|
7
8
|
const onPaneRemovedRef = useRef(onPaneRemoved);
|
|
9
|
+
const lastMonitorSignature = useRef('');
|
|
8
10
|
// Keep refs up to date
|
|
9
11
|
panesRef.current = panes;
|
|
10
12
|
onPaneRemovedRef.current = onPaneRemoved;
|
|
@@ -13,6 +15,10 @@ export default function useAgentStatus({ panes, suspend, onPaneRemoved }) {
|
|
|
13
15
|
// Subscribe to status updates from the detector
|
|
14
16
|
const handleStatusUpdate = (event) => {
|
|
15
17
|
setStatuses(prevStatuses => {
|
|
18
|
+
const existing = prevStatuses.get(event.paneId);
|
|
19
|
+
if (existing === event.status) {
|
|
20
|
+
return prevStatuses;
|
|
21
|
+
}
|
|
16
22
|
const newStatuses = new Map(prevStatuses);
|
|
17
23
|
newStatuses.set(event.paneId, event.status);
|
|
18
24
|
return newStatuses;
|
|
@@ -44,13 +50,19 @@ export default function useAgentStatus({ panes, suspend, onPaneRemoved }) {
|
|
|
44
50
|
}, []);
|
|
45
51
|
useEffect(() => {
|
|
46
52
|
const detector = statusDetector.current;
|
|
47
|
-
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
console.error('Failed to monitor panes:', err);
|
|
52
|
-
});
|
|
53
|
+
const paneSignature = panes.map((pane) => pane.id).join(',');
|
|
54
|
+
if (suspend || panes.length === 0) {
|
|
55
|
+
lastMonitorSignature.current = '';
|
|
56
|
+
return;
|
|
53
57
|
}
|
|
58
|
+
if (lastMonitorSignature.current === paneSignature) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
lastMonitorSignature.current = paneSignature;
|
|
62
|
+
// Update monitoring when panes change or suspend state changes
|
|
63
|
+
detector.monitorPanes(panes).catch(err => {
|
|
64
|
+
LogService.getInstance().debug(`Failed to monitor panes: ${err instanceof Error ? err.message : String(err)}`, 'useAgentStatus');
|
|
65
|
+
});
|
|
54
66
|
}, [panes, suspend]);
|
|
55
67
|
return statuses;
|
|
56
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentStatus.js","sourceRoot":"","sources":["../../src/hooks/useAgentStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"useAgentStatus.js","sourceRoot":"","sources":["../../src/hooks/useAgentStatus.ts"],"names":[],"mappings":"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"}
|