dmux 3.1.1 → 3.3.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/dist/DmuxApp.d.ts +2 -2
- package/dist/DmuxApp.d.ts.map +1 -1
- package/dist/DmuxApp.js +405 -1134
- package/dist/DmuxApp.js.map +1 -1
- package/dist/actions/implementations/closeAction.d.ts +10 -0
- package/dist/actions/implementations/closeAction.d.ts.map +1 -0
- package/dist/actions/implementations/closeAction.js +197 -0
- package/dist/actions/implementations/closeAction.js.map +1 -0
- package/dist/actions/implementations/copyPathAction.d.ts +10 -0
- package/dist/actions/implementations/copyPathAction.d.ts.map +1 -0
- package/dist/actions/implementations/copyPathAction.js +34 -0
- package/dist/actions/implementations/copyPathAction.js.map +1 -0
- package/dist/actions/implementations/duplicateAction.d.ts +10 -0
- package/dist/actions/implementations/duplicateAction.d.ts.map +1 -0
- package/dist/actions/implementations/duplicateAction.js +25 -0
- package/dist/actions/implementations/duplicateAction.js.map +1 -0
- package/dist/actions/implementations/index.d.ts +14 -0
- package/dist/actions/implementations/index.d.ts.map +1 -0
- package/dist/actions/implementations/index.js +14 -0
- package/dist/actions/implementations/index.js.map +1 -0
- package/dist/actions/implementations/mergeAction.d.ts +14 -0
- package/dist/actions/implementations/mergeAction.d.ts.map +1 -0
- package/dist/actions/implementations/mergeAction.js +84 -0
- package/dist/actions/implementations/mergeAction.js.map +1 -0
- package/dist/actions/implementations/openInEditorAction.d.ts +12 -0
- package/dist/actions/implementations/openInEditorAction.d.ts.map +1 -0
- package/dist/actions/implementations/openInEditorAction.js +33 -0
- package/dist/actions/implementations/openInEditorAction.js.map +1 -0
- package/dist/actions/implementations/renameAction.d.ts +13 -0
- package/dist/actions/implementations/renameAction.d.ts.map +1 -0
- package/dist/actions/implementations/renameAction.js +18 -0
- package/dist/actions/implementations/renameAction.js.map +1 -0
- package/dist/actions/implementations/toggleAutopilotAction.d.ts +10 -0
- package/dist/actions/implementations/toggleAutopilotAction.d.ts.map +1 -0
- package/dist/actions/implementations/toggleAutopilotAction.js +33 -0
- package/dist/actions/implementations/toggleAutopilotAction.js.map +1 -0
- package/dist/actions/implementations/viewAction.d.ts +10 -0
- package/dist/actions/implementations/viewAction.d.ts.map +1 -0
- package/dist/actions/implementations/viewAction.js +26 -0
- package/dist/actions/implementations/viewAction.js.map +1 -0
- package/dist/actions/merge/commitMessageHandler.d.ts +27 -0
- package/dist/actions/merge/commitMessageHandler.d.ts.map +1 -0
- package/dist/actions/merge/commitMessageHandler.js +131 -0
- package/dist/actions/merge/commitMessageHandler.js.map +1 -0
- package/dist/actions/merge/conflictResolution.d.ts +13 -0
- package/dist/actions/merge/conflictResolution.d.ts.map +1 -0
- package/dist/actions/merge/conflictResolution.js +134 -0
- package/dist/actions/merge/conflictResolution.js.map +1 -0
- package/dist/actions/merge/issueHandlers/index.d.ts +11 -0
- package/dist/actions/merge/issueHandlers/index.d.ts.map +1 -0
- package/dist/actions/merge/issueHandlers/index.js +8 -0
- package/dist/actions/merge/issueHandlers/index.js.map +1 -0
- package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts +13 -0
- package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -0
- package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +72 -0
- package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -0
- package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts +13 -0
- package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts.map +1 -0
- package/dist/actions/merge/issueHandlers/mergeConflictHandler.js +52 -0
- package/dist/actions/merge/issueHandlers/mergeConflictHandler.js.map +1 -0
- package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts +7 -0
- package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts.map +1 -0
- package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js +12 -0
- package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js.map +1 -0
- package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +13 -0
- package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -0
- package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +49 -0
- package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -0
- package/dist/actions/merge/mergeExecution.d.ts +22 -0
- package/dist/actions/merge/mergeExecution.d.ts.map +1 -0
- package/dist/actions/merge/mergeExecution.js +180 -0
- package/dist/actions/merge/mergeExecution.js.map +1 -0
- package/dist/actions/paneActions.d.ts +3 -40
- package/dist/actions/paneActions.d.ts.map +1 -1
- package/dist/actions/paneActions.js +4 -981
- package/dist/actions/paneActions.js.map +1 -1
- package/dist/actions/types.d.ts +2 -0
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js +1 -0
- package/dist/actions/types.js.map +1 -1
- package/dist/components/{ActionChoiceDialog.d.ts → dialogs/ActionChoiceDialog.d.ts} +1 -1
- package/dist/components/dialogs/ActionChoiceDialog.d.ts.map +1 -0
- package/dist/components/dialogs/ActionChoiceDialog.js.map +1 -0
- package/dist/components/dialogs/ActionConfirmDialog.d.ts.map +1 -0
- package/dist/components/dialogs/ActionConfirmDialog.js.map +1 -0
- package/dist/components/dialogs/ActionInputDialog.d.ts.map +1 -0
- package/dist/components/{ActionInputDialog.js → dialogs/ActionInputDialog.js} +4 -3
- package/dist/components/dialogs/ActionInputDialog.js.map +1 -0
- package/dist/components/dialogs/ActionProgressDialog.d.ts.map +1 -0
- package/dist/components/dialogs/ActionProgressDialog.js.map +1 -0
- package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -0
- package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -0
- package/dist/components/{CloseOptionsDialog.d.ts → dialogs/CloseOptionsDialog.d.ts} +1 -1
- package/dist/components/dialogs/CloseOptionsDialog.d.ts.map +1 -0
- package/dist/components/dialogs/CloseOptionsDialog.js.map +1 -0
- package/dist/components/dialogs/CommandPromptDialog.d.ts.map +1 -0
- package/dist/components/{CommandPromptDialog.js → dialogs/CommandPromptDialog.js} +1 -1
- package/dist/components/dialogs/CommandPromptDialog.js.map +1 -0
- package/dist/components/dialogs/DialogBox.d.ts +16 -0
- package/dist/components/dialogs/DialogBox.d.ts.map +1 -0
- package/dist/components/dialogs/DialogBox.js +12 -0
- package/dist/components/dialogs/DialogBox.js.map +1 -0
- package/dist/components/dialogs/HooksDialog.d.ts.map +1 -0
- package/dist/components/dialogs/HooksDialog.js.map +1 -0
- package/dist/components/{MergeConfirmationDialog.d.ts → dialogs/MergeConfirmationDialog.d.ts} +1 -1
- package/dist/components/dialogs/MergeConfirmationDialog.d.ts.map +1 -0
- package/dist/components/dialogs/MergeConfirmationDialog.js.map +1 -0
- package/dist/components/{SettingsDialog.d.ts → dialogs/SettingsDialog.d.ts} +1 -1
- package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -0
- package/dist/components/dialogs/SettingsDialog.js.map +1 -0
- package/dist/components/dialogs/UpdateDialog.d.ts.map +1 -0
- package/dist/components/dialogs/UpdateDialog.js.map +1 -0
- package/dist/components/indicators/CreatingIndicator.d.ts.map +1 -0
- package/dist/components/indicators/CreatingIndicator.js.map +1 -0
- package/dist/components/indicators/LoadingIndicator.d.ts.map +1 -0
- package/dist/components/indicators/LoadingIndicator.js.map +1 -0
- package/dist/components/indicators/RunningIndicator.d.ts.map +1 -0
- package/dist/components/indicators/RunningIndicator.js.map +1 -0
- package/dist/components/indicators/Spinner.d.ts.map +1 -0
- package/dist/components/indicators/Spinner.js.map +1 -0
- package/dist/components/indicators/UpdatingIndicator.d.ts.map +1 -0
- package/dist/components/indicators/UpdatingIndicator.js.map +1 -0
- package/dist/components/indicators/index.d.ts +6 -0
- package/dist/components/indicators/index.d.ts.map +1 -0
- package/dist/components/indicators/index.js +6 -0
- package/dist/components/indicators/index.js.map +1 -0
- package/dist/components/inputs/CleanTextInput.d.ts +19 -0
- package/dist/components/inputs/CleanTextInput.d.ts.map +1 -0
- package/dist/{CleanTextInput.js → components/inputs/CleanTextInput.js} +98 -160
- package/dist/components/inputs/CleanTextInput.js.map +1 -0
- package/dist/components/inputs/StyledTextInput.d.ts.map +1 -0
- package/dist/components/inputs/StyledTextInput.js.map +1 -0
- package/dist/components/inputs/index.d.ts +3 -0
- package/dist/components/inputs/index.d.ts.map +1 -0
- package/dist/components/inputs/index.js +3 -0
- package/dist/components/inputs/index.js.map +1 -0
- package/dist/components/{KebabMenu.d.ts → panes/KebabMenu.d.ts} +1 -1
- package/dist/components/panes/KebabMenu.d.ts.map +1 -0
- package/dist/components/panes/KebabMenu.js.map +1 -0
- package/dist/components/panes/MergePane.d.ts.map +1 -0
- package/dist/{MergePane.js → components/panes/MergePane.js} +1 -1
- package/dist/components/panes/MergePane.js.map +1 -0
- package/dist/components/{PaneCard.d.ts → panes/PaneCard.d.ts} +4 -2
- package/dist/components/panes/PaneCard.d.ts.map +1 -0
- package/dist/components/panes/PaneCard.js +55 -0
- package/dist/components/panes/PaneCard.js.map +1 -0
- package/dist/components/panes/PanesGrid.d.ts +12 -0
- package/dist/components/panes/PanesGrid.d.ts.map +1 -0
- package/dist/components/panes/PanesGrid.js +49 -0
- package/dist/components/panes/PanesGrid.js.map +1 -0
- package/dist/components/panes/index.d.ts +5 -0
- package/dist/components/panes/index.d.ts.map +1 -0
- package/dist/components/panes/index.js +5 -0
- package/dist/components/panes/index.js.map +1 -0
- package/dist/components/popups/agentChoicePopup.d.ts +7 -0
- package/dist/components/popups/agentChoicePopup.d.ts.map +1 -0
- package/dist/components/popups/agentChoicePopup.js +74 -0
- package/dist/components/popups/agentChoicePopup.js.map +1 -0
- package/dist/components/popups/choicePopup.d.ts +7 -0
- package/dist/components/popups/choicePopup.d.ts.map +1 -0
- package/dist/components/popups/choicePopup.js +64 -0
- package/dist/components/popups/choicePopup.js.map +1 -0
- package/dist/components/popups/config.d.ts +40 -0
- package/dist/components/popups/config.d.ts.map +1 -0
- package/dist/components/popups/config.js +40 -0
- package/dist/components/popups/config.js.map +1 -0
- package/dist/components/popups/confirmPopup.d.ts +7 -0
- package/dist/components/popups/confirmPopup.d.ts.map +1 -0
- package/dist/components/popups/confirmPopup.js +71 -0
- package/dist/components/popups/confirmPopup.js.map +1 -0
- package/dist/components/popups/hooksPopup.d.ts +7 -0
- package/dist/components/popups/hooksPopup.d.ts.map +1 -0
- package/dist/components/popups/hooksPopup.js +71 -0
- package/dist/components/popups/hooksPopup.js.map +1 -0
- package/dist/components/popups/inputPopup.d.ts +7 -0
- package/dist/components/popups/inputPopup.d.ts.map +1 -0
- package/dist/components/popups/inputPopup.js +47 -0
- package/dist/components/popups/inputPopup.js.map +1 -0
- package/dist/components/popups/kebabMenuPopup.d.ts +7 -0
- package/dist/components/popups/kebabMenuPopup.d.ts.map +1 -0
- package/dist/components/popups/kebabMenuPopup.js +52 -0
- package/dist/components/popups/kebabMenuPopup.js.map +1 -0
- package/dist/components/popups/logsPopup.d.ts +12 -0
- package/dist/components/popups/logsPopup.d.ts.map +1 -0
- package/dist/components/popups/logsPopup.js +372 -0
- package/dist/components/popups/logsPopup.js.map +1 -0
- package/dist/components/popups/mergePopup.d.ts +7 -0
- package/dist/components/popups/mergePopup.d.ts.map +1 -0
- package/dist/components/popups/mergePopup.js +310 -0
- package/dist/components/popups/mergePopup.js.map +1 -0
- package/dist/components/popups/newPanePopup.d.ts +7 -0
- package/dist/components/popups/newPanePopup.d.ts.map +1 -0
- package/dist/components/popups/newPanePopup.js +234 -0
- package/dist/components/popups/newPanePopup.js.map +1 -0
- package/dist/components/popups/progressPopup.d.ts +8 -0
- package/dist/components/popups/progressPopup.d.ts.map +1 -0
- package/dist/components/popups/progressPopup.js +53 -0
- package/dist/components/popups/progressPopup.js.map +1 -0
- package/dist/components/popups/remotePopup.d.ts +6 -0
- package/dist/components/popups/remotePopup.d.ts.map +1 -0
- package/dist/components/popups/remotePopup.js +166 -0
- package/dist/components/popups/remotePopup.js.map +1 -0
- package/dist/components/popups/settingsPopup.d.ts +7 -0
- package/dist/components/popups/settingsPopup.d.ts.map +1 -0
- package/dist/components/popups/settingsPopup.js +212 -0
- package/dist/components/popups/settingsPopup.js.map +1 -0
- package/dist/components/popups/shared/FileList.d.ts +13 -0
- package/dist/components/popups/shared/FileList.d.ts.map +1 -0
- package/dist/components/popups/shared/FileList.js +61 -0
- package/dist/components/popups/shared/FileList.js.map +1 -0
- package/dist/components/popups/shared/PopupContainer.d.ts +14 -0
- package/dist/components/popups/shared/PopupContainer.d.ts.map +1 -0
- package/dist/components/popups/shared/PopupContainer.js +15 -0
- package/dist/components/popups/shared/PopupContainer.js.map +1 -0
- package/dist/components/popups/shared/PopupInputBox.d.ts +11 -0
- package/dist/components/popups/shared/PopupInputBox.d.ts.map +1 -0
- package/dist/components/popups/shared/PopupInputBox.js +10 -0
- package/dist/components/popups/shared/PopupInputBox.js.map +1 -0
- package/dist/components/popups/shared/PopupWrapper.d.ts +37 -0
- package/dist/components/popups/shared/PopupWrapper.d.ts.map +1 -0
- package/dist/components/popups/shared/PopupWrapper.js +88 -0
- package/dist/components/popups/shared/PopupWrapper.js.map +1 -0
- package/dist/components/popups/shared/index.d.ts +8 -0
- package/dist/components/popups/shared/index.d.ts.map +1 -0
- package/dist/components/popups/shared/index.js +8 -0
- package/dist/components/popups/shared/index.js.map +1 -0
- package/dist/components/popups/shortcutsPopup.d.ts +6 -0
- package/dist/components/popups/shortcutsPopup.d.ts.map +1 -0
- package/dist/components/popups/shortcutsPopup.js +74 -0
- package/dist/components/popups/shortcutsPopup.js.map +1 -0
- package/dist/components/popups/templates/SimpleInputPopup.d.ts +15 -0
- package/dist/components/popups/templates/SimpleInputPopup.d.ts.map +1 -0
- package/dist/components/popups/templates/SimpleInputPopup.js +28 -0
- package/dist/components/popups/templates/SimpleInputPopup.js.map +1 -0
- package/dist/components/ui/FileCopyPrompt.d.ts.map +1 -0
- package/dist/components/ui/FileCopyPrompt.js.map +1 -0
- package/dist/components/ui/FooterHelp.d.ts +19 -0
- package/dist/components/ui/FooterHelp.d.ts.map +1 -0
- package/dist/components/ui/FooterHelp.js +55 -0
- package/dist/components/ui/FooterHelp.js.map +1 -0
- package/dist/components/ui/QRCode.d.ts.map +1 -0
- package/dist/components/ui/QRCode.js.map +1 -0
- package/dist/components/ui/index.d.ts +4 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/index.js +4 -0
- package/dist/components/ui/index.js.map +1 -0
- package/dist/constants/timing.d.ts +22 -0
- package/dist/constants/timing.d.ts.map +1 -0
- package/dist/constants/timing.js +26 -0
- package/dist/constants/timing.js.map +1 -0
- package/dist/dashboard.js +1 -1
- package/dist/hooks/useActionSystem.d.ts +18 -4
- package/dist/hooks/useActionSystem.d.ts.map +1 -1
- package/dist/hooks/useActionSystem.js +125 -30
- package/dist/hooks/useActionSystem.js.map +1 -1
- package/dist/hooks/useDebugInfo.d.ts +11 -0
- package/dist/hooks/useDebugInfo.d.ts.map +1 -0
- package/dist/hooks/useDebugInfo.js +34 -0
- package/dist/hooks/useDebugInfo.js.map +1 -0
- package/dist/hooks/useDialogState.d.ts +22 -0
- package/dist/hooks/useDialogState.d.ts.map +1 -0
- package/dist/hooks/useDialogState.js +62 -0
- package/dist/hooks/useDialogState.js.map +1 -0
- package/dist/hooks/useInputHandling.d.ts +60 -0
- package/dist/hooks/useInputHandling.d.ts.map +1 -0
- package/dist/hooks/useInputHandling.js +280 -0
- package/dist/hooks/useInputHandling.js.map +1 -0
- package/dist/hooks/useLayoutManagement.d.ts +12 -0
- package/dist/hooks/useLayoutManagement.d.ts.map +1 -0
- package/dist/hooks/useLayoutManagement.js +58 -0
- package/dist/hooks/useLayoutManagement.js.map +1 -0
- package/dist/hooks/useNavigation.js +1 -1
- package/dist/hooks/useNavigation.js.map +1 -1
- package/dist/hooks/usePaneCreation.d.ts +1 -2
- package/dist/hooks/usePaneCreation.d.ts.map +1 -1
- package/dist/hooks/usePaneCreation.js +17 -36
- package/dist/hooks/usePaneCreation.js.map +1 -1
- package/dist/hooks/usePaneLoading.d.ts +45 -0
- package/dist/hooks/usePaneLoading.d.ts.map +1 -0
- package/dist/hooks/usePaneLoading.js +188 -0
- package/dist/hooks/usePaneLoading.js.map +1 -0
- package/dist/hooks/usePaneRunner.d.ts.map +1 -1
- package/dist/hooks/usePaneRunner.js +16 -8
- package/dist/hooks/usePaneRunner.js.map +1 -1
- package/dist/hooks/usePaneSync.d.ts +34 -0
- package/dist/hooks/usePaneSync.d.ts.map +1 -0
- package/dist/hooks/usePaneSync.js +182 -0
- package/dist/hooks/usePaneSync.js.map +1 -0
- package/dist/hooks/usePanes.d.ts.map +1 -1
- package/dist/hooks/usePanes.js +81 -258
- package/dist/hooks/usePanes.js.map +1 -1
- package/dist/hooks/useServices.d.ts +24 -0
- package/dist/hooks/useServices.d.ts.map +1 -0
- package/dist/hooks/useServices.js +39 -0
- package/dist/hooks/useServices.js.map +1 -0
- package/dist/hooks/useShellDetection.d.ts +10 -0
- package/dist/hooks/useShellDetection.d.ts.map +1 -0
- package/dist/hooks/useShellDetection.js +53 -0
- package/dist/hooks/useShellDetection.js.map +1 -0
- package/dist/hooks/useStatusMessages.d.ts +11 -0
- package/dist/hooks/useStatusMessages.d.ts.map +1 -0
- package/dist/hooks/useStatusMessages.js +32 -0
- package/dist/hooks/useStatusMessages.js.map +1 -0
- package/dist/hooks/useTemporaryStatus.d.ts +13 -0
- package/dist/hooks/useTemporaryStatus.d.ts.map +1 -0
- package/dist/hooks/useTemporaryStatus.js +30 -0
- package/dist/hooks/useTemporaryStatus.js.map +1 -0
- package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
- package/dist/hooks/useTerminalWidth.js +7 -12
- package/dist/hooks/useTerminalWidth.js.map +1 -1
- package/dist/hooks/useTunnelManagement.d.ts +18 -0
- package/dist/hooks/useTunnelManagement.d.ts.map +1 -0
- package/dist/hooks/useTunnelManagement.js +55 -0
- package/dist/hooks/useTunnelManagement.js.map +1 -0
- package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
- package/dist/hooks/useWorktreeActions.js +23 -24
- package/dist/hooks/useWorktreeActions.js.map +1 -1
- package/dist/index.js +279 -73
- package/dist/index.js.map +1 -1
- package/dist/layout/LayoutCalculator.d.ts +62 -0
- package/dist/layout/LayoutCalculator.d.ts.map +1 -0
- package/dist/layout/LayoutCalculator.js +143 -0
- package/dist/layout/LayoutCalculator.js.map +1 -0
- package/dist/layout/SpacerManager.d.ts +64 -0
- package/dist/layout/SpacerManager.d.ts.map +1 -0
- package/dist/layout/SpacerManager.js +148 -0
- package/dist/layout/SpacerManager.js.map +1 -0
- package/dist/layout/TmuxLayoutApplier.d.ts +59 -0
- package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -0
- package/dist/layout/TmuxLayoutApplier.js +135 -0
- package/dist/layout/TmuxLayoutApplier.js.map +1 -0
- package/dist/panes/decorative-pane.d.ts +3 -0
- package/dist/panes/decorative-pane.d.ts.map +1 -0
- package/dist/panes/decorative-pane.js +136 -0
- package/dist/panes/decorative-pane.js.map +1 -0
- package/dist/panes/spacer-pane.d.ts +8 -0
- package/dist/panes/spacer-pane.d.ts.map +1 -0
- package/dist/panes/spacer-pane.js +40 -0
- package/dist/panes/spacer-pane.js.map +1 -0
- package/dist/server/embedded-assets.d.ts.map +1 -1
- package/dist/server/embedded-assets.js +849 -4752
- package/dist/server/embedded-assets.js.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/actionsRoutes.d.ts +2 -0
- package/dist/server/routes/actionsRoutes.d.ts.map +1 -0
- package/dist/server/routes/actionsRoutes.js +110 -0
- package/dist/server/routes/actionsRoutes.js.map +1 -0
- package/dist/server/routes/healthRoutes.d.ts +13 -0
- package/dist/server/routes/healthRoutes.d.ts.map +1 -0
- package/dist/server/routes/healthRoutes.js +70 -0
- package/dist/server/routes/healthRoutes.js.map +1 -0
- package/dist/server/routes/index.d.ts +8 -0
- package/dist/server/routes/index.d.ts.map +1 -0
- package/dist/server/routes/index.js +67 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/keysRoutes.d.ts +20 -0
- package/dist/server/routes/keysRoutes.d.ts.map +1 -0
- package/dist/server/routes/keysRoutes.js +111 -0
- package/dist/server/routes/keysRoutes.js.map +1 -0
- package/dist/server/routes/panesRoutes.d.ts +2 -0
- package/dist/server/routes/panesRoutes.d.ts.map +1 -0
- package/dist/server/routes/panesRoutes.js +373 -0
- package/dist/server/routes/panesRoutes.js.map +1 -0
- package/dist/server/routes/settingsRoutes.d.ts +94 -0
- package/dist/server/routes/settingsRoutes.d.ts.map +1 -0
- package/dist/server/routes/settingsRoutes.js +159 -0
- package/dist/server/routes/settingsRoutes.js.map +1 -0
- package/dist/server/routes/streamRoutes.d.ts +18 -0
- package/dist/server/routes/streamRoutes.d.ts.map +1 -0
- package/dist/server/routes/streamRoutes.js +87 -0
- package/dist/server/routes/streamRoutes.js.map +1 -0
- package/dist/server/routes/tunnelRoutes.d.ts +11 -0
- package/dist/server/routes/tunnelRoutes.d.ts.map +1 -0
- package/dist/server/routes/tunnelRoutes.js +28 -0
- package/dist/server/routes/tunnelRoutes.js.map +1 -0
- package/dist/server/routes.d.ts +16 -2
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +16 -811
- package/dist/server/routes.js.map +1 -1
- package/dist/{AutoUpdater.d.ts → services/AutoUpdater.d.ts} +1 -0
- package/dist/services/AutoUpdater.d.ts.map +1 -0
- package/dist/{AutoUpdater.js → services/AutoUpdater.js} +42 -9
- package/dist/services/AutoUpdater.js.map +1 -0
- package/dist/services/ConfigWatcher.d.ts.map +1 -1
- package/dist/services/ConfigWatcher.js +10 -3
- package/dist/services/ConfigWatcher.js.map +1 -1
- package/dist/services/LogService.d.ts +112 -0
- package/dist/services/LogService.d.ts.map +1 -0
- package/dist/services/LogService.js +252 -0
- package/dist/services/LogService.js.map +1 -0
- package/dist/services/PaneAnalyzer.d.ts.map +1 -0
- package/dist/{PaneAnalyzer.js → services/PaneAnalyzer.js} +1 -1
- package/dist/services/PaneAnalyzer.js.map +1 -0
- package/dist/services/PaneLifecycleManager.d.ts +60 -0
- package/dist/services/PaneLifecycleManager.d.ts.map +1 -0
- package/dist/services/PaneLifecycleManager.js +119 -0
- package/dist/services/PaneLifecycleManager.js.map +1 -0
- package/dist/services/PaneWorkerManager.d.ts.map +1 -1
- package/dist/services/PaneWorkerManager.js +41 -12
- package/dist/services/PaneWorkerManager.js.map +1 -1
- package/dist/services/PopupManager.d.ts +68 -0
- package/dist/services/PopupManager.d.ts.map +1 -0
- package/dist/services/PopupManager.js +415 -0
- package/dist/services/PopupManager.js.map +1 -0
- package/dist/services/StatusDetector.js +1 -1
- package/dist/services/StatusDetector.js.map +1 -1
- package/dist/services/TerminalStreamer.d.ts +1 -0
- package/dist/services/TerminalStreamer.d.ts.map +1 -1
- package/dist/services/TerminalStreamer.js +22 -16
- package/dist/services/TerminalStreamer.js.map +1 -1
- package/dist/services/TmuxService.d.ts +298 -0
- package/dist/services/TmuxService.d.ts.map +1 -0
- package/dist/services/TmuxService.js +768 -0
- package/dist/services/TmuxService.js.map +1 -0
- package/dist/services/TunnelService.d.ts +1 -0
- package/dist/services/TunnelService.d.ts.map +1 -1
- package/dist/services/TunnelService.js +57 -15
- package/dist/services/TunnelService.js.map +1 -1
- package/dist/shared/StateManager.d.ts +49 -1
- package/dist/shared/StateManager.d.ts.map +1 -1
- package/dist/shared/StateManager.js +97 -2
- package/dist/shared/StateManager.js.map +1 -1
- package/dist/theme/colors.d.ts +25 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +33 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/asciiArt.d.ts +26 -0
- package/dist/utils/asciiArt.d.ts.map +1 -0
- package/dist/utils/asciiArt.js +75 -0
- package/dist/utils/asciiArt.js.map +1 -0
- package/dist/utils/conflictMonitor.d.ts +20 -0
- package/dist/utils/conflictMonitor.d.ts.map +1 -0
- package/dist/utils/conflictMonitor.js +113 -0
- package/dist/utils/conflictMonitor.js.map +1 -0
- package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
- package/dist/utils/conflictResolutionPane.js +75 -80
- package/dist/utils/conflictResolutionPane.js.map +1 -1
- package/dist/utils/errorHandling.d.ts +37 -0
- package/dist/utils/errorHandling.d.ts.map +1 -0
- package/dist/utils/errorHandling.js +112 -0
- package/dist/utils/errorHandling.js.map +1 -0
- package/dist/utils/fileScanner.d.ts +23 -0
- package/dist/utils/fileScanner.d.ts.map +1 -0
- package/dist/utils/fileScanner.js +123 -0
- package/dist/utils/fileScanner.js.map +1 -0
- package/dist/utils/generated-agents-doc.d.ts +1 -1
- package/dist/utils/generated-agents-doc.js +1 -1
- package/dist/utils/git.d.ts +4 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +15 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/hooks.d.ts.map +1 -1
- package/dist/utils/hooks.js +65 -36
- package/dist/utils/hooks.js.map +1 -1
- package/dist/utils/hooksDocs.d.ts +1 -1
- package/dist/utils/layoutManager.d.ts +49 -0
- package/dist/utils/layoutManager.d.ts.map +1 -0
- package/dist/utils/layoutManager.js +249 -0
- package/dist/utils/layoutManager.js.map +1 -0
- package/dist/utils/mergeExecution.d.ts.map +1 -1
- package/dist/utils/mergeExecution.js +8 -1
- package/dist/utils/mergeExecution.js.map +1 -1
- package/dist/utils/mergeValidation.d.ts.map +1 -1
- package/dist/utils/mergeValidation.js +42 -13
- package/dist/utils/mergeValidation.js.map +1 -1
- package/dist/utils/paneCreation.d.ts.map +1 -1
- package/dist/utils/paneCreation.js +210 -88
- package/dist/utils/paneCreation.js.map +1 -1
- package/dist/utils/paneRebinding.d.ts +14 -0
- package/dist/utils/paneRebinding.d.ts.map +1 -0
- package/dist/utils/paneRebinding.js +28 -0
- package/dist/utils/paneRebinding.js.map +1 -0
- package/dist/utils/popup.d.ts +97 -0
- package/dist/utils/popup.d.ts.map +1 -0
- package/dist/utils/popup.js +503 -0
- package/dist/utils/popup.js.map +1 -0
- package/dist/utils/postPaneCleanup.d.ts +12 -0
- package/dist/utils/postPaneCleanup.d.ts.map +1 -0
- package/dist/utils/postPaneCleanup.js +54 -0
- package/dist/utils/postPaneCleanup.js.map +1 -0
- package/dist/utils/shellPaneDetection.d.ts +44 -0
- package/dist/utils/shellPaneDetection.d.ts.map +1 -0
- package/dist/utils/shellPaneDetection.js +179 -0
- package/dist/utils/shellPaneDetection.js.map +1 -0
- package/dist/utils/systemCheck.d.ts +19 -0
- package/dist/utils/systemCheck.d.ts.map +1 -0
- package/dist/utils/systemCheck.js +160 -0
- package/dist/utils/systemCheck.js.map +1 -0
- package/dist/utils/tmux.d.ts +72 -1
- package/dist/utils/tmux.d.ts.map +1 -1
- package/dist/utils/tmux.js +369 -99
- package/dist/utils/tmux.js.map +1 -1
- package/dist/utils/welcomePane.d.ts +22 -0
- package/dist/utils/welcomePane.d.ts.map +1 -0
- package/dist/utils/welcomePane.js +111 -0
- package/dist/utils/welcomePane.js.map +1 -0
- package/dist/utils/welcomePaneManager.d.ts +36 -0
- package/dist/utils/welcomePaneManager.d.ts.map +1 -0
- package/dist/utils/welcomePaneManager.js +160 -0
- package/dist/utils/welcomePaneManager.js.map +1 -0
- package/dist/workers/PaneWorker.js +8 -8
- package/dist/workers/PaneWorker.js.map +1 -1
- package/dist/workers/updateChecker.js +1 -1
- package/dist/workers/updateChecker.js.map +1 -1
- package/package.json +7 -2
- package/dist/AutoUpdater.d.ts.map +0 -1
- package/dist/AutoUpdater.js.map +0 -1
- package/dist/BetterTextInput.d.ts +0 -10
- package/dist/BetterTextInput.d.ts.map +0 -1
- package/dist/BetterTextInput.js +0 -177
- package/dist/BetterTextInput.js.map +0 -1
- package/dist/CleanTextInput.d.ts +0 -10
- package/dist/CleanTextInput.d.ts.map +0 -1
- package/dist/CleanTextInput.js.map +0 -1
- package/dist/EnhancedTextInput.d.ts +0 -13
- package/dist/EnhancedTextInput.d.ts.map +0 -1
- package/dist/EnhancedTextInput.js +0 -443
- package/dist/EnhancedTextInput.js.map +0 -1
- package/dist/GeminiTextInput.d.ts +0 -12
- package/dist/GeminiTextInput.d.ts.map +0 -1
- package/dist/GeminiTextInput.js +0 -210
- package/dist/GeminiTextInput.js.map +0 -1
- package/dist/MergePane.d.ts.map +0 -1
- package/dist/MergePane.js.map +0 -1
- package/dist/MultilineTextInput.d.ts +0 -10
- package/dist/MultilineTextInput.d.ts.map +0 -1
- package/dist/MultilineTextInput.js +0 -184
- package/dist/MultilineTextInput.js.map +0 -1
- package/dist/PaneAnalyzer.d.ts.map +0 -1
- package/dist/PaneAnalyzer.js.map +0 -1
- package/dist/SimpleEnhancedInput.d.ts +0 -13
- package/dist/SimpleEnhancedInput.d.ts.map +0 -1
- package/dist/SimpleEnhancedInput.js +0 -639
- package/dist/SimpleEnhancedInput.js.map +0 -1
- package/dist/SimpleGeminiInput.d.ts +0 -12
- package/dist/SimpleGeminiInput.d.ts.map +0 -1
- package/dist/SimpleGeminiInput.js +0 -223
- package/dist/SimpleGeminiInput.js.map +0 -1
- package/dist/StyledTextInput.d.ts.map +0 -1
- package/dist/StyledTextInput.js.map +0 -1
- package/dist/components/ActionChoiceDialog.d.ts.map +0 -1
- package/dist/components/ActionChoiceDialog.js.map +0 -1
- package/dist/components/ActionConfirmDialog.d.ts.map +0 -1
- package/dist/components/ActionConfirmDialog.js.map +0 -1
- package/dist/components/ActionInputDialog.d.ts.map +0 -1
- package/dist/components/ActionInputDialog.js.map +0 -1
- package/dist/components/ActionProgressDialog.d.ts.map +0 -1
- package/dist/components/ActionProgressDialog.js.map +0 -1
- package/dist/components/AgentChoiceDialog.d.ts.map +0 -1
- package/dist/components/AgentChoiceDialog.js.map +0 -1
- package/dist/components/CloseOptionsDialog.d.ts.map +0 -1
- package/dist/components/CloseOptionsDialog.js.map +0 -1
- package/dist/components/CommandPromptDialog.d.ts.map +0 -1
- package/dist/components/CommandPromptDialog.js.map +0 -1
- package/dist/components/CreatingIndicator.d.ts.map +0 -1
- package/dist/components/CreatingIndicator.js.map +0 -1
- package/dist/components/FileCopyPrompt.d.ts.map +0 -1
- package/dist/components/FileCopyPrompt.js.map +0 -1
- package/dist/components/FooterHelp.d.ts +0 -10
- package/dist/components/FooterHelp.d.ts.map +0 -1
- package/dist/components/FooterHelp.js +0 -19
- package/dist/components/FooterHelp.js.map +0 -1
- package/dist/components/HooksDialog.d.ts.map +0 -1
- package/dist/components/HooksDialog.js.map +0 -1
- package/dist/components/KebabMenu.d.ts.map +0 -1
- package/dist/components/KebabMenu.js.map +0 -1
- package/dist/components/LoadingIndicator.d.ts.map +0 -1
- package/dist/components/LoadingIndicator.js.map +0 -1
- package/dist/components/MergeConfirmationDialog.d.ts.map +0 -1
- package/dist/components/MergeConfirmationDialog.js.map +0 -1
- package/dist/components/NewPaneDialog.d.ts +0 -9
- package/dist/components/NewPaneDialog.d.ts.map +0 -1
- package/dist/components/NewPaneDialog.js +0 -11
- package/dist/components/NewPaneDialog.js.map +0 -1
- package/dist/components/PaneCard.d.ts.map +0 -1
- package/dist/components/PaneCard.js +0 -38
- package/dist/components/PaneCard.js.map +0 -1
- package/dist/components/PanesGrid.d.ts +0 -14
- package/dist/components/PanesGrid.d.ts.map +0 -1
- package/dist/components/PanesGrid.js +0 -19
- package/dist/components/PanesGrid.js.map +0 -1
- package/dist/components/QRCode.d.ts.map +0 -1
- package/dist/components/QRCode.js.map +0 -1
- package/dist/components/RunningIndicator.d.ts.map +0 -1
- package/dist/components/RunningIndicator.js.map +0 -1
- package/dist/components/SettingsDialog.d.ts.map +0 -1
- package/dist/components/SettingsDialog.js.map +0 -1
- package/dist/components/Spinner.d.ts.map +0 -1
- package/dist/components/Spinner.js.map +0 -1
- package/dist/components/UpdateDialog.d.ts.map +0 -1
- package/dist/components/UpdateDialog.js.map +0 -1
- package/dist/components/UpdatingIndicator.d.ts.map +0 -1
- package/dist/components/UpdatingIndicator.js.map +0 -1
- package/dist/server/static.d.ts +0 -6
- package/dist/server/static.d.ts.map +0 -1
- package/dist/server/static.js +0 -3040
- package/dist/server/static.js.map +0 -1
- /package/dist/components/{ActionChoiceDialog.js → dialogs/ActionChoiceDialog.js} +0 -0
- /package/dist/components/{ActionConfirmDialog.d.ts → dialogs/ActionConfirmDialog.d.ts} +0 -0
- /package/dist/components/{ActionConfirmDialog.js → dialogs/ActionConfirmDialog.js} +0 -0
- /package/dist/components/{ActionInputDialog.d.ts → dialogs/ActionInputDialog.d.ts} +0 -0
- /package/dist/components/{ActionProgressDialog.d.ts → dialogs/ActionProgressDialog.d.ts} +0 -0
- /package/dist/components/{ActionProgressDialog.js → dialogs/ActionProgressDialog.js} +0 -0
- /package/dist/components/{AgentChoiceDialog.d.ts → dialogs/AgentChoiceDialog.d.ts} +0 -0
- /package/dist/components/{AgentChoiceDialog.js → dialogs/AgentChoiceDialog.js} +0 -0
- /package/dist/components/{CloseOptionsDialog.js → dialogs/CloseOptionsDialog.js} +0 -0
- /package/dist/components/{CommandPromptDialog.d.ts → dialogs/CommandPromptDialog.d.ts} +0 -0
- /package/dist/components/{HooksDialog.d.ts → dialogs/HooksDialog.d.ts} +0 -0
- /package/dist/components/{HooksDialog.js → dialogs/HooksDialog.js} +0 -0
- /package/dist/components/{MergeConfirmationDialog.js → dialogs/MergeConfirmationDialog.js} +0 -0
- /package/dist/components/{SettingsDialog.js → dialogs/SettingsDialog.js} +0 -0
- /package/dist/components/{UpdateDialog.d.ts → dialogs/UpdateDialog.d.ts} +0 -0
- /package/dist/components/{UpdateDialog.js → dialogs/UpdateDialog.js} +0 -0
- /package/dist/components/{CreatingIndicator.d.ts → indicators/CreatingIndicator.d.ts} +0 -0
- /package/dist/components/{CreatingIndicator.js → indicators/CreatingIndicator.js} +0 -0
- /package/dist/components/{LoadingIndicator.d.ts → indicators/LoadingIndicator.d.ts} +0 -0
- /package/dist/components/{LoadingIndicator.js → indicators/LoadingIndicator.js} +0 -0
- /package/dist/components/{RunningIndicator.d.ts → indicators/RunningIndicator.d.ts} +0 -0
- /package/dist/components/{RunningIndicator.js → indicators/RunningIndicator.js} +0 -0
- /package/dist/components/{Spinner.d.ts → indicators/Spinner.d.ts} +0 -0
- /package/dist/components/{Spinner.js → indicators/Spinner.js} +0 -0
- /package/dist/components/{UpdatingIndicator.d.ts → indicators/UpdatingIndicator.d.ts} +0 -0
- /package/dist/components/{UpdatingIndicator.js → indicators/UpdatingIndicator.js} +0 -0
- /package/dist/{StyledTextInput.d.ts → components/inputs/StyledTextInput.d.ts} +0 -0
- /package/dist/{StyledTextInput.js → components/inputs/StyledTextInput.js} +0 -0
- /package/dist/components/{KebabMenu.js → panes/KebabMenu.js} +0 -0
- /package/dist/{MergePane.d.ts → components/panes/MergePane.d.ts} +0 -0
- /package/dist/components/{FileCopyPrompt.d.ts → ui/FileCopyPrompt.d.ts} +0 -0
- /package/dist/components/{FileCopyPrompt.js → ui/FileCopyPrompt.js} +0 -0
- /package/dist/components/{QRCode.d.ts → ui/QRCode.d.ts} +0 -0
- /package/dist/components/{QRCode.js → ui/QRCode.js} +0 -0
- /package/dist/{PaneAnalyzer.d.ts → services/PaneAnalyzer.d.ts} +0 -0
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { execSync } from 'child_process';
|
|
2
1
|
import path from 'path';
|
|
3
2
|
import * as fs from 'fs';
|
|
4
|
-
import {
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import { TmuxService } from '../services/TmuxService.js';
|
|
5
|
+
import { setupSidebarLayout, getTerminalDimensions, splitPane, } from './tmux.js';
|
|
6
|
+
import { SIDEBAR_WIDTH, recalculateAndApplyLayout } from './layoutManager.js';
|
|
5
7
|
import { generateSlug } from './slug.js';
|
|
6
8
|
import { capturePaneContent } from './paneCapture.js';
|
|
7
9
|
import { triggerHook } from './hooks.js';
|
|
10
|
+
import { TMUX_LAYOUT_APPLY_DELAY, TMUX_SPLIT_DELAY } from '../constants/timing.js';
|
|
8
11
|
/**
|
|
9
12
|
* Core pane creation logic that can be used by both TUI and API
|
|
10
13
|
* Returns the newly created pane and whether agent choice is needed
|
|
@@ -73,37 +76,127 @@ export async function createPane(options, availableAgents) {
|
|
|
73
76
|
});
|
|
74
77
|
// Generate slug
|
|
75
78
|
const slug = await generateSlug(prompt);
|
|
79
|
+
const tmuxService = TmuxService.getInstance();
|
|
76
80
|
const worktreePath = path.join(projectRoot, '.dmux', 'worktrees', slug);
|
|
77
|
-
const originalPaneId =
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
const originalPaneId = tmuxService.getCurrentPaneIdSync();
|
|
82
|
+
// Load config to get control pane info
|
|
83
|
+
const configPath = path.join(projectRoot, '.dmux', 'dmux.config.json');
|
|
84
|
+
let controlPaneId;
|
|
85
|
+
try {
|
|
86
|
+
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
87
|
+
const config = JSON.parse(configContent);
|
|
88
|
+
controlPaneId = config.controlPaneId;
|
|
89
|
+
// Verify the control pane ID from config still exists
|
|
90
|
+
if (controlPaneId) {
|
|
91
|
+
const exists = await tmuxService.paneExists(controlPaneId);
|
|
92
|
+
if (!exists) {
|
|
93
|
+
// Pane doesn't exist anymore, use current pane and update config
|
|
94
|
+
console.error(`[dmux] Control pane ${controlPaneId} no longer exists, updating to ${originalPaneId}`);
|
|
95
|
+
controlPaneId = originalPaneId;
|
|
96
|
+
config.controlPaneId = controlPaneId;
|
|
97
|
+
config.controlPaneSize = SIDEBAR_WIDTH;
|
|
98
|
+
config.lastUpdated = new Date().toISOString();
|
|
99
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
100
|
+
}
|
|
101
|
+
// Else: Pane exists, we can use it
|
|
102
|
+
}
|
|
103
|
+
// If control pane ID is missing, save it
|
|
104
|
+
if (!controlPaneId) {
|
|
105
|
+
controlPaneId = originalPaneId;
|
|
106
|
+
config.controlPaneId = controlPaneId;
|
|
107
|
+
config.controlPaneSize = SIDEBAR_WIDTH;
|
|
108
|
+
config.lastUpdated = new Date().toISOString();
|
|
109
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
// Fallback if config loading fails
|
|
114
|
+
controlPaneId = originalPaneId;
|
|
115
|
+
}
|
|
80
116
|
// Get current pane count
|
|
81
|
-
const paneCount =
|
|
117
|
+
const paneCount = tmuxService.getAllPaneIdsSync().length;
|
|
82
118
|
// Enable pane borders to show titles
|
|
83
119
|
try {
|
|
84
|
-
|
|
120
|
+
tmuxService.setGlobalOptionSync('pane-border-status', 'top');
|
|
85
121
|
}
|
|
86
122
|
catch {
|
|
87
123
|
// Ignore if already set or fails
|
|
88
124
|
}
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
125
|
+
// Determine if this is the first content pane
|
|
126
|
+
// Check existingPanes instead of contentPaneIds, because contentPaneIds includes the welcome pane
|
|
127
|
+
const isFirstContentPane = existingPanes.length === 0;
|
|
128
|
+
let paneInfo;
|
|
129
|
+
// Self-healing: Try to create pane, if it fails due to stale controlPaneId, fix and retry
|
|
130
|
+
try {
|
|
131
|
+
if (isFirstContentPane) {
|
|
132
|
+
// First, create the tmux pane but DON'T destroy welcome pane yet
|
|
133
|
+
// This way we can save the pane to config first, THEN destroy welcome pane
|
|
134
|
+
paneInfo = setupSidebarLayout(controlPaneId);
|
|
135
|
+
// Wait for pane creation to settle
|
|
136
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Subsequent panes - always split horizontally, let layout manager organize
|
|
140
|
+
// Get actual dmux pane IDs (not welcome pane) from existingPanes
|
|
141
|
+
const dmuxPaneIds = existingPanes.map(p => p.paneId);
|
|
142
|
+
const targetPane = dmuxPaneIds[dmuxPaneIds.length - 1]; // Split from the most recent dmux pane
|
|
143
|
+
// Always split horizontally - the layout manager will organize panes optimally
|
|
144
|
+
paneInfo = splitPane({ targetPane });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
// Check if error is due to stale pane ID (can't find pane)
|
|
149
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
150
|
+
if (errorMsg.includes("can't find pane")) {
|
|
151
|
+
console.error(`[dmux] Pane creation failed with stale ID, self-healing...`);
|
|
152
|
+
// Fix: Update controlPaneId to current pane and save to config
|
|
153
|
+
const currentPaneId = originalPaneId; // We got this at the start of createPane
|
|
154
|
+
console.error(`[dmux] Updating controlPaneId from ${controlPaneId} to ${currentPaneId}`);
|
|
155
|
+
try {
|
|
156
|
+
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
157
|
+
const config = JSON.parse(configContent);
|
|
158
|
+
config.controlPaneId = currentPaneId;
|
|
159
|
+
config.lastUpdated = new Date().toISOString();
|
|
160
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
161
|
+
controlPaneId = currentPaneId; // Update local variable
|
|
162
|
+
}
|
|
163
|
+
catch (configError) {
|
|
164
|
+
console.error('[dmux] Failed to update config:', configError);
|
|
165
|
+
throw error; // Re-throw original error
|
|
166
|
+
}
|
|
167
|
+
// Retry pane creation with corrected controlPaneId
|
|
168
|
+
if (isFirstContentPane) {
|
|
169
|
+
paneInfo = setupSidebarLayout(controlPaneId);
|
|
170
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
const dmuxPaneIds = existingPanes.map(p => p.paneId);
|
|
174
|
+
const targetPane = dmuxPaneIds[dmuxPaneIds.length - 1];
|
|
175
|
+
paneInfo = splitPane({ targetPane });
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// Different error, re-throw
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
93
183
|
// Wait for pane creation to settle
|
|
94
184
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
95
185
|
// Set pane title to match the slug
|
|
96
186
|
try {
|
|
97
|
-
|
|
98
|
-
stdio: 'pipe',
|
|
99
|
-
});
|
|
187
|
+
await tmuxService.setPaneTitle(paneInfo, slug);
|
|
100
188
|
}
|
|
101
189
|
catch {
|
|
102
190
|
// Ignore if setting title fails
|
|
103
191
|
}
|
|
104
|
-
// Apply
|
|
105
|
-
|
|
106
|
-
|
|
192
|
+
// Apply optimal layout using the layout manager
|
|
193
|
+
if (controlPaneId) {
|
|
194
|
+
const dimensions = getTerminalDimensions();
|
|
195
|
+
const allContentPaneIds = [...existingPanes.map(p => p.paneId), paneInfo];
|
|
196
|
+
await recalculateAndApplyLayout(controlPaneId, allContentPaneIds, dimensions.width, dimensions.height);
|
|
197
|
+
// Refresh tmux to apply changes
|
|
198
|
+
await tmuxService.refreshClient();
|
|
199
|
+
}
|
|
107
200
|
// Trigger pane_created hook (after pane created, before worktree)
|
|
108
201
|
await triggerHook('pane_created', projectRoot, undefined, {
|
|
109
202
|
DMUX_PANE_ID: `dmux-${Date.now()}`,
|
|
@@ -116,10 +209,40 @@ export async function createPane(options, availableAgents) {
|
|
|
116
209
|
const isHooksEditingSession = prompt && /edit.*dmux.*hooks/i.test(prompt);
|
|
117
210
|
// Create git worktree and cd into it
|
|
118
211
|
try {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
212
|
+
// IMPORTANT: Prune stale worktrees first to avoid conflicts
|
|
213
|
+
// This must run synchronously from dmux, not in the pane
|
|
214
|
+
try {
|
|
215
|
+
execSync('git worktree prune', {
|
|
216
|
+
encoding: 'utf-8',
|
|
217
|
+
stdio: 'pipe',
|
|
218
|
+
cwd: projectRoot,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// Ignore prune errors, proceed anyway
|
|
223
|
+
}
|
|
224
|
+
// Check if branch already exists (from a deleted worktree)
|
|
225
|
+
let branchExists = false;
|
|
226
|
+
try {
|
|
227
|
+
execSync(`git show-ref --verify --quiet refs/heads/${slug}`, {
|
|
228
|
+
stdio: 'pipe',
|
|
229
|
+
cwd: projectRoot,
|
|
230
|
+
});
|
|
231
|
+
branchExists = true;
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
// Branch doesn't exist, which is good
|
|
235
|
+
}
|
|
236
|
+
// Build worktree command:
|
|
237
|
+
// - If branch exists, use it (don't create with -b)
|
|
238
|
+
// - If branch doesn't exist, create it with -b
|
|
239
|
+
// - DON'T silence errors (we want to see them in the pane for debugging)
|
|
240
|
+
const worktreeCmd = branchExists
|
|
241
|
+
? `git worktree add "${worktreePath}" ${slug} && cd "${worktreePath}"`
|
|
242
|
+
: `git worktree add "${worktreePath}" -b ${slug} && cd "${worktreePath}"`;
|
|
243
|
+
// Send the git worktree command (auto-quoted by sendShellCommand)
|
|
244
|
+
await tmuxService.sendShellCommand(paneInfo, worktreeCmd);
|
|
245
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
123
246
|
// Wait for worktree to actually exist on the filesystem
|
|
124
247
|
const maxWaitTime = 5000; // 5 seconds max
|
|
125
248
|
const checkInterval = 100; // Check every 100ms
|
|
@@ -127,6 +250,10 @@ export async function createPane(options, availableAgents) {
|
|
|
127
250
|
while (!fs.existsSync(worktreePath) && (Date.now() - startTime) < maxWaitTime) {
|
|
128
251
|
await new Promise((resolve) => setTimeout(resolve, checkInterval));
|
|
129
252
|
}
|
|
253
|
+
// Verify worktree was created successfully
|
|
254
|
+
if (!fs.existsSync(worktreePath)) {
|
|
255
|
+
throw new Error(`Worktree directory not created at ${worktreePath} after ${maxWaitTime}ms`);
|
|
256
|
+
}
|
|
130
257
|
// Give a bit more time for git to finish setting up the worktree
|
|
131
258
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
132
259
|
// Initialize .dmux-hooks if this is a hooks editing session
|
|
@@ -146,9 +273,14 @@ export async function createPane(options, availableAgents) {
|
|
|
146
273
|
}
|
|
147
274
|
}
|
|
148
275
|
catch (error) {
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
await
|
|
276
|
+
// Worktree creation failed - send helpful error message to the pane
|
|
277
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
278
|
+
await tmuxService.sendShellCommand(paneInfo, `echo "❌ Failed to create worktree: ${errorMsg}"`);
|
|
279
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
280
|
+
await tmuxService.sendShellCommand(paneInfo, `echo "Tip: Try running: git worktree prune && git branch -D ${slug}"`);
|
|
281
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
282
|
+
await new Promise((resolve) => setTimeout(resolve, TMUX_LAYOUT_APPLY_DELAY));
|
|
283
|
+
// Don't throw - let the pane stay open so user can debug
|
|
152
284
|
}
|
|
153
285
|
// Launch agent if specified
|
|
154
286
|
if (agent === 'claude') {
|
|
@@ -164,40 +296,31 @@ export async function createPane(options, availableAgents) {
|
|
|
164
296
|
else {
|
|
165
297
|
claudeCmd = `claude --permission-mode=acceptEdits`;
|
|
166
298
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
// Auto-approve trust prompts for Claude
|
|
299
|
+
// Send the claude command (auto-quoted by sendShellCommand)
|
|
300
|
+
await tmuxService.sendShellCommand(paneInfo, claudeCmd);
|
|
301
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
302
|
+
// Auto-approve trust prompts for Claude (workspace trust, not edit permissions)
|
|
303
|
+
// Note: --permission-mode=acceptEdits handles edit permissions, but not workspace trust
|
|
173
304
|
autoApproveTrustPrompt(paneInfo, prompt).catch(() => {
|
|
174
305
|
// Ignore errors in background monitoring
|
|
175
306
|
});
|
|
176
307
|
}
|
|
177
308
|
else if (agent === 'opencode') {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
execSync(`tmux send-keys -t '${paneInfo}' '${escapedOpenCmd}'`, {
|
|
181
|
-
stdio: 'pipe',
|
|
182
|
-
});
|
|
183
|
-
execSync(`tmux send-keys -t '${paneInfo}' Enter`, { stdio: 'pipe' });
|
|
309
|
+
await tmuxService.sendShellCommand(paneInfo, 'opencode');
|
|
310
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
184
311
|
if (prompt && prompt.trim()) {
|
|
185
312
|
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
186
313
|
const bufName = `dmux_prompt_${Date.now()}`;
|
|
187
314
|
const promptEsc = prompt.replace(/\\/g, '\\\\').replace(/'/g, "'\\''");
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
});
|
|
191
|
-
execSync(`tmux paste-buffer -b '${bufName}' -t '${paneInfo}'`, {
|
|
192
|
-
stdio: 'pipe',
|
|
193
|
-
});
|
|
315
|
+
await tmuxService.setBuffer(bufName, promptEsc);
|
|
316
|
+
await tmuxService.pasteBuffer(bufName, paneInfo);
|
|
194
317
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
195
|
-
|
|
196
|
-
|
|
318
|
+
await tmuxService.deleteBuffer(bufName);
|
|
319
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
197
320
|
}
|
|
198
321
|
}
|
|
199
322
|
// Keep focus on the new pane
|
|
200
|
-
|
|
323
|
+
await tmuxService.selectPane(paneInfo);
|
|
201
324
|
// Create the pane object
|
|
202
325
|
const newPane = {
|
|
203
326
|
id: `dmux-${Date.now()}`,
|
|
@@ -209,13 +332,31 @@ export async function createPane(options, availableAgents) {
|
|
|
209
332
|
// Set autopilot based on settings (use ?? to properly handle false vs undefined)
|
|
210
333
|
autopilot: settings.enableAutopilotByDefault ?? false,
|
|
211
334
|
};
|
|
335
|
+
// CRITICAL: Save the pane to config IMMEDIATELY before destroying welcome pane
|
|
336
|
+
// This is the event that triggers welcome pane destruction (event-based, no polling)
|
|
337
|
+
if (isFirstContentPane) {
|
|
338
|
+
try {
|
|
339
|
+
const configContent = fs.readFileSync(configPath, 'utf-8');
|
|
340
|
+
const config = JSON.parse(configContent);
|
|
341
|
+
// Add the new pane to the config (panesCount becomes 1)
|
|
342
|
+
config.panes = [...existingPanes, newPane];
|
|
343
|
+
config.lastUpdated = new Date().toISOString();
|
|
344
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
345
|
+
// NOW destroy the welcome pane (event-based destruction)
|
|
346
|
+
const { destroyWelcomePaneCoordinated } = await import('./welcomePaneManager.js');
|
|
347
|
+
destroyWelcomePaneCoordinated(projectRoot);
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
// Log but don't fail - welcome pane cleanup is not critical
|
|
351
|
+
}
|
|
352
|
+
}
|
|
212
353
|
// Trigger worktree_created hook (after full pane setup)
|
|
213
354
|
await triggerHook('worktree_created', projectRoot, newPane);
|
|
214
355
|
// Switch back to the original pane
|
|
215
|
-
|
|
356
|
+
await tmuxService.selectPane(originalPaneId);
|
|
216
357
|
// Re-set the title for the dmux pane
|
|
217
358
|
try {
|
|
218
|
-
|
|
359
|
+
await tmuxService.setPaneTitle(originalPaneId, `dmux-${projectName}`);
|
|
219
360
|
}
|
|
220
361
|
catch {
|
|
221
362
|
// Ignore if setting title fails
|
|
@@ -229,36 +370,26 @@ export async function createPane(options, availableAgents) {
|
|
|
229
370
|
* Auto-approve Claude trust prompts
|
|
230
371
|
*/
|
|
231
372
|
async function autoApproveTrustPrompt(paneInfo, prompt) {
|
|
232
|
-
// Wait for Claude to start up before checking for prompts
|
|
233
|
-
await new Promise((resolve) => setTimeout(resolve,
|
|
373
|
+
// Wait longer for Claude to start up before checking for prompts
|
|
374
|
+
await new Promise((resolve) => setTimeout(resolve, 1200));
|
|
234
375
|
const maxChecks = 100; // 100 checks * 100ms = 10 seconds total
|
|
235
376
|
const checkInterval = 100; // Check every 100ms
|
|
236
377
|
let lastContent = '';
|
|
237
378
|
let stableContentCount = 0;
|
|
238
379
|
let promptHandled = false;
|
|
239
|
-
// Trust prompt patterns
|
|
380
|
+
// Trust prompt patterns - made more specific to avoid false positives
|
|
240
381
|
const trustPromptPatterns = [
|
|
382
|
+
// Specific trust/permission questions
|
|
241
383
|
/Do you trust the files in this folder\?/i,
|
|
242
384
|
/Trust the files in this workspace\?/i,
|
|
243
385
|
/Do you trust the authors of the files/i,
|
|
244
386
|
/Do you want to trust this workspace\?/i,
|
|
245
387
|
/trust.*files.*folder/i,
|
|
246
388
|
/trust.*workspace/i,
|
|
247
|
-
/Do you trust/i,
|
|
248
389
|
/Trust this folder/i,
|
|
249
390
|
/trust.*directory/i,
|
|
250
|
-
/permission.*grant/i,
|
|
251
|
-
/allow.*access/i,
|
|
252
391
|
/workspace.*trust/i,
|
|
253
|
-
|
|
254
|
-
/permission.*mode/i,
|
|
255
|
-
/allow.*claude/i,
|
|
256
|
-
/\[y\/n\]/i,
|
|
257
|
-
/\(y\/n\)/i,
|
|
258
|
-
/Yes\/No/i,
|
|
259
|
-
/\[Y\/n\]/i,
|
|
260
|
-
/press.*enter.*accept/i,
|
|
261
|
-
/press.*enter.*continue/i,
|
|
392
|
+
// Claude-specific numbered menu format
|
|
262
393
|
/❯\s*1\.\s*Yes,\s*proceed/i,
|
|
263
394
|
/Enter to confirm.*Esc to exit/i,
|
|
264
395
|
/1\.\s*Yes,\s*proceed/i,
|
|
@@ -269,6 +400,12 @@ async function autoApproveTrustPrompt(paneInfo, prompt) {
|
|
|
269
400
|
try {
|
|
270
401
|
// Capture the pane content
|
|
271
402
|
const paneContent = capturePaneContent(paneInfo, 30);
|
|
403
|
+
// Early exit: If Claude is already running (prompt has been processed), we're done
|
|
404
|
+
if (paneContent.includes('Claude') ||
|
|
405
|
+
paneContent.includes('Assistant') ||
|
|
406
|
+
paneContent.includes('claude>')) {
|
|
407
|
+
break;
|
|
408
|
+
}
|
|
272
409
|
// Check if content has stabilized
|
|
273
410
|
if (paneContent === lastContent) {
|
|
274
411
|
stableContentCount++;
|
|
@@ -277,36 +414,27 @@ async function autoApproveTrustPrompt(paneInfo, prompt) {
|
|
|
277
414
|
stableContentCount = 0;
|
|
278
415
|
lastContent = paneContent;
|
|
279
416
|
}
|
|
280
|
-
// Look for trust prompt
|
|
417
|
+
// Look for trust prompt using specific patterns only
|
|
281
418
|
const hasTrustPrompt = trustPromptPatterns.some((pattern) => pattern.test(paneContent));
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
(paneContent.includes('folder') && paneContent.includes('?'));
|
|
287
|
-
if ((hasTrustPrompt || hasClaudePermissionPrompt) && !promptHandled) {
|
|
288
|
-
// Content is stable and we found a prompt
|
|
289
|
-
if (stableContentCount >= 2) {
|
|
419
|
+
// Only act if we have high confidence it's a trust prompt
|
|
420
|
+
if (hasTrustPrompt && !promptHandled) {
|
|
421
|
+
// Require content to be stable for longer to avoid false positives
|
|
422
|
+
if (stableContentCount >= 5) {
|
|
290
423
|
// Check if this is the new Claude numbered menu format
|
|
291
424
|
const isNewClaudeFormat = /❯\s*1\.\s*Yes,\s*proceed/i.test(paneContent) ||
|
|
292
425
|
/Enter to confirm.*Esc to exit/i.test(paneContent);
|
|
426
|
+
const tmuxService = TmuxService.getInstance();
|
|
293
427
|
if (isNewClaudeFormat) {
|
|
294
428
|
// For new Claude format, just press Enter
|
|
295
|
-
|
|
296
|
-
stdio: 'pipe',
|
|
297
|
-
});
|
|
429
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
298
430
|
}
|
|
299
431
|
else {
|
|
300
432
|
// Try multiple response methods for older formats
|
|
301
|
-
|
|
433
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'y');
|
|
302
434
|
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
307
|
-
execSync(`tmux send-keys -t '${paneInfo}' Enter`, {
|
|
308
|
-
stdio: 'pipe',
|
|
309
|
-
});
|
|
435
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
436
|
+
await new Promise((resolve) => setTimeout(resolve, TMUX_SPLIT_DELAY));
|
|
437
|
+
await tmuxService.sendTmuxKeys(paneInfo, 'Enter');
|
|
310
438
|
}
|
|
311
439
|
promptHandled = true;
|
|
312
440
|
// Wait and check if prompt is gone
|
|
@@ -331,12 +459,6 @@ async function autoApproveTrustPrompt(paneInfo, prompt) {
|
|
|
331
459
|
}
|
|
332
460
|
}
|
|
333
461
|
}
|
|
334
|
-
// If Claude is already running, we're done
|
|
335
|
-
if (!hasTrustPrompt &&
|
|
336
|
-
!hasClaudePermissionPrompt &&
|
|
337
|
-
(paneContent.includes('Claude') || paneContent.includes('Assistant'))) {
|
|
338
|
-
break;
|
|
339
|
-
}
|
|
340
462
|
}
|
|
341
463
|
catch (error) {
|
|
342
464
|
// Continue checking, errors are non-fatal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paneCreation.js","sourceRoot":"","sources":["../../src/utils/paneCreation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paneCreation.js","sourceRoot":"","sources":["../../src/utils/paneCreation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DmuxPane } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Attempts to rebind a pane whose ID has changed by matching on title (slug).
|
|
4
|
+
*
|
|
5
|
+
* IMPORTANT: Only rebinds if the pane ID is truly missing (pane was killed and recreated).
|
|
6
|
+
* Does NOT rebind if the title simply changed (user renamed it).
|
|
7
|
+
*
|
|
8
|
+
* @param pane - The pane to potentially rebind
|
|
9
|
+
* @param titleToIdMap - Map of pane titles to their current tmux pane IDs
|
|
10
|
+
* @param allPaneIds - Array of all current tmux pane IDs
|
|
11
|
+
* @returns The pane with potentially updated paneId
|
|
12
|
+
*/
|
|
13
|
+
export declare function rebindPaneByTitle(pane: DmuxPane, titleToIdMap: Map<string, string>, allPaneIds: string[]): DmuxPane;
|
|
14
|
+
//# sourceMappingURL=paneRebinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paneRebinding.d.ts","sourceRoot":"","sources":["../../src/utils/paneRebinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,UAAU,EAAE,MAAM,EAAE,GACnB,QAAQ,CAmBV"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LogService } from '../services/LogService.js';
|
|
2
|
+
/**
|
|
3
|
+
* Attempts to rebind a pane whose ID has changed by matching on title (slug).
|
|
4
|
+
*
|
|
5
|
+
* IMPORTANT: Only rebinds if the pane ID is truly missing (pane was killed and recreated).
|
|
6
|
+
* Does NOT rebind if the title simply changed (user renamed it).
|
|
7
|
+
*
|
|
8
|
+
* @param pane - The pane to potentially rebind
|
|
9
|
+
* @param titleToIdMap - Map of pane titles to their current tmux pane IDs
|
|
10
|
+
* @param allPaneIds - Array of all current tmux pane IDs
|
|
11
|
+
* @returns The pane with potentially updated paneId
|
|
12
|
+
*/
|
|
13
|
+
export function rebindPaneByTitle(pane, titleToIdMap, allPaneIds) {
|
|
14
|
+
// If pane ID exists in tmux, keep using it (even if title changed)
|
|
15
|
+
if (allPaneIds.length > 0 && allPaneIds.includes(pane.paneId)) {
|
|
16
|
+
return pane; // Pane still exists, no rebinding needed
|
|
17
|
+
}
|
|
18
|
+
// Pane ID missing - try to find it by title match
|
|
19
|
+
if (allPaneIds.length > 0 && !allPaneIds.includes(pane.paneId)) {
|
|
20
|
+
const remappedId = titleToIdMap.get(pane.slug);
|
|
21
|
+
if (remappedId) {
|
|
22
|
+
LogService.getInstance().debug(`Rebound pane ${pane.id} from ${pane.paneId} to ${remappedId} (matched by title: ${pane.slug})`, 'shellDetection');
|
|
23
|
+
return { ...pane, paneId: remappedId };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return pane;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=paneRebinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paneRebinding.js","sourceRoot":"","sources":["../../src/utils/paneRebinding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAc,EACd,YAAiC,EACjC,UAAoB;IAEpB,mEAAmE;IACnE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,CAAC,yCAAyC;IACxD,CAAC;IAED,kDAAkD;IAClD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAC5B,gBAAgB,IAAI,CAAC,EAAE,SAAS,IAAI,CAAC,MAAM,OAAO,UAAU,uBAAuB,IAAI,CAAC,IAAI,GAAG,EAC/F,gBAAgB,CACjB,CAAC;YACF,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for launching tmux popup modals
|
|
3
|
+
* Requires tmux 3.2+
|
|
4
|
+
*/
|
|
5
|
+
export interface PopupOptions {
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
title?: string;
|
|
9
|
+
centered?: boolean;
|
|
10
|
+
x?: number;
|
|
11
|
+
y?: number;
|
|
12
|
+
cwd?: string;
|
|
13
|
+
borderStyle?: string;
|
|
14
|
+
leftOffset?: number;
|
|
15
|
+
topOffset?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface PopupResult<T> {
|
|
18
|
+
success: boolean;
|
|
19
|
+
data?: T;
|
|
20
|
+
cancelled?: boolean;
|
|
21
|
+
error?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface PopupHandle<T> {
|
|
24
|
+
pid: number;
|
|
25
|
+
bounds: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
};
|
|
31
|
+
resultPromise: Promise<PopupResult<T>>;
|
|
32
|
+
kill: () => void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Launch a tmux popup modal
|
|
36
|
+
* @param command - Command to run in the popup
|
|
37
|
+
* @param options - Popup display options
|
|
38
|
+
* @returns Promise that resolves when popup closes
|
|
39
|
+
*/
|
|
40
|
+
export declare function launchPopup(command: string, options?: PopupOptions): Promise<PopupResult<string>>;
|
|
41
|
+
/**
|
|
42
|
+
* Launch a popup that runs a Node.js script
|
|
43
|
+
* @param scriptPath - Path to the compiled JS script
|
|
44
|
+
* @param args - Arguments to pass to the script
|
|
45
|
+
* @param options - Popup display options
|
|
46
|
+
*/
|
|
47
|
+
export declare function launchNodePopup<T = any>(scriptPath: string, args?: string[], options?: PopupOptions): Promise<PopupResult<T>>;
|
|
48
|
+
/**
|
|
49
|
+
* Launch a popup non-blocking (returns handle immediately)
|
|
50
|
+
* @param command - Command to run in the popup
|
|
51
|
+
* @param options - Popup display options
|
|
52
|
+
* @returns Handle with PID, bounds, and result promise
|
|
53
|
+
*/
|
|
54
|
+
export declare function launchPopupNonBlocking(command: string, options?: PopupOptions): PopupHandle<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Launch a Node.js popup non-blocking (returns handle immediately)
|
|
57
|
+
* @param scriptPath - Path to the compiled JS script
|
|
58
|
+
* @param args - Arguments to pass to the script
|
|
59
|
+
* @param options - Popup display options
|
|
60
|
+
* @returns Handle with PID, bounds, and result promise
|
|
61
|
+
*/
|
|
62
|
+
export declare function launchNodePopupNonBlocking<T = any>(scriptPath: string, args?: string[], options?: PopupOptions): PopupHandle<T>;
|
|
63
|
+
/**
|
|
64
|
+
* Enable tmux mouse mode for click-outside-to-close popup behavior (session-specific)
|
|
65
|
+
* @param sessionName - The tmux session name to enable mouse mode for
|
|
66
|
+
*/
|
|
67
|
+
export declare function ensureMouseMode(sessionName: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Check if tmux supports popups (3.2+)
|
|
70
|
+
*/
|
|
71
|
+
export declare function supportsPopups(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Standard popup positioning presets for consistent UX
|
|
74
|
+
*/
|
|
75
|
+
export declare const POPUP_POSITIONING: {
|
|
76
|
+
/**
|
|
77
|
+
* Standard position: top-left corner, offset from sidebar
|
|
78
|
+
* Use this for most popups (menus, dialogs, forms)
|
|
79
|
+
*/
|
|
80
|
+
standard(sidebarWidth: number): Partial<PopupOptions>;
|
|
81
|
+
/**
|
|
82
|
+
* Centered with sidebar offset
|
|
83
|
+
* Use for important dialogs like new pane creation
|
|
84
|
+
*/
|
|
85
|
+
centeredWithSidebar(sidebarWidth: number): Partial<PopupOptions>;
|
|
86
|
+
/**
|
|
87
|
+
* Fully centered (no sidebar consideration)
|
|
88
|
+
* Use only when sidebar doesn't exist or doesn't matter
|
|
89
|
+
*/
|
|
90
|
+
fullyCentered(): Partial<PopupOptions>;
|
|
91
|
+
/**
|
|
92
|
+
* Large popup that takes up most of the available space
|
|
93
|
+
* Use for logs viewer and other content-heavy popups
|
|
94
|
+
*/
|
|
95
|
+
large(sidebarWidth: number, terminalWidth: number, terminalHeight: number): Partial<PopupOptions>;
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=popup.d.ts.map
|