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.
Files changed (635) hide show
  1. package/dist/DmuxApp.d.ts +2 -2
  2. package/dist/DmuxApp.d.ts.map +1 -1
  3. package/dist/DmuxApp.js +405 -1134
  4. package/dist/DmuxApp.js.map +1 -1
  5. package/dist/actions/implementations/closeAction.d.ts +10 -0
  6. package/dist/actions/implementations/closeAction.d.ts.map +1 -0
  7. package/dist/actions/implementations/closeAction.js +197 -0
  8. package/dist/actions/implementations/closeAction.js.map +1 -0
  9. package/dist/actions/implementations/copyPathAction.d.ts +10 -0
  10. package/dist/actions/implementations/copyPathAction.d.ts.map +1 -0
  11. package/dist/actions/implementations/copyPathAction.js +34 -0
  12. package/dist/actions/implementations/copyPathAction.js.map +1 -0
  13. package/dist/actions/implementations/duplicateAction.d.ts +10 -0
  14. package/dist/actions/implementations/duplicateAction.d.ts.map +1 -0
  15. package/dist/actions/implementations/duplicateAction.js +25 -0
  16. package/dist/actions/implementations/duplicateAction.js.map +1 -0
  17. package/dist/actions/implementations/index.d.ts +14 -0
  18. package/dist/actions/implementations/index.d.ts.map +1 -0
  19. package/dist/actions/implementations/index.js +14 -0
  20. package/dist/actions/implementations/index.js.map +1 -0
  21. package/dist/actions/implementations/mergeAction.d.ts +14 -0
  22. package/dist/actions/implementations/mergeAction.d.ts.map +1 -0
  23. package/dist/actions/implementations/mergeAction.js +84 -0
  24. package/dist/actions/implementations/mergeAction.js.map +1 -0
  25. package/dist/actions/implementations/openInEditorAction.d.ts +12 -0
  26. package/dist/actions/implementations/openInEditorAction.d.ts.map +1 -0
  27. package/dist/actions/implementations/openInEditorAction.js +33 -0
  28. package/dist/actions/implementations/openInEditorAction.js.map +1 -0
  29. package/dist/actions/implementations/renameAction.d.ts +13 -0
  30. package/dist/actions/implementations/renameAction.d.ts.map +1 -0
  31. package/dist/actions/implementations/renameAction.js +18 -0
  32. package/dist/actions/implementations/renameAction.js.map +1 -0
  33. package/dist/actions/implementations/toggleAutopilotAction.d.ts +10 -0
  34. package/dist/actions/implementations/toggleAutopilotAction.d.ts.map +1 -0
  35. package/dist/actions/implementations/toggleAutopilotAction.js +33 -0
  36. package/dist/actions/implementations/toggleAutopilotAction.js.map +1 -0
  37. package/dist/actions/implementations/viewAction.d.ts +10 -0
  38. package/dist/actions/implementations/viewAction.d.ts.map +1 -0
  39. package/dist/actions/implementations/viewAction.js +26 -0
  40. package/dist/actions/implementations/viewAction.js.map +1 -0
  41. package/dist/actions/merge/commitMessageHandler.d.ts +27 -0
  42. package/dist/actions/merge/commitMessageHandler.d.ts.map +1 -0
  43. package/dist/actions/merge/commitMessageHandler.js +131 -0
  44. package/dist/actions/merge/commitMessageHandler.js.map +1 -0
  45. package/dist/actions/merge/conflictResolution.d.ts +13 -0
  46. package/dist/actions/merge/conflictResolution.d.ts.map +1 -0
  47. package/dist/actions/merge/conflictResolution.js +134 -0
  48. package/dist/actions/merge/conflictResolution.js.map +1 -0
  49. package/dist/actions/merge/issueHandlers/index.d.ts +11 -0
  50. package/dist/actions/merge/issueHandlers/index.d.ts.map +1 -0
  51. package/dist/actions/merge/issueHandlers/index.js +8 -0
  52. package/dist/actions/merge/issueHandlers/index.js.map +1 -0
  53. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts +13 -0
  54. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -0
  55. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +72 -0
  56. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -0
  57. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts +13 -0
  58. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts.map +1 -0
  59. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js +52 -0
  60. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js.map +1 -0
  61. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts +7 -0
  62. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts.map +1 -0
  63. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js +12 -0
  64. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js.map +1 -0
  65. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +13 -0
  66. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -0
  67. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +49 -0
  68. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -0
  69. package/dist/actions/merge/mergeExecution.d.ts +22 -0
  70. package/dist/actions/merge/mergeExecution.d.ts.map +1 -0
  71. package/dist/actions/merge/mergeExecution.js +180 -0
  72. package/dist/actions/merge/mergeExecution.js.map +1 -0
  73. package/dist/actions/paneActions.d.ts +3 -40
  74. package/dist/actions/paneActions.d.ts.map +1 -1
  75. package/dist/actions/paneActions.js +4 -981
  76. package/dist/actions/paneActions.js.map +1 -1
  77. package/dist/actions/types.d.ts +2 -0
  78. package/dist/actions/types.d.ts.map +1 -1
  79. package/dist/actions/types.js +1 -0
  80. package/dist/actions/types.js.map +1 -1
  81. package/dist/components/{ActionChoiceDialog.d.ts → dialogs/ActionChoiceDialog.d.ts} +1 -1
  82. package/dist/components/dialogs/ActionChoiceDialog.d.ts.map +1 -0
  83. package/dist/components/dialogs/ActionChoiceDialog.js.map +1 -0
  84. package/dist/components/dialogs/ActionConfirmDialog.d.ts.map +1 -0
  85. package/dist/components/dialogs/ActionConfirmDialog.js.map +1 -0
  86. package/dist/components/dialogs/ActionInputDialog.d.ts.map +1 -0
  87. package/dist/components/{ActionInputDialog.js → dialogs/ActionInputDialog.js} +4 -3
  88. package/dist/components/dialogs/ActionInputDialog.js.map +1 -0
  89. package/dist/components/dialogs/ActionProgressDialog.d.ts.map +1 -0
  90. package/dist/components/dialogs/ActionProgressDialog.js.map +1 -0
  91. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -0
  92. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -0
  93. package/dist/components/{CloseOptionsDialog.d.ts → dialogs/CloseOptionsDialog.d.ts} +1 -1
  94. package/dist/components/dialogs/CloseOptionsDialog.d.ts.map +1 -0
  95. package/dist/components/dialogs/CloseOptionsDialog.js.map +1 -0
  96. package/dist/components/dialogs/CommandPromptDialog.d.ts.map +1 -0
  97. package/dist/components/{CommandPromptDialog.js → dialogs/CommandPromptDialog.js} +1 -1
  98. package/dist/components/dialogs/CommandPromptDialog.js.map +1 -0
  99. package/dist/components/dialogs/DialogBox.d.ts +16 -0
  100. package/dist/components/dialogs/DialogBox.d.ts.map +1 -0
  101. package/dist/components/dialogs/DialogBox.js +12 -0
  102. package/dist/components/dialogs/DialogBox.js.map +1 -0
  103. package/dist/components/dialogs/HooksDialog.d.ts.map +1 -0
  104. package/dist/components/dialogs/HooksDialog.js.map +1 -0
  105. package/dist/components/{MergeConfirmationDialog.d.ts → dialogs/MergeConfirmationDialog.d.ts} +1 -1
  106. package/dist/components/dialogs/MergeConfirmationDialog.d.ts.map +1 -0
  107. package/dist/components/dialogs/MergeConfirmationDialog.js.map +1 -0
  108. package/dist/components/{SettingsDialog.d.ts → dialogs/SettingsDialog.d.ts} +1 -1
  109. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -0
  110. package/dist/components/dialogs/SettingsDialog.js.map +1 -0
  111. package/dist/components/dialogs/UpdateDialog.d.ts.map +1 -0
  112. package/dist/components/dialogs/UpdateDialog.js.map +1 -0
  113. package/dist/components/indicators/CreatingIndicator.d.ts.map +1 -0
  114. package/dist/components/indicators/CreatingIndicator.js.map +1 -0
  115. package/dist/components/indicators/LoadingIndicator.d.ts.map +1 -0
  116. package/dist/components/indicators/LoadingIndicator.js.map +1 -0
  117. package/dist/components/indicators/RunningIndicator.d.ts.map +1 -0
  118. package/dist/components/indicators/RunningIndicator.js.map +1 -0
  119. package/dist/components/indicators/Spinner.d.ts.map +1 -0
  120. package/dist/components/indicators/Spinner.js.map +1 -0
  121. package/dist/components/indicators/UpdatingIndicator.d.ts.map +1 -0
  122. package/dist/components/indicators/UpdatingIndicator.js.map +1 -0
  123. package/dist/components/indicators/index.d.ts +6 -0
  124. package/dist/components/indicators/index.d.ts.map +1 -0
  125. package/dist/components/indicators/index.js +6 -0
  126. package/dist/components/indicators/index.js.map +1 -0
  127. package/dist/components/inputs/CleanTextInput.d.ts +19 -0
  128. package/dist/components/inputs/CleanTextInput.d.ts.map +1 -0
  129. package/dist/{CleanTextInput.js → components/inputs/CleanTextInput.js} +98 -160
  130. package/dist/components/inputs/CleanTextInput.js.map +1 -0
  131. package/dist/components/inputs/StyledTextInput.d.ts.map +1 -0
  132. package/dist/components/inputs/StyledTextInput.js.map +1 -0
  133. package/dist/components/inputs/index.d.ts +3 -0
  134. package/dist/components/inputs/index.d.ts.map +1 -0
  135. package/dist/components/inputs/index.js +3 -0
  136. package/dist/components/inputs/index.js.map +1 -0
  137. package/dist/components/{KebabMenu.d.ts → panes/KebabMenu.d.ts} +1 -1
  138. package/dist/components/panes/KebabMenu.d.ts.map +1 -0
  139. package/dist/components/panes/KebabMenu.js.map +1 -0
  140. package/dist/components/panes/MergePane.d.ts.map +1 -0
  141. package/dist/{MergePane.js → components/panes/MergePane.js} +1 -1
  142. package/dist/components/panes/MergePane.js.map +1 -0
  143. package/dist/components/{PaneCard.d.ts → panes/PaneCard.d.ts} +4 -2
  144. package/dist/components/panes/PaneCard.d.ts.map +1 -0
  145. package/dist/components/panes/PaneCard.js +55 -0
  146. package/dist/components/panes/PaneCard.js.map +1 -0
  147. package/dist/components/panes/PanesGrid.d.ts +12 -0
  148. package/dist/components/panes/PanesGrid.d.ts.map +1 -0
  149. package/dist/components/panes/PanesGrid.js +49 -0
  150. package/dist/components/panes/PanesGrid.js.map +1 -0
  151. package/dist/components/panes/index.d.ts +5 -0
  152. package/dist/components/panes/index.d.ts.map +1 -0
  153. package/dist/components/panes/index.js +5 -0
  154. package/dist/components/panes/index.js.map +1 -0
  155. package/dist/components/popups/agentChoicePopup.d.ts +7 -0
  156. package/dist/components/popups/agentChoicePopup.d.ts.map +1 -0
  157. package/dist/components/popups/agentChoicePopup.js +74 -0
  158. package/dist/components/popups/agentChoicePopup.js.map +1 -0
  159. package/dist/components/popups/choicePopup.d.ts +7 -0
  160. package/dist/components/popups/choicePopup.d.ts.map +1 -0
  161. package/dist/components/popups/choicePopup.js +64 -0
  162. package/dist/components/popups/choicePopup.js.map +1 -0
  163. package/dist/components/popups/config.d.ts +40 -0
  164. package/dist/components/popups/config.d.ts.map +1 -0
  165. package/dist/components/popups/config.js +40 -0
  166. package/dist/components/popups/config.js.map +1 -0
  167. package/dist/components/popups/confirmPopup.d.ts +7 -0
  168. package/dist/components/popups/confirmPopup.d.ts.map +1 -0
  169. package/dist/components/popups/confirmPopup.js +71 -0
  170. package/dist/components/popups/confirmPopup.js.map +1 -0
  171. package/dist/components/popups/hooksPopup.d.ts +7 -0
  172. package/dist/components/popups/hooksPopup.d.ts.map +1 -0
  173. package/dist/components/popups/hooksPopup.js +71 -0
  174. package/dist/components/popups/hooksPopup.js.map +1 -0
  175. package/dist/components/popups/inputPopup.d.ts +7 -0
  176. package/dist/components/popups/inputPopup.d.ts.map +1 -0
  177. package/dist/components/popups/inputPopup.js +47 -0
  178. package/dist/components/popups/inputPopup.js.map +1 -0
  179. package/dist/components/popups/kebabMenuPopup.d.ts +7 -0
  180. package/dist/components/popups/kebabMenuPopup.d.ts.map +1 -0
  181. package/dist/components/popups/kebabMenuPopup.js +52 -0
  182. package/dist/components/popups/kebabMenuPopup.js.map +1 -0
  183. package/dist/components/popups/logsPopup.d.ts +12 -0
  184. package/dist/components/popups/logsPopup.d.ts.map +1 -0
  185. package/dist/components/popups/logsPopup.js +372 -0
  186. package/dist/components/popups/logsPopup.js.map +1 -0
  187. package/dist/components/popups/mergePopup.d.ts +7 -0
  188. package/dist/components/popups/mergePopup.d.ts.map +1 -0
  189. package/dist/components/popups/mergePopup.js +310 -0
  190. package/dist/components/popups/mergePopup.js.map +1 -0
  191. package/dist/components/popups/newPanePopup.d.ts +7 -0
  192. package/dist/components/popups/newPanePopup.d.ts.map +1 -0
  193. package/dist/components/popups/newPanePopup.js +234 -0
  194. package/dist/components/popups/newPanePopup.js.map +1 -0
  195. package/dist/components/popups/progressPopup.d.ts +8 -0
  196. package/dist/components/popups/progressPopup.d.ts.map +1 -0
  197. package/dist/components/popups/progressPopup.js +53 -0
  198. package/dist/components/popups/progressPopup.js.map +1 -0
  199. package/dist/components/popups/remotePopup.d.ts +6 -0
  200. package/dist/components/popups/remotePopup.d.ts.map +1 -0
  201. package/dist/components/popups/remotePopup.js +166 -0
  202. package/dist/components/popups/remotePopup.js.map +1 -0
  203. package/dist/components/popups/settingsPopup.d.ts +7 -0
  204. package/dist/components/popups/settingsPopup.d.ts.map +1 -0
  205. package/dist/components/popups/settingsPopup.js +212 -0
  206. package/dist/components/popups/settingsPopup.js.map +1 -0
  207. package/dist/components/popups/shared/FileList.d.ts +13 -0
  208. package/dist/components/popups/shared/FileList.d.ts.map +1 -0
  209. package/dist/components/popups/shared/FileList.js +61 -0
  210. package/dist/components/popups/shared/FileList.js.map +1 -0
  211. package/dist/components/popups/shared/PopupContainer.d.ts +14 -0
  212. package/dist/components/popups/shared/PopupContainer.d.ts.map +1 -0
  213. package/dist/components/popups/shared/PopupContainer.js +15 -0
  214. package/dist/components/popups/shared/PopupContainer.js.map +1 -0
  215. package/dist/components/popups/shared/PopupInputBox.d.ts +11 -0
  216. package/dist/components/popups/shared/PopupInputBox.d.ts.map +1 -0
  217. package/dist/components/popups/shared/PopupInputBox.js +10 -0
  218. package/dist/components/popups/shared/PopupInputBox.js.map +1 -0
  219. package/dist/components/popups/shared/PopupWrapper.d.ts +37 -0
  220. package/dist/components/popups/shared/PopupWrapper.d.ts.map +1 -0
  221. package/dist/components/popups/shared/PopupWrapper.js +88 -0
  222. package/dist/components/popups/shared/PopupWrapper.js.map +1 -0
  223. package/dist/components/popups/shared/index.d.ts +8 -0
  224. package/dist/components/popups/shared/index.d.ts.map +1 -0
  225. package/dist/components/popups/shared/index.js +8 -0
  226. package/dist/components/popups/shared/index.js.map +1 -0
  227. package/dist/components/popups/shortcutsPopup.d.ts +6 -0
  228. package/dist/components/popups/shortcutsPopup.d.ts.map +1 -0
  229. package/dist/components/popups/shortcutsPopup.js +74 -0
  230. package/dist/components/popups/shortcutsPopup.js.map +1 -0
  231. package/dist/components/popups/templates/SimpleInputPopup.d.ts +15 -0
  232. package/dist/components/popups/templates/SimpleInputPopup.d.ts.map +1 -0
  233. package/dist/components/popups/templates/SimpleInputPopup.js +28 -0
  234. package/dist/components/popups/templates/SimpleInputPopup.js.map +1 -0
  235. package/dist/components/ui/FileCopyPrompt.d.ts.map +1 -0
  236. package/dist/components/ui/FileCopyPrompt.js.map +1 -0
  237. package/dist/components/ui/FooterHelp.d.ts +19 -0
  238. package/dist/components/ui/FooterHelp.d.ts.map +1 -0
  239. package/dist/components/ui/FooterHelp.js +55 -0
  240. package/dist/components/ui/FooterHelp.js.map +1 -0
  241. package/dist/components/ui/QRCode.d.ts.map +1 -0
  242. package/dist/components/ui/QRCode.js.map +1 -0
  243. package/dist/components/ui/index.d.ts +4 -0
  244. package/dist/components/ui/index.d.ts.map +1 -0
  245. package/dist/components/ui/index.js +4 -0
  246. package/dist/components/ui/index.js.map +1 -0
  247. package/dist/constants/timing.d.ts +22 -0
  248. package/dist/constants/timing.d.ts.map +1 -0
  249. package/dist/constants/timing.js +26 -0
  250. package/dist/constants/timing.js.map +1 -0
  251. package/dist/dashboard.js +1 -1
  252. package/dist/hooks/useActionSystem.d.ts +18 -4
  253. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  254. package/dist/hooks/useActionSystem.js +125 -30
  255. package/dist/hooks/useActionSystem.js.map +1 -1
  256. package/dist/hooks/useDebugInfo.d.ts +11 -0
  257. package/dist/hooks/useDebugInfo.d.ts.map +1 -0
  258. package/dist/hooks/useDebugInfo.js +34 -0
  259. package/dist/hooks/useDebugInfo.js.map +1 -0
  260. package/dist/hooks/useDialogState.d.ts +22 -0
  261. package/dist/hooks/useDialogState.d.ts.map +1 -0
  262. package/dist/hooks/useDialogState.js +62 -0
  263. package/dist/hooks/useDialogState.js.map +1 -0
  264. package/dist/hooks/useInputHandling.d.ts +60 -0
  265. package/dist/hooks/useInputHandling.d.ts.map +1 -0
  266. package/dist/hooks/useInputHandling.js +280 -0
  267. package/dist/hooks/useInputHandling.js.map +1 -0
  268. package/dist/hooks/useLayoutManagement.d.ts +12 -0
  269. package/dist/hooks/useLayoutManagement.d.ts.map +1 -0
  270. package/dist/hooks/useLayoutManagement.js +58 -0
  271. package/dist/hooks/useLayoutManagement.js.map +1 -0
  272. package/dist/hooks/useNavigation.js +1 -1
  273. package/dist/hooks/useNavigation.js.map +1 -1
  274. package/dist/hooks/usePaneCreation.d.ts +1 -2
  275. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  276. package/dist/hooks/usePaneCreation.js +17 -36
  277. package/dist/hooks/usePaneCreation.js.map +1 -1
  278. package/dist/hooks/usePaneLoading.d.ts +45 -0
  279. package/dist/hooks/usePaneLoading.d.ts.map +1 -0
  280. package/dist/hooks/usePaneLoading.js +188 -0
  281. package/dist/hooks/usePaneLoading.js.map +1 -0
  282. package/dist/hooks/usePaneRunner.d.ts.map +1 -1
  283. package/dist/hooks/usePaneRunner.js +16 -8
  284. package/dist/hooks/usePaneRunner.js.map +1 -1
  285. package/dist/hooks/usePaneSync.d.ts +34 -0
  286. package/dist/hooks/usePaneSync.d.ts.map +1 -0
  287. package/dist/hooks/usePaneSync.js +182 -0
  288. package/dist/hooks/usePaneSync.js.map +1 -0
  289. package/dist/hooks/usePanes.d.ts.map +1 -1
  290. package/dist/hooks/usePanes.js +81 -258
  291. package/dist/hooks/usePanes.js.map +1 -1
  292. package/dist/hooks/useServices.d.ts +24 -0
  293. package/dist/hooks/useServices.d.ts.map +1 -0
  294. package/dist/hooks/useServices.js +39 -0
  295. package/dist/hooks/useServices.js.map +1 -0
  296. package/dist/hooks/useShellDetection.d.ts +10 -0
  297. package/dist/hooks/useShellDetection.d.ts.map +1 -0
  298. package/dist/hooks/useShellDetection.js +53 -0
  299. package/dist/hooks/useShellDetection.js.map +1 -0
  300. package/dist/hooks/useStatusMessages.d.ts +11 -0
  301. package/dist/hooks/useStatusMessages.d.ts.map +1 -0
  302. package/dist/hooks/useStatusMessages.js +32 -0
  303. package/dist/hooks/useStatusMessages.js.map +1 -0
  304. package/dist/hooks/useTemporaryStatus.d.ts +13 -0
  305. package/dist/hooks/useTemporaryStatus.d.ts.map +1 -0
  306. package/dist/hooks/useTemporaryStatus.js +30 -0
  307. package/dist/hooks/useTemporaryStatus.js.map +1 -0
  308. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  309. package/dist/hooks/useTerminalWidth.js +7 -12
  310. package/dist/hooks/useTerminalWidth.js.map +1 -1
  311. package/dist/hooks/useTunnelManagement.d.ts +18 -0
  312. package/dist/hooks/useTunnelManagement.d.ts.map +1 -0
  313. package/dist/hooks/useTunnelManagement.js +55 -0
  314. package/dist/hooks/useTunnelManagement.js.map +1 -0
  315. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  316. package/dist/hooks/useWorktreeActions.js +23 -24
  317. package/dist/hooks/useWorktreeActions.js.map +1 -1
  318. package/dist/index.js +279 -73
  319. package/dist/index.js.map +1 -1
  320. package/dist/layout/LayoutCalculator.d.ts +62 -0
  321. package/dist/layout/LayoutCalculator.d.ts.map +1 -0
  322. package/dist/layout/LayoutCalculator.js +143 -0
  323. package/dist/layout/LayoutCalculator.js.map +1 -0
  324. package/dist/layout/SpacerManager.d.ts +64 -0
  325. package/dist/layout/SpacerManager.d.ts.map +1 -0
  326. package/dist/layout/SpacerManager.js +148 -0
  327. package/dist/layout/SpacerManager.js.map +1 -0
  328. package/dist/layout/TmuxLayoutApplier.d.ts +59 -0
  329. package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -0
  330. package/dist/layout/TmuxLayoutApplier.js +135 -0
  331. package/dist/layout/TmuxLayoutApplier.js.map +1 -0
  332. package/dist/panes/decorative-pane.d.ts +3 -0
  333. package/dist/panes/decorative-pane.d.ts.map +1 -0
  334. package/dist/panes/decorative-pane.js +136 -0
  335. package/dist/panes/decorative-pane.js.map +1 -0
  336. package/dist/panes/spacer-pane.d.ts +8 -0
  337. package/dist/panes/spacer-pane.d.ts.map +1 -0
  338. package/dist/panes/spacer-pane.js +40 -0
  339. package/dist/panes/spacer-pane.js.map +1 -0
  340. package/dist/server/embedded-assets.d.ts.map +1 -1
  341. package/dist/server/embedded-assets.js +849 -4752
  342. package/dist/server/embedded-assets.js.map +1 -1
  343. package/dist/server/index.js +1 -1
  344. package/dist/server/index.js.map +1 -1
  345. package/dist/server/routes/actionsRoutes.d.ts +2 -0
  346. package/dist/server/routes/actionsRoutes.d.ts.map +1 -0
  347. package/dist/server/routes/actionsRoutes.js +110 -0
  348. package/dist/server/routes/actionsRoutes.js.map +1 -0
  349. package/dist/server/routes/healthRoutes.d.ts +13 -0
  350. package/dist/server/routes/healthRoutes.d.ts.map +1 -0
  351. package/dist/server/routes/healthRoutes.js +70 -0
  352. package/dist/server/routes/healthRoutes.js.map +1 -0
  353. package/dist/server/routes/index.d.ts +8 -0
  354. package/dist/server/routes/index.d.ts.map +1 -0
  355. package/dist/server/routes/index.js +67 -0
  356. package/dist/server/routes/index.js.map +1 -0
  357. package/dist/server/routes/keysRoutes.d.ts +20 -0
  358. package/dist/server/routes/keysRoutes.d.ts.map +1 -0
  359. package/dist/server/routes/keysRoutes.js +111 -0
  360. package/dist/server/routes/keysRoutes.js.map +1 -0
  361. package/dist/server/routes/panesRoutes.d.ts +2 -0
  362. package/dist/server/routes/panesRoutes.d.ts.map +1 -0
  363. package/dist/server/routes/panesRoutes.js +373 -0
  364. package/dist/server/routes/panesRoutes.js.map +1 -0
  365. package/dist/server/routes/settingsRoutes.d.ts +94 -0
  366. package/dist/server/routes/settingsRoutes.d.ts.map +1 -0
  367. package/dist/server/routes/settingsRoutes.js +159 -0
  368. package/dist/server/routes/settingsRoutes.js.map +1 -0
  369. package/dist/server/routes/streamRoutes.d.ts +18 -0
  370. package/dist/server/routes/streamRoutes.d.ts.map +1 -0
  371. package/dist/server/routes/streamRoutes.js +87 -0
  372. package/dist/server/routes/streamRoutes.js.map +1 -0
  373. package/dist/server/routes/tunnelRoutes.d.ts +11 -0
  374. package/dist/server/routes/tunnelRoutes.d.ts.map +1 -0
  375. package/dist/server/routes/tunnelRoutes.js +28 -0
  376. package/dist/server/routes/tunnelRoutes.js.map +1 -0
  377. package/dist/server/routes.d.ts +16 -2
  378. package/dist/server/routes.d.ts.map +1 -1
  379. package/dist/server/routes.js +16 -811
  380. package/dist/server/routes.js.map +1 -1
  381. package/dist/{AutoUpdater.d.ts → services/AutoUpdater.d.ts} +1 -0
  382. package/dist/services/AutoUpdater.d.ts.map +1 -0
  383. package/dist/{AutoUpdater.js → services/AutoUpdater.js} +42 -9
  384. package/dist/services/AutoUpdater.js.map +1 -0
  385. package/dist/services/ConfigWatcher.d.ts.map +1 -1
  386. package/dist/services/ConfigWatcher.js +10 -3
  387. package/dist/services/ConfigWatcher.js.map +1 -1
  388. package/dist/services/LogService.d.ts +112 -0
  389. package/dist/services/LogService.d.ts.map +1 -0
  390. package/dist/services/LogService.js +252 -0
  391. package/dist/services/LogService.js.map +1 -0
  392. package/dist/services/PaneAnalyzer.d.ts.map +1 -0
  393. package/dist/{PaneAnalyzer.js → services/PaneAnalyzer.js} +1 -1
  394. package/dist/services/PaneAnalyzer.js.map +1 -0
  395. package/dist/services/PaneLifecycleManager.d.ts +60 -0
  396. package/dist/services/PaneLifecycleManager.d.ts.map +1 -0
  397. package/dist/services/PaneLifecycleManager.js +119 -0
  398. package/dist/services/PaneLifecycleManager.js.map +1 -0
  399. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  400. package/dist/services/PaneWorkerManager.js +41 -12
  401. package/dist/services/PaneWorkerManager.js.map +1 -1
  402. package/dist/services/PopupManager.d.ts +68 -0
  403. package/dist/services/PopupManager.d.ts.map +1 -0
  404. package/dist/services/PopupManager.js +415 -0
  405. package/dist/services/PopupManager.js.map +1 -0
  406. package/dist/services/StatusDetector.js +1 -1
  407. package/dist/services/StatusDetector.js.map +1 -1
  408. package/dist/services/TerminalStreamer.d.ts +1 -0
  409. package/dist/services/TerminalStreamer.d.ts.map +1 -1
  410. package/dist/services/TerminalStreamer.js +22 -16
  411. package/dist/services/TerminalStreamer.js.map +1 -1
  412. package/dist/services/TmuxService.d.ts +298 -0
  413. package/dist/services/TmuxService.d.ts.map +1 -0
  414. package/dist/services/TmuxService.js +768 -0
  415. package/dist/services/TmuxService.js.map +1 -0
  416. package/dist/services/TunnelService.d.ts +1 -0
  417. package/dist/services/TunnelService.d.ts.map +1 -1
  418. package/dist/services/TunnelService.js +57 -15
  419. package/dist/services/TunnelService.js.map +1 -1
  420. package/dist/shared/StateManager.d.ts +49 -1
  421. package/dist/shared/StateManager.d.ts.map +1 -1
  422. package/dist/shared/StateManager.js +97 -2
  423. package/dist/shared/StateManager.js.map +1 -1
  424. package/dist/theme/colors.d.ts +25 -0
  425. package/dist/theme/colors.d.ts.map +1 -0
  426. package/dist/theme/colors.js +33 -0
  427. package/dist/theme/colors.js.map +1 -0
  428. package/dist/types.d.ts +18 -0
  429. package/dist/types.d.ts.map +1 -1
  430. package/dist/utils/asciiArt.d.ts +26 -0
  431. package/dist/utils/asciiArt.d.ts.map +1 -0
  432. package/dist/utils/asciiArt.js +75 -0
  433. package/dist/utils/asciiArt.js.map +1 -0
  434. package/dist/utils/conflictMonitor.d.ts +20 -0
  435. package/dist/utils/conflictMonitor.d.ts.map +1 -0
  436. package/dist/utils/conflictMonitor.js +113 -0
  437. package/dist/utils/conflictMonitor.js.map +1 -0
  438. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  439. package/dist/utils/conflictResolutionPane.js +75 -80
  440. package/dist/utils/conflictResolutionPane.js.map +1 -1
  441. package/dist/utils/errorHandling.d.ts +37 -0
  442. package/dist/utils/errorHandling.d.ts.map +1 -0
  443. package/dist/utils/errorHandling.js +112 -0
  444. package/dist/utils/errorHandling.js.map +1 -0
  445. package/dist/utils/fileScanner.d.ts +23 -0
  446. package/dist/utils/fileScanner.d.ts.map +1 -0
  447. package/dist/utils/fileScanner.js +123 -0
  448. package/dist/utils/fileScanner.js.map +1 -0
  449. package/dist/utils/generated-agents-doc.d.ts +1 -1
  450. package/dist/utils/generated-agents-doc.js +1 -1
  451. package/dist/utils/git.d.ts +4 -0
  452. package/dist/utils/git.d.ts.map +1 -1
  453. package/dist/utils/git.js +15 -0
  454. package/dist/utils/git.js.map +1 -1
  455. package/dist/utils/hooks.d.ts.map +1 -1
  456. package/dist/utils/hooks.js +65 -36
  457. package/dist/utils/hooks.js.map +1 -1
  458. package/dist/utils/hooksDocs.d.ts +1 -1
  459. package/dist/utils/layoutManager.d.ts +49 -0
  460. package/dist/utils/layoutManager.d.ts.map +1 -0
  461. package/dist/utils/layoutManager.js +249 -0
  462. package/dist/utils/layoutManager.js.map +1 -0
  463. package/dist/utils/mergeExecution.d.ts.map +1 -1
  464. package/dist/utils/mergeExecution.js +8 -1
  465. package/dist/utils/mergeExecution.js.map +1 -1
  466. package/dist/utils/mergeValidation.d.ts.map +1 -1
  467. package/dist/utils/mergeValidation.js +42 -13
  468. package/dist/utils/mergeValidation.js.map +1 -1
  469. package/dist/utils/paneCreation.d.ts.map +1 -1
  470. package/dist/utils/paneCreation.js +210 -88
  471. package/dist/utils/paneCreation.js.map +1 -1
  472. package/dist/utils/paneRebinding.d.ts +14 -0
  473. package/dist/utils/paneRebinding.d.ts.map +1 -0
  474. package/dist/utils/paneRebinding.js +28 -0
  475. package/dist/utils/paneRebinding.js.map +1 -0
  476. package/dist/utils/popup.d.ts +97 -0
  477. package/dist/utils/popup.d.ts.map +1 -0
  478. package/dist/utils/popup.js +503 -0
  479. package/dist/utils/popup.js.map +1 -0
  480. package/dist/utils/postPaneCleanup.d.ts +12 -0
  481. package/dist/utils/postPaneCleanup.d.ts.map +1 -0
  482. package/dist/utils/postPaneCleanup.js +54 -0
  483. package/dist/utils/postPaneCleanup.js.map +1 -0
  484. package/dist/utils/shellPaneDetection.d.ts +44 -0
  485. package/dist/utils/shellPaneDetection.d.ts.map +1 -0
  486. package/dist/utils/shellPaneDetection.js +179 -0
  487. package/dist/utils/shellPaneDetection.js.map +1 -0
  488. package/dist/utils/systemCheck.d.ts +19 -0
  489. package/dist/utils/systemCheck.d.ts.map +1 -0
  490. package/dist/utils/systemCheck.js +160 -0
  491. package/dist/utils/systemCheck.js.map +1 -0
  492. package/dist/utils/tmux.d.ts +72 -1
  493. package/dist/utils/tmux.d.ts.map +1 -1
  494. package/dist/utils/tmux.js +369 -99
  495. package/dist/utils/tmux.js.map +1 -1
  496. package/dist/utils/welcomePane.d.ts +22 -0
  497. package/dist/utils/welcomePane.d.ts.map +1 -0
  498. package/dist/utils/welcomePane.js +111 -0
  499. package/dist/utils/welcomePane.js.map +1 -0
  500. package/dist/utils/welcomePaneManager.d.ts +36 -0
  501. package/dist/utils/welcomePaneManager.d.ts.map +1 -0
  502. package/dist/utils/welcomePaneManager.js +160 -0
  503. package/dist/utils/welcomePaneManager.js.map +1 -0
  504. package/dist/workers/PaneWorker.js +8 -8
  505. package/dist/workers/PaneWorker.js.map +1 -1
  506. package/dist/workers/updateChecker.js +1 -1
  507. package/dist/workers/updateChecker.js.map +1 -1
  508. package/package.json +7 -2
  509. package/dist/AutoUpdater.d.ts.map +0 -1
  510. package/dist/AutoUpdater.js.map +0 -1
  511. package/dist/BetterTextInput.d.ts +0 -10
  512. package/dist/BetterTextInput.d.ts.map +0 -1
  513. package/dist/BetterTextInput.js +0 -177
  514. package/dist/BetterTextInput.js.map +0 -1
  515. package/dist/CleanTextInput.d.ts +0 -10
  516. package/dist/CleanTextInput.d.ts.map +0 -1
  517. package/dist/CleanTextInput.js.map +0 -1
  518. package/dist/EnhancedTextInput.d.ts +0 -13
  519. package/dist/EnhancedTextInput.d.ts.map +0 -1
  520. package/dist/EnhancedTextInput.js +0 -443
  521. package/dist/EnhancedTextInput.js.map +0 -1
  522. package/dist/GeminiTextInput.d.ts +0 -12
  523. package/dist/GeminiTextInput.d.ts.map +0 -1
  524. package/dist/GeminiTextInput.js +0 -210
  525. package/dist/GeminiTextInput.js.map +0 -1
  526. package/dist/MergePane.d.ts.map +0 -1
  527. package/dist/MergePane.js.map +0 -1
  528. package/dist/MultilineTextInput.d.ts +0 -10
  529. package/dist/MultilineTextInput.d.ts.map +0 -1
  530. package/dist/MultilineTextInput.js +0 -184
  531. package/dist/MultilineTextInput.js.map +0 -1
  532. package/dist/PaneAnalyzer.d.ts.map +0 -1
  533. package/dist/PaneAnalyzer.js.map +0 -1
  534. package/dist/SimpleEnhancedInput.d.ts +0 -13
  535. package/dist/SimpleEnhancedInput.d.ts.map +0 -1
  536. package/dist/SimpleEnhancedInput.js +0 -639
  537. package/dist/SimpleEnhancedInput.js.map +0 -1
  538. package/dist/SimpleGeminiInput.d.ts +0 -12
  539. package/dist/SimpleGeminiInput.d.ts.map +0 -1
  540. package/dist/SimpleGeminiInput.js +0 -223
  541. package/dist/SimpleGeminiInput.js.map +0 -1
  542. package/dist/StyledTextInput.d.ts.map +0 -1
  543. package/dist/StyledTextInput.js.map +0 -1
  544. package/dist/components/ActionChoiceDialog.d.ts.map +0 -1
  545. package/dist/components/ActionChoiceDialog.js.map +0 -1
  546. package/dist/components/ActionConfirmDialog.d.ts.map +0 -1
  547. package/dist/components/ActionConfirmDialog.js.map +0 -1
  548. package/dist/components/ActionInputDialog.d.ts.map +0 -1
  549. package/dist/components/ActionInputDialog.js.map +0 -1
  550. package/dist/components/ActionProgressDialog.d.ts.map +0 -1
  551. package/dist/components/ActionProgressDialog.js.map +0 -1
  552. package/dist/components/AgentChoiceDialog.d.ts.map +0 -1
  553. package/dist/components/AgentChoiceDialog.js.map +0 -1
  554. package/dist/components/CloseOptionsDialog.d.ts.map +0 -1
  555. package/dist/components/CloseOptionsDialog.js.map +0 -1
  556. package/dist/components/CommandPromptDialog.d.ts.map +0 -1
  557. package/dist/components/CommandPromptDialog.js.map +0 -1
  558. package/dist/components/CreatingIndicator.d.ts.map +0 -1
  559. package/dist/components/CreatingIndicator.js.map +0 -1
  560. package/dist/components/FileCopyPrompt.d.ts.map +0 -1
  561. package/dist/components/FileCopyPrompt.js.map +0 -1
  562. package/dist/components/FooterHelp.d.ts +0 -10
  563. package/dist/components/FooterHelp.d.ts.map +0 -1
  564. package/dist/components/FooterHelp.js +0 -19
  565. package/dist/components/FooterHelp.js.map +0 -1
  566. package/dist/components/HooksDialog.d.ts.map +0 -1
  567. package/dist/components/HooksDialog.js.map +0 -1
  568. package/dist/components/KebabMenu.d.ts.map +0 -1
  569. package/dist/components/KebabMenu.js.map +0 -1
  570. package/dist/components/LoadingIndicator.d.ts.map +0 -1
  571. package/dist/components/LoadingIndicator.js.map +0 -1
  572. package/dist/components/MergeConfirmationDialog.d.ts.map +0 -1
  573. package/dist/components/MergeConfirmationDialog.js.map +0 -1
  574. package/dist/components/NewPaneDialog.d.ts +0 -9
  575. package/dist/components/NewPaneDialog.d.ts.map +0 -1
  576. package/dist/components/NewPaneDialog.js +0 -11
  577. package/dist/components/NewPaneDialog.js.map +0 -1
  578. package/dist/components/PaneCard.d.ts.map +0 -1
  579. package/dist/components/PaneCard.js +0 -38
  580. package/dist/components/PaneCard.js.map +0 -1
  581. package/dist/components/PanesGrid.d.ts +0 -14
  582. package/dist/components/PanesGrid.d.ts.map +0 -1
  583. package/dist/components/PanesGrid.js +0 -19
  584. package/dist/components/PanesGrid.js.map +0 -1
  585. package/dist/components/QRCode.d.ts.map +0 -1
  586. package/dist/components/QRCode.js.map +0 -1
  587. package/dist/components/RunningIndicator.d.ts.map +0 -1
  588. package/dist/components/RunningIndicator.js.map +0 -1
  589. package/dist/components/SettingsDialog.d.ts.map +0 -1
  590. package/dist/components/SettingsDialog.js.map +0 -1
  591. package/dist/components/Spinner.d.ts.map +0 -1
  592. package/dist/components/Spinner.js.map +0 -1
  593. package/dist/components/UpdateDialog.d.ts.map +0 -1
  594. package/dist/components/UpdateDialog.js.map +0 -1
  595. package/dist/components/UpdatingIndicator.d.ts.map +0 -1
  596. package/dist/components/UpdatingIndicator.js.map +0 -1
  597. package/dist/server/static.d.ts +0 -6
  598. package/dist/server/static.d.ts.map +0 -1
  599. package/dist/server/static.js +0 -3040
  600. package/dist/server/static.js.map +0 -1
  601. /package/dist/components/{ActionChoiceDialog.js → dialogs/ActionChoiceDialog.js} +0 -0
  602. /package/dist/components/{ActionConfirmDialog.d.ts → dialogs/ActionConfirmDialog.d.ts} +0 -0
  603. /package/dist/components/{ActionConfirmDialog.js → dialogs/ActionConfirmDialog.js} +0 -0
  604. /package/dist/components/{ActionInputDialog.d.ts → dialogs/ActionInputDialog.d.ts} +0 -0
  605. /package/dist/components/{ActionProgressDialog.d.ts → dialogs/ActionProgressDialog.d.ts} +0 -0
  606. /package/dist/components/{ActionProgressDialog.js → dialogs/ActionProgressDialog.js} +0 -0
  607. /package/dist/components/{AgentChoiceDialog.d.ts → dialogs/AgentChoiceDialog.d.ts} +0 -0
  608. /package/dist/components/{AgentChoiceDialog.js → dialogs/AgentChoiceDialog.js} +0 -0
  609. /package/dist/components/{CloseOptionsDialog.js → dialogs/CloseOptionsDialog.js} +0 -0
  610. /package/dist/components/{CommandPromptDialog.d.ts → dialogs/CommandPromptDialog.d.ts} +0 -0
  611. /package/dist/components/{HooksDialog.d.ts → dialogs/HooksDialog.d.ts} +0 -0
  612. /package/dist/components/{HooksDialog.js → dialogs/HooksDialog.js} +0 -0
  613. /package/dist/components/{MergeConfirmationDialog.js → dialogs/MergeConfirmationDialog.js} +0 -0
  614. /package/dist/components/{SettingsDialog.js → dialogs/SettingsDialog.js} +0 -0
  615. /package/dist/components/{UpdateDialog.d.ts → dialogs/UpdateDialog.d.ts} +0 -0
  616. /package/dist/components/{UpdateDialog.js → dialogs/UpdateDialog.js} +0 -0
  617. /package/dist/components/{CreatingIndicator.d.ts → indicators/CreatingIndicator.d.ts} +0 -0
  618. /package/dist/components/{CreatingIndicator.js → indicators/CreatingIndicator.js} +0 -0
  619. /package/dist/components/{LoadingIndicator.d.ts → indicators/LoadingIndicator.d.ts} +0 -0
  620. /package/dist/components/{LoadingIndicator.js → indicators/LoadingIndicator.js} +0 -0
  621. /package/dist/components/{RunningIndicator.d.ts → indicators/RunningIndicator.d.ts} +0 -0
  622. /package/dist/components/{RunningIndicator.js → indicators/RunningIndicator.js} +0 -0
  623. /package/dist/components/{Spinner.d.ts → indicators/Spinner.d.ts} +0 -0
  624. /package/dist/components/{Spinner.js → indicators/Spinner.js} +0 -0
  625. /package/dist/components/{UpdatingIndicator.d.ts → indicators/UpdatingIndicator.d.ts} +0 -0
  626. /package/dist/components/{UpdatingIndicator.js → indicators/UpdatingIndicator.js} +0 -0
  627. /package/dist/{StyledTextInput.d.ts → components/inputs/StyledTextInput.d.ts} +0 -0
  628. /package/dist/{StyledTextInput.js → components/inputs/StyledTextInput.js} +0 -0
  629. /package/dist/components/{KebabMenu.js → panes/KebabMenu.js} +0 -0
  630. /package/dist/{MergePane.d.ts → components/panes/MergePane.d.ts} +0 -0
  631. /package/dist/components/{FileCopyPrompt.d.ts → ui/FileCopyPrompt.d.ts} +0 -0
  632. /package/dist/components/{FileCopyPrompt.js → ui/FileCopyPrompt.js} +0 -0
  633. /package/dist/components/{QRCode.d.ts → ui/QRCode.d.ts} +0 -0
  634. /package/dist/components/{QRCode.js → ui/QRCode.js} +0 -0
  635. /package/dist/{PaneAnalyzer.d.ts → services/PaneAnalyzer.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -1,17 +1,27 @@
1
1
  #!/usr/bin/env node
2
- import { execSync } from 'child_process';
2
+ import { execSync, spawnSync } from 'child_process';
3
3
  import fs from 'fs/promises';
4
+ import * as fsSync from 'fs';
4
5
  import path from 'path';
5
6
  import { fileURLToPath } from 'url';
6
7
  import { render } from 'ink';
7
8
  import React from 'react';
8
9
  import { createHash } from 'crypto';
10
+ import { createRequire } from 'module';
9
11
  import DmuxApp from './DmuxApp.js';
10
- import { AutoUpdater } from './AutoUpdater.js';
12
+ import { AutoUpdater } from './services/AutoUpdater.js';
11
13
  import readline from 'readline';
12
14
  import { DmuxServer } from './server/index.js';
13
15
  import { StateManager } from './shared/StateManager.js';
16
+ import { LogService } from './services/LogService.js';
17
+ import { TmuxService } from './services/TmuxService.js';
18
+ import { createWelcomePane } from './utils/welcomePane.js';
19
+ import { TMUX_COLORS } from './theme/colors.js';
20
+ import { SIDEBAR_WIDTH } from './utils/layoutManager.js';
21
+ import { validateSystemRequirements, printValidationResults } from './utils/systemCheck.js';
14
22
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
23
+ const require = createRequire(import.meta.url);
24
+ const packageJson = require('../package.json');
15
25
  class Dmux {
16
26
  panesFile;
17
27
  settingsFile;
@@ -21,9 +31,9 @@ class Dmux {
21
31
  autoUpdater;
22
32
  server;
23
33
  stateManager;
24
- static cachedProjectRoot = null;
25
34
  constructor() {
26
- // Get git root directory to determine project scope (cached)
35
+ // Get git root directory to determine project scope
36
+ // NOTE: No caching - must be re-evaluated per instance to support multiple projects
27
37
  this.projectRoot = this.getProjectRoot();
28
38
  // Get project name from git root directory
29
39
  this.projectName = path.basename(this.projectRoot);
@@ -50,6 +60,11 @@ class Dmux {
50
60
  async init() {
51
61
  // Set up global signal handlers for clean exit
52
62
  this.setupGlobalSignalHandlers();
63
+ // Set up hooks for this session (if in tmux)
64
+ if (process.env.TMUX) {
65
+ this.setupResizeHook();
66
+ this.setupPaneSplitHook();
67
+ }
53
68
  // Ensure .dmux directory exists and is in .gitignore
54
69
  await this.ensureDmuxDirectory();
55
70
  // Check for migration from old config location
@@ -61,13 +76,16 @@ class Dmux {
61
76
  projectRoot: this.projectRoot,
62
77
  panes: [],
63
78
  settings: {},
64
- lastUpdated: new Date().toISOString()
79
+ lastUpdated: new Date().toISOString(),
80
+ controlPaneId: undefined,
81
+ controlPaneSize: 40 // Sidebar width
65
82
  };
66
83
  await fs.writeFile(this.panesFile, JSON.stringify(initialConfig, null, 2));
67
84
  }
68
85
  // Check for updates in background if needed
69
86
  this.checkForUpdatesBackground();
70
87
  const inTmux = process.env.TMUX !== undefined;
88
+ const isDev = process.env.DMUX_DEV === 'true';
71
89
  if (!inTmux) {
72
90
  // Check if project-specific session already exists
73
91
  try {
@@ -75,32 +93,118 @@ class Dmux {
75
93
  // Session exists, will attach
76
94
  }
77
95
  catch {
78
- // Create new session
96
+ // Expected - session doesn't exist, create new one
79
97
  // Create new session first
80
98
  execSync(`tmux new-session -d -s ${this.sessionName}`, { stdio: 'inherit' });
81
99
  // Enable pane borders to show titles
82
100
  execSync(`tmux set-option -t ${this.sessionName} pane-border-status top`, { stdio: 'inherit' });
101
+ // Set border colors (foreground only - respects user's terminal background)
102
+ execSync(`tmux set-option -t ${this.sessionName} pane-active-border-style "fg=colour${TMUX_COLORS.activeBorder}"`, { stdio: 'inherit' });
103
+ execSync(`tmux set-option -t ${this.sessionName} pane-border-style "fg=colour${TMUX_COLORS.inactiveBorder}"`, { stdio: 'inherit' });
104
+ // Set pane border format
105
+ execSync(`tmux set-option -t ${this.sessionName} pane-border-format " #{pane_title} "`, { stdio: 'inherit' });
83
106
  // Set pane title for the main dmux pane
84
- execSync(`tmux select-pane -t ${this.sessionName} -T "dmux-${this.projectName}"`, { stdio: 'inherit' });
85
- // Send dmux command to the new session
86
- execSync(`tmux send-keys -t ${this.sessionName} "dmux" Enter`, { stdio: 'inherit' });
107
+ execSync(`tmux select-pane -t ${this.sessionName} -T "dmux v${packageJson.version} - ${this.projectName}"`, { stdio: 'inherit' });
108
+ // Send dmux command to the new session (use dev command if in dev mode)
109
+ // In dev mode, use current directory if we're in a worktree, otherwise use projectRoot
110
+ let devDirectory = this.projectRoot;
111
+ if (isDev && this.isWorktree()) {
112
+ devDirectory = process.cwd();
113
+ }
114
+ // Determine the dmux command to use
115
+ let dmuxCommand;
116
+ if (isDev) {
117
+ dmuxCommand = `cd "${devDirectory}" && pnpm dev:watch`;
118
+ }
119
+ else {
120
+ // Check if we're running from a local installation
121
+ // __dirname is 'dist' when compiled, so '../dmux' points to the wrapper
122
+ const localDmuxPath = path.join(__dirname, '..', 'dmux');
123
+ if (fsSync.existsSync(localDmuxPath)) {
124
+ // Use absolute path to local dmux (works for both local builds and global installs)
125
+ dmuxCommand = `"${localDmuxPath}"`;
126
+ }
127
+ else {
128
+ // Fallback to global dmux command
129
+ dmuxCommand = 'dmux';
130
+ }
131
+ }
132
+ execSync(`tmux send-keys -t ${this.sessionName} "${dmuxCommand}" Enter`, { stdio: 'inherit' });
87
133
  }
88
134
  execSync(`tmux attach-session -t ${this.sessionName}`, { stdio: 'inherit' });
89
135
  return;
90
136
  }
91
137
  // Enable pane borders to show titles
92
- try {
93
- execSync(`tmux set-option pane-border-status top`, { stdio: 'pipe' });
94
- }
95
- catch {
96
- // Ignore if it fails
97
- }
138
+ // NOTE: Temporarily disabled to test if border updates cause UI shifts
139
+ // try {
140
+ // execSync(`tmux set-option pane-border-status top`, { stdio: 'pipe' });
141
+ // } catch {
142
+ // // Ignore if it fails
143
+ // }
98
144
  // Set pane title for the current pane running dmux
145
+ // TODO(future): Re-enable control pane title once UI shift issue is resolved
146
+ // Setting the title can cause visual artifacts in some tmux configurations
147
+ // Original code: execSync(`tmux select-pane -T "dmux v${version} - ${project}"`)
148
+ // See: Title updates are currently handled by enforcePaneTitles() in usePaneSync.ts
149
+ // Get current pane ID (control pane for left sidebar)
150
+ let controlPaneId;
99
151
  try {
100
- execSync(`tmux select-pane -T "dmux-${this.projectName}"`, { stdio: 'pipe' });
152
+ // Get current pane ID
153
+ const tmuxService = TmuxService.getInstance();
154
+ controlPaneId = await tmuxService.getCurrentPaneId();
155
+ // Load existing config
156
+ const configContent = await fs.readFile(this.panesFile, 'utf-8');
157
+ const config = JSON.parse(configContent);
158
+ // Ensure panes array exists
159
+ if (!config.panes) {
160
+ config.panes = [];
161
+ }
162
+ // ALWAYS update controlPaneId with current pane (it changes on restart)
163
+ // This ensures layout manager always has the correct control pane ID
164
+ const needsUpdate = config.controlPaneId !== controlPaneId;
165
+ config.controlPaneId = controlPaneId;
166
+ config.controlPaneSize = SIDEBAR_WIDTH;
167
+ // If this is initial load or control pane changed, resize the sidebar
168
+ if (needsUpdate) {
169
+ // Resize control pane to sidebar width
170
+ await tmuxService.resizePane(controlPaneId, { width: SIDEBAR_WIDTH });
171
+ // Refresh client
172
+ await tmuxService.refreshClient();
173
+ // Save updated config
174
+ config.lastUpdated = new Date().toISOString();
175
+ await fs.writeFile(this.panesFile, JSON.stringify(config, null, 2));
176
+ }
177
+ // Create welcome pane if there are no dmux panes and no existing welcome pane
178
+ // Check if welcome pane actually exists, not just if it's in config (handles tmux restarts)
179
+ const { welcomePaneExists } = await import('./utils/welcomePane.js');
180
+ const hasValidWelcomePane = config.welcomePaneId && welcomePaneExists(config.welcomePaneId);
181
+ if (controlPaneId && config.panes && config.panes.length === 0) {
182
+ if (!hasValidWelcomePane) {
183
+ // Create new welcome pane
184
+ const welcomePaneId = await createWelcomePane(controlPaneId);
185
+ if (welcomePaneId) {
186
+ config.welcomePaneId = welcomePaneId;
187
+ config.lastUpdated = new Date().toISOString();
188
+ await fs.writeFile(this.panesFile, JSON.stringify(config, null, 2));
189
+ LogService.getInstance().debug(`Created welcome pane: ${welcomePaneId}`, 'Setup');
190
+ }
191
+ }
192
+ else {
193
+ // Welcome pane exists from previous session - fix the layout
194
+ LogService.getInstance().debug('Welcome pane exists, applying correct layout', 'Setup');
195
+ // Apply correct layout: sidebar (40) | welcome pane (rest)
196
+ // Use "latest" mode so window auto-follows terminal size
197
+ // Note: setOption doesn't have window-specific options yet, using execSync for these
198
+ execSync(`tmux set-window-option window-size latest`, { stdio: 'pipe' });
199
+ execSync(`tmux set-window-option main-pane-width ${SIDEBAR_WIDTH}`, { stdio: 'pipe' });
200
+ execSync(`tmux select-layout main-vertical`, { stdio: 'pipe' });
201
+ await tmuxService.refreshClient();
202
+ }
203
+ }
101
204
  }
102
- catch {
103
- // Ignore if it fails (might not have permission or tmux version doesn't support it)
205
+ catch (error) {
206
+ // Ignore errors in sidebar setup - will work without it
207
+ LogService.getInstance().error('Failed to set up sidebar layout', 'Setup', undefined, error instanceof Error ? error : undefined);
104
208
  }
105
209
  // Update state manager with project info
106
210
  this.stateManager.updateProjectInfo(this.projectName, this.sessionName, this.projectRoot, this.panesFile);
@@ -113,24 +217,29 @@ class Dmux {
113
217
  // Don't log the local URL - tunnel will be created on demand when "r" is pressed
114
218
  }
115
219
  catch (err) {
116
- console.error('Failed to start HTTP server:', err);
220
+ LogService.getInstance().error('Failed to start HTTP server', 'Setup', undefined, err instanceof Error ? err : undefined);
117
221
  // Continue without server - not critical for main functionality
118
222
  }
119
- // Clear screen before launching Ink to prevent artifacts
120
- process.stdout.write('\x1b[2J\x1b[H'); // Clear screen and move cursor to home
121
- process.stdout.write('\x1b[3J'); // Clear scrollback buffer
122
- // Clear tmux history
123
- try {
124
- execSync('tmux clear-history', { stdio: 'pipe' });
223
+ // Add test logs to verify logging system functionality
224
+ const logService = LogService.getInstance();
225
+ logService.debug(`dmux started for project: ${this.projectName}`, 'startup');
226
+ logService.debug(`Project root: ${this.projectRoot}`, 'startup');
227
+ logService.debug(`HTTP server running on port ${serverInfo.port}`, 'startup');
228
+ logService.debug('Debug log: System initialized successfully', 'startup');
229
+ // Add a sample warning and error for testing
230
+ if (process.env.DMUX_DEV === 'true') {
231
+ logService.debug('Development mode enabled - this is a test warning', 'startup');
232
+ logService.debug('Press [l] to view logs, [L] to reset layout', 'startup');
125
233
  }
126
- catch { }
127
- // Force tmux to refresh before Ink renders
128
- try {
129
- execSync('tmux refresh-client', { stdio: 'pipe' });
130
- }
131
- catch { }
132
- // Small delay to let the clear take effect before Ink renders
133
- await new Promise(resolve => setTimeout(resolve, 100));
234
+ // Suppress console output from LogService to prevent interference with Ink UI
235
+ LogService.getInstance().setSuppressConsole(true);
236
+ // Clear screen before launching Ink - minimal clearing to avoid artifacts
237
+ // Don't use \x1b[3J as it can cause layout shifts
238
+ process.stdout.write('\x1b[2J\x1b[H'); // Clear screen and move cursor to home
239
+ // Ensure cursor is truly at home position and scrollback is clear
240
+ process.stdout.write('\x1b[1;1H'); // Force cursor to row 1, column 1
241
+ // Small delay to let terminal settle
242
+ await new Promise(resolve => setTimeout(resolve, 50));
134
243
  // Launch the Ink app
135
244
  const app = render(React.createElement(DmuxApp, {
136
245
  panesFile: this.panesFile,
@@ -140,7 +249,8 @@ class Dmux {
140
249
  projectRoot: this.projectRoot,
141
250
  autoUpdater: this.autoUpdater,
142
251
  serverPort: serverInfo.port,
143
- server: this.server
252
+ server: this.server,
253
+ controlPaneId
144
254
  }), {
145
255
  exitOnCtrlC: false // Disable automatic exit on Ctrl+C
146
256
  });
@@ -156,14 +266,32 @@ class Dmux {
156
266
  return true;
157
267
  }
158
268
  catch {
269
+ // Expected - file doesn't exist
159
270
  return false;
160
271
  }
161
272
  }
162
- getProjectRoot() {
163
- // Return cached value if available
164
- if (Dmux.cachedProjectRoot) {
165
- return Dmux.cachedProjectRoot;
273
+ isWorktree() {
274
+ try {
275
+ // Check if current directory is different from project root
276
+ const cwd = process.cwd();
277
+ if (cwd === this.projectRoot) {
278
+ return false;
279
+ }
280
+ // Check if we're in a git worktree by checking if .git is a file (not a directory)
281
+ const gitPath = path.join(cwd, '.git');
282
+ if (fsSync.existsSync(gitPath)) {
283
+ const stats = fsSync.statSync(gitPath);
284
+ // In a worktree, .git is a file, not a directory
285
+ return stats.isFile();
286
+ }
287
+ return false;
166
288
  }
289
+ catch {
290
+ // Expected - errors during git/file checks
291
+ return false;
292
+ }
293
+ }
294
+ getProjectRoot() {
167
295
  try {
168
296
  // First, try to get the main worktree if we're in a git repository
169
297
  // This ensures we always use the main repository root, even when run from a worktree
@@ -175,7 +303,6 @@ class Dmux {
175
303
  const mainWorktreeLine = worktreeList.split('\n')[0];
176
304
  if (mainWorktreeLine && mainWorktreeLine.startsWith('worktree ')) {
177
305
  const mainWorktreePath = mainWorktreeLine.substring(9).trim();
178
- Dmux.cachedProjectRoot = mainWorktreePath;
179
306
  return mainWorktreePath;
180
307
  }
181
308
  // Fallback to git rev-parse if worktree list fails
@@ -183,14 +310,11 @@ class Dmux {
183
310
  encoding: 'utf-8',
184
311
  stdio: 'pipe'
185
312
  }).trim();
186
- Dmux.cachedProjectRoot = gitRoot;
187
313
  return gitRoot;
188
314
  }
189
315
  catch {
190
316
  // Fallback to current directory if not in a git repo
191
- const cwd = process.cwd();
192
- Dmux.cachedProjectRoot = cwd;
193
- return cwd;
317
+ return process.cwd();
194
318
  }
195
319
  }
196
320
  async ensureDmuxDirectory() {
@@ -204,25 +328,23 @@ class Dmux {
204
328
  if (!await this.fileExists(worktreesDir)) {
205
329
  await fs.mkdir(worktreesDir, { recursive: true });
206
330
  }
331
+ // Check if .dmux is ignored by either this repo's .gitignore or global gitignore
332
+ const isIgnored = spawnSync('git', ['check-ignore', '--quiet', dmuxDir]).status === 0;
333
+ if (isIgnored) {
334
+ return;
335
+ }
207
336
  // Check if .gitignore exists and if .dmux is in it
208
337
  const gitignorePath = path.join(this.projectRoot, '.gitignore');
209
338
  if (await this.fileExists(gitignorePath)) {
210
- const gitignoreContent = await fs.readFile(gitignorePath, 'utf-8');
211
- const lines = gitignoreContent.split('\n');
212
- const hasDmuxEntry = lines.some(line => line.trim() === '.dmux' ||
213
- line.trim() === '.dmux/' ||
214
- line.trim() === '/.dmux' ||
215
- line.trim() === '/.dmux/');
216
- if (!hasDmuxEntry) {
217
- // Prompt user to add .dmux to .gitignore
218
- const shouldAdd = await this.promptUser('The .dmux directory is not in .gitignore. Would you like to add it? (y/n): ');
219
- if (shouldAdd) {
220
- // Add .dmux to .gitignore
221
- const newGitignore = gitignoreContent.endsWith('\n')
222
- ? gitignoreContent + '.dmux/\n'
223
- : gitignoreContent + '\n.dmux/\n';
224
- await fs.writeFile(gitignorePath, newGitignore);
225
- }
339
+ // Prompt user to add .dmux to .gitignore
340
+ const shouldAdd = await this.promptUser('The .dmux directory is not in .gitignore. Would you like to add it? (y/n): ');
341
+ if (shouldAdd) {
342
+ // Add .dmux to .gitignore
343
+ const gitignoreContent = await fs.readFile(gitignorePath, 'utf-8');
344
+ const newGitignore = gitignoreContent.endsWith('\n')
345
+ ? gitignoreContent + '.dmux/\n'
346
+ : gitignoreContent + '\n.dmux/\n';
347
+ await fs.writeFile(gitignorePath, newGitignore);
226
348
  }
227
349
  }
228
350
  else {
@@ -267,7 +389,9 @@ class Dmux {
267
389
  const oldPanesContent = await fs.readFile(oldPanesFile, 'utf-8');
268
390
  panes = JSON.parse(oldPanesContent);
269
391
  }
270
- catch { }
392
+ catch {
393
+ // Intentionally silent - migration is best-effort
394
+ }
271
395
  }
272
396
  // Try to read old settings file
273
397
  if (await this.fileExists(oldSettingsFile)) {
@@ -275,7 +399,9 @@ class Dmux {
275
399
  const oldSettingsContent = await fs.readFile(oldSettingsFile, 'utf-8');
276
400
  settings = JSON.parse(oldSettingsContent);
277
401
  }
278
- catch { }
402
+ catch {
403
+ // Intentionally silent - migration is best-effort
404
+ }
279
405
  }
280
406
  // Try to read old update settings file
281
407
  if (await this.fileExists(oldUpdateSettingsFile)) {
@@ -283,7 +409,9 @@ class Dmux {
283
409
  const oldUpdateContent = await fs.readFile(oldUpdateSettingsFile, 'utf-8');
284
410
  updateSettings = JSON.parse(oldUpdateContent);
285
411
  }
286
- catch { }
412
+ catch {
413
+ // Intentionally silent - migration is best-effort
414
+ }
287
415
  }
288
416
  // Check for config from previous parent directory location
289
417
  if (await this.fileExists(oldParentConfigFile)) {
@@ -296,7 +424,9 @@ class Dmux {
296
424
  if (oldConfig.updateSettings)
297
425
  updateSettings = oldConfig.updateSettings;
298
426
  }
299
- catch { }
427
+ catch {
428
+ // Intentionally silent - migration is best-effort
429
+ }
300
430
  }
301
431
  // If we found old config, migrate it
302
432
  if (panes.length > 0 || Object.keys(settings).length > 0 || Object.keys(updateSettings).length > 0) {
@@ -314,19 +444,27 @@ class Dmux {
314
444
  try {
315
445
  await fs.unlink(oldPanesFile);
316
446
  }
317
- catch { }
447
+ catch {
448
+ // Intentionally silent - cleanup is best-effort
449
+ }
318
450
  try {
319
451
  await fs.unlink(oldSettingsFile);
320
452
  }
321
- catch { }
453
+ catch {
454
+ // Intentionally silent - cleanup is best-effort
455
+ }
322
456
  try {
323
457
  await fs.unlink(oldUpdateSettingsFile);
324
458
  }
325
- catch { }
459
+ catch {
460
+ // Intentionally silent - cleanup is best-effort
461
+ }
326
462
  try {
327
463
  await fs.unlink(oldParentConfigFile);
328
464
  }
329
- catch { }
465
+ catch {
466
+ // Intentionally silent - cleanup is best-effort
467
+ }
330
468
  }
331
469
  }
332
470
  }
@@ -360,8 +498,57 @@ class Dmux {
360
498
  getAutoUpdater() {
361
499
  return this.autoUpdater;
362
500
  }
501
+ setupResizeHook() {
502
+ try {
503
+ // Set up session-specific hook that sends SIGUSR1 to dmux process on resize
504
+ // This works inside tmux where normal SIGWINCH may not propagate
505
+ const pid = process.pid;
506
+ execSync(`tmux set-hook -t '${this.sessionName}' client-resized 'run-shell "kill -USR1 ${pid} 2>/dev/null || true"'`, { stdio: 'pipe' });
507
+ LogService.getInstance().debug(`Set up resize hook for session ${this.sessionName}`, 'Setup');
508
+ }
509
+ catch (error) {
510
+ LogService.getInstance().debug('Failed to set up resize hook', 'Setup');
511
+ }
512
+ }
513
+ setupPaneSplitHook() {
514
+ try {
515
+ // Set up hook that sends SIGUSR2 to dmux process when a pane is split
516
+ // This allows us to detect manually created panes via Ctrl+b %
517
+ const pid = process.pid;
518
+ execSync(`tmux set-hook -t '${this.sessionName}' after-split-window 'run-shell "kill -USR2 ${pid} 2>/dev/null || true"'`, { stdio: 'pipe' });
519
+ LogService.getInstance().debug(`Set up pane split detection hook for session ${this.sessionName}`, 'Setup');
520
+ }
521
+ catch (error) {
522
+ LogService.getInstance().debug('Failed to set up pane split hook', 'Setup');
523
+ }
524
+ }
525
+ cleanupResizeHook() {
526
+ try {
527
+ // Remove session-specific hook
528
+ execSync(`tmux set-hook -u -t '${this.sessionName}' client-resized`, { stdio: 'pipe' });
529
+ LogService.getInstance().debug('Cleaned up resize hook', 'Setup');
530
+ }
531
+ catch {
532
+ // Ignore cleanup errors
533
+ }
534
+ }
535
+ cleanupPaneSplitHook() {
536
+ try {
537
+ // Remove pane split hook
538
+ execSync(`tmux set-hook -u -t '${this.sessionName}' after-split-window`, { stdio: 'pipe' });
539
+ LogService.getInstance().debug('Cleaned up pane split hook', 'Setup');
540
+ }
541
+ catch {
542
+ // Ignore cleanup errors
543
+ }
544
+ }
363
545
  setupGlobalSignalHandlers() {
364
- const cleanTerminalExit = () => {
546
+ const cleanTerminalExit = async () => {
547
+ // Clean up hooks
548
+ if (process.env.TMUX) {
549
+ this.cleanupResizeHook();
550
+ this.cleanupPaneSplitHook();
551
+ }
365
552
  // Clear screen multiple times to ensure no artifacts
366
553
  process.stdout.write('\x1b[2J\x1b[H'); // Clear screen and move to home
367
554
  process.stdout.write('\x1b[3J'); // Clear scrollback buffer
@@ -369,10 +556,13 @@ class Dmux {
369
556
  // Clear tmux pane if we're in tmux
370
557
  if (process.env.TMUX) {
371
558
  try {
372
- execSync('tmux clear-history', { stdio: 'pipe' });
373
- execSync('tmux send-keys C-l', { stdio: 'pipe' });
559
+ const tmuxService = TmuxService.getInstance();
560
+ tmuxService.clearHistorySync();
561
+ await tmuxService.sendKeys('', 'C-l');
562
+ }
563
+ catch {
564
+ // Intentionally silent - cleanup is best-effort
374
565
  }
375
- catch { }
376
566
  }
377
567
  // Wait a moment for clearing to settle, then show goodbye message
378
568
  setTimeout(() => {
@@ -384,6 +574,14 @@ class Dmux {
384
574
  // Handle Ctrl+C and SIGTERM
385
575
  process.on('SIGINT', cleanTerminalExit);
386
576
  process.on('SIGTERM', cleanTerminalExit);
577
+ // Handle SIGUSR2 for pane split detection
578
+ // This signal is sent by tmux hook when a new pane is created
579
+ process.on('SIGUSR2', () => {
580
+ // Log that a pane split was detected
581
+ LogService.getInstance().debug('Pane split detected via SIGUSR2, triggering immediate detection', 'shellDetection');
582
+ // Emit a custom event to trigger immediate shell pane detection
583
+ process.emit('pane-split-detected');
584
+ });
387
585
  // Handle uncaught exceptions and unhandled rejections
388
586
  process.on('uncaughtException', (error) => {
389
587
  console.error('Uncaught exception:', error);
@@ -395,6 +593,14 @@ class Dmux {
395
593
  });
396
594
  }
397
595
  }
398
- const dmux = new Dmux();
399
- dmux.init().catch(() => process.exit(1));
596
+ // Validate system requirements before starting
597
+ (async () => {
598
+ const validationResult = await validateSystemRequirements();
599
+ printValidationResults(validationResult);
600
+ // Only proceed if system requirements are met
601
+ if (validationResult.canRun) {
602
+ const dmux = new Dmux();
603
+ dmux.init().catch(() => process.exit(1));
604
+ }
605
+ })();
400
606
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}